原文地址:http://www.yesky.com/SoftChannel/72342371945283584/20031203/1750000_1.shtml

  下面我們討論Servlet的運行環(huán)境:

  要運行Servlet,則需要JSP/Servlet container,我建議初學者用Tomcat。

Tomcat(最新版本5.0):http://cvs.apache.org/builds/jakarta-tomcat-5/nightly/jakarta-tomcat-5-bin-20030725.zip

  然后把這個壓縮包解壓到:

  C:\Tomcat

  然后再配置環(huán)境變量;添加三個系統(tǒng)變量:

JAVA_HOME: C:\JDK
TOMCAT_HOME: C:\Tomcat
CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib

  Tomcat的環(huán)境變量就配置完畢了,下面檢驗Tomcat是否能夠運行:

  在控制臺中轉(zhuǎn)到C:\Tomcat\bin這個目錄,運行startup,然后回出現(xiàn)一個窗口,連跳一大串東西,最后表示Server已經(jīng)運行。

  在瀏覽器中輸入http://localhost:8080,出現(xiàn)歡迎界面,則表示Tomcat沒問題了。然后和上面一樣,寫入你的第一個Servlet。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");

}
}

  然后照樣用javac HelloWorld.java來編譯這個文件,如果出現(xiàn)無法import javax.servlet.*

  那么就是應該把C:\Tomcat\common\lib里面的servlet.jar文件拷貝到C:\JDK\jre\lib\ext中,再次編譯,就沒有問題了!

  然后在Tomcat目錄里面的C:\Tomcat\webapps\ROOT里面按如下的文件結(jié)構(gòu):

ROOT\index.html
ROOT\welcom.jsp
ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar文件,則放在lib下面)
ROOT\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class文件放在這個里面)

  然后在瀏覽器中輸入http://localhost:8080/servlet/HelloWorld,于是Server眾望所歸的報錯了:Error 404--Not Found

  怎么回事呢?

  Servlet必須使用C:\Tomcat\webapps\ROOT\WEB-INF這個目錄下面的web.xml文件進行注冊,用EP打開這個web.xml文件,在里面加入:

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/helloworld</url-pattern>
</servlet-mapping>

  這樣的結(jié)構(gòu)

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>

  表示指定包含的servlet類。而以下的結(jié)構(gòu):

<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>

   表示指定HelloServlet應當映射到哪一種URL模式。

  在修改web.xml完畢過后,重新啟動Server,然后再輸入http://localhost:8080/servlet/HelloWorld,那么偌大一個Hello,World!等著你呢。