运行servlet时获取错误页面

时间:2012-09-25 19:17:31

标签: java-ee

我在eclipse Juno中创建了一个动态Web项目,并在服务器(Tomcat6.0)上运行时,获取错误页面HTTP Status 404 - / FirstServlet /,并显示以下消息:

  

输入状态报告

     

message / FirstServlet /

     

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

在这里我观察到网址是--- http:// localhost:5533 / FirstServlet /

任何人都可以告诉我如何解决它。

以下是在FirstServlet中创建的文件

Servlet类代码

package com.surendra.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    public HelloWorldServlet() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter p = response.getWriter();
        p.println("Hello World");
    }

}

Web.xml中

 <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>FirstServlet</display-name>
  <servlet>
    <description></description>
    <display-name>first</display-name>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>com.surendra.servlets.HelloWorldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>first</servlet-name>
    <url-pattern>/HelloWorldServlet</url-pattern>
  </servlet-mapping>
</web-app>  

2 个答案:

答案 0 :(得分:0)

将您的web.xml更改为:

<servlet>
    <description></description>
    <display-name>first</display-name>
    <servlet-name>FirstServlet</servlet-name>
    <servlet-class>com.surendra.servlets.HelloWorldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FirstServlet</servlet-name>
    <url-pattern>/FirstServlet</url-pattern>
  </servlet-mapping>

在您的web.xml中,URL模式描述了您要使用的URL:

<url-pattern>/XXXX</url-pattern> --> http://localhost:5533/XXXX/

此外servlet-name必须与servlet描述匹配

<servlet>
    <description></description>
    <display-name>first</display-name>
    <servlet-name>XXXXXXXXXX</servlet-name>  <!--- HERE ---->
    <servlet-class>com.surendra.servlets.HelloWorldServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>XXXXXXXXXX</servlet-name>  <!--- AND HERE ---->
    <url-pattern>/FirstServlet</url-pattern>
  </servlet-mapping>

答案 1 :(得分:0)

此外,您应该将其作为/ HelloWorldServlet访问,或者按照以前的作者配置将其作为/ FirstServlet访问,如URL模式中所述。

额外检查的一些小事。你的战争文件名是什么?您是否已复制/部署到应用程序服务器文件夹中?

如果是,您的网址应为http://localhost:8080/war_name/servlet_name