在开始JSP和Servlet的 开发之前,首先要保证Tomcat服务器已经可以应用部署JSP和Servlet,所以要对Tomcat服务器进行测试,在测试servlet的时候,问题出现了。
通过编译HelloServlet.java,将HelloServlet.class复制到Tomcat主目录/weapps/ROOT/WEB-INF/classes(一般要自己新建一个classes文件夹)下,在浏览器中输入http://127.0.0.1:8080/servlet/HelloSerlet,浏览器中未能出现预期的结果,浏览器显示:
HTTP Status 404 - /servlet/HelloServlet
----------------------------------
type Status report
message /servlet/HelloServlet1
description The requested resource (/servlet/HelloServlet1) is not available
我就开始查阅相关资料,在一本书上看到:
修改%TOMCAT_HOME%/conf/web.xml 找到
<servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
将注释去掉 tomcat5.0.16还有这段注释去掉
<servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> 我就照着书上说的做了,删除了web.xml中的那些注释语句,重新打开浏览器,还是不能正确显示,问题依旧。
到网上搜了一下,发现有不少网友也遇到了这个问题,有的网友提供的解决办法与上面的一样,我又找了找,
在LeadBBS上看到一个叫muyufeng1976 的网友写的一篇文章:一个有关HelloServlet小问题
其中有这么一段话:
Tomcat 安裝完成後,已經有一些編譯好的 servlet 範例可以執行,
這些範例都在 "c:/Tomcat/webapps/examples/" 目錄以下,
但我們希望自己的程式佈署在獨立的目錄下,假設我們希望自己寫的 servlet
都放在 myapp 目錄下,請按下列步驟進行佈署:
建立以下目錄結構:"c:/Tomcat/webapps/myapp/WEB-INF/classes/"。
請注意大小寫是有區別的。
把之前編譯後產生的 HelloServlet.class 複製到
"c:/Tomcat/webapps/myapp/WEB-INF/classes/" 目錄下。
開啟文字編輯器,將下列文字輸入(剪貼亦可)並存檔,檔名為
"c:/Tomcat/webapps/myapp/WEB-INF/web.xml"。
表 1
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd";;>
<web-app>
<servlet>
<servlet-name>
HelloServlet
</servlet-name>
<servlet-class>
HelloServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
其中 <servlet-mapping> 標籤可以將網址和實際執行的 servle
路徑做轉換對應,請特別注意 <url-pattern> 這個標籤的內容是
"/HelloServlet",前面的斜線是必要的,這個標籤值代表使用者在瀏覽器
上輸入的網址的一部分,當使用者輸入的網址符合這個 URL 樣式時,
就會轉而呼叫你指定的 servelt,也就是 HelloServlet。
因為此 servlet 範例程式的根目錄是 "myapp",所以加上
"/HelloServlet" 之後,瀏覽的網址就是 http://127.0.0.1:8080/myapp/HelloServlet
;;。這部分你可以參考 [1] 的 2.4 節的說明。
開啟瀏覽器,在網址列輸入 URL http://127.0.0.1:8080/myapp/HelloServlet;;,
如果可以看到如圖 4 的畫面,就表示成功了。如果發生錯誤,請重頭檢查每一個步驟,看看哪裡出問題了,
例如:Tomcat 服務是否已經啟動了,環境變數是否設定正確,
大小寫是否都輸入正確....等。
我就照他说的方法做了,在"c:/Tomcat/webapps"下新建了一个myapp文件夹,
在myapp文件夹下又建了一个WEB-INF文件夹,又在WEB-INF文件夹下建立了
classes文件夹。其他的操作都按照这个网友的做下去,结果就ok了。