2011-12-16 106 views
0

這是我的web.xml文件:請求的資源不可用 - Servlet的

<?xml version=」1.0」 encoding=」ISO-8859-1」 ?> 
<web-app xmlns=」http://java.sun.com/xml/ns/j2ee」 
    xmlns:xsi=」http://www.w3.org/2001/XMLSchema-instance」 
    xsi:schemaLocation=」http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd」 
    version=」2.4」> 
    <servlet> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-class>Ch1Servlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <url-pattern>/Serv1</url-pattern> 
    </servlet-mapping> 
</web-app> 

我有一個Ch1Servlet.java文件看起來像這樣:

import javax.servlet.http.*; 
import java.io.*; 
public class Ch1Servlet extends HttpServlet { 

    private static final long serialVersionUID = 5778266762215708858L; 

    public void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
        throws IOException { 
     PrintWriter out = response.getWriter(); 
     java.util.Date today = new java.util.Date(); 
     out.println("<html> " + 
       "<body>" + 
       "<h1 align=center>HF\'s Chapter1 Servlet</h1>" + 
       "<br>" + today + "</body>" + "</html>"); 
    } 
} 

我編譯的類,並放置它在WEB-INF/classes下。

這裏是我的目錄結構:

ch1 
    WEB-INF 
      web.xml 
      classes 
        Ch1Servlet.class 

當我嘗試訪問http://localhost:8080/ch1/Serv1我得到這個:

描述所請求的資源(/ CH1/SERV1)不可用。

任何人都可以請提供一些指導,至於如何克服這個問題?

+1

您對XML文件使用什麼編輯器?微軟Word或什麼的?這些捲曲引號在語法上無效。使用一個普通的XML編輯器,或者更好的是一個普通的IDE,因爲它會自動處理驗證代碼並編譯必要的東西並將更改部署到服務器。 – BalusC 2011-12-16 15:50:36

回答

0

你在用什麼IDE?例如,如果您使用Eclipse,則在創建項目時,可以選擇更改應用程序上下文名稱。這樣,儘管您的項目名稱爲ch1,但您可能必須在瀏覽器中輸入不同的地址。

0

與其他您希望公開顯示的其他Java類一樣,您需要將該servlet類放入包中。這樣任何體面的容器都可以找到並加載它。無包servlet只能在特定版本的Tomcat中與某些JDK版本結合使用。你不想依賴那個。


無關的具體問題,請確保您正在閱讀的正確的和最新的書籍/教程。您的web.xml(在語法上無效)指定了5年前已升級的舊版Servlet 2.4版本。我建議從our Servlets wiki page開始。它包含了一些具體的Hello World示例以及幾個優秀(和最新)的頁腳教程。