【问题标题】:Getting error page while running the servlet运行 servlet 时出现错误页面
【发布时间】:2012-09-25 19:17:30
【问题描述】:

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

输入状态报告

消息/FirstServlet/

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

这里我观察到的 url 是 ---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>  

【问题讨论】:

    标签: jakarta-ee


    【解决方案1】:

    将您的 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>
    

    【讨论】:

    • 另外,webapp 的上下文路径必须放在前面:http://localhost:5533/theWebApp/XXXX
    • 我更新了我的 web.xml,正如你提到的,但我仍然得到同样的错误,
    【解决方案2】:

    您还应该以 /HelloWorldServlet 的形式访问它,或者按照前面作者的配置以 /FirstServlet 的形式访问它,如 URL 模式中所述。

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

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

    【讨论】:

      猜你喜欢
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多