请求的资源不可用 - Servlet

时间:2011-12-16 15:32:22

标签: servlets

这是我的web.xml文件:

<?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时,我得到了这个:

description请求的资源(/ ch1 / Serv1)不可用。

任何人都可以提供一些指导,如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

您使用的是什么IDE?例如,如果您在创建项目时使用了Eclipse,则可以选择更改应用程序上下文名称。这样,虽然您的项目名称为ch1,但您可能需要在浏览器中输入其他地址。

答案 1 :(得分:0)

就像所有其他Java类一样,您希望将其自身公开地显示在包中的其他类中,您需要将servlet类放在包中。这样任何体面的容器都可以找到并加载它。无包装servlet仅适用于某些版本的Tomcat以及某些JDK版本。你不想依赖它。


对具体问题

无关,请确保您正在阅读正确的最新书籍/教程。您的web.xml(在语法上无效)指定旧的Servlet 2.4版本,该版本已在5年前升级。我建议从our Servlets wiki page开始。它包含一些具体的Hello World示例以及页脚中的几个优秀(和最新)教程。