【问题标题】:How to make and run servlet with eclipse kepler and apache 7如何使用 eclipse kepler 和 apache 7 制作和运行 servlet
【发布时间】:2014-05-18 02:02:41
【问题描述】:

我正在制作这个新的 servlet:

package 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;

/**
 * Servlet implementation class Hello
 */
public class Hello extends HttpServlet
{
    private static final long   serialVersionUID    = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Hello()
    {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        response.setContentType("text/html");

        PrintWriter out = response.getWriter();
        out.println("It works");
        out.close();
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        doGet(request, response);
    }

}

这是我在 WEB-INF 中的 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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>FirstServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

   <servlet>
      <servlet-name>Hello</servlet-name>
      <servlet-class>Hello</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>Hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
</web-app>

display-name 和 welcome-file-list 标签是在我创建动态 web 项目时自动生成的。 servlet 和 servlet-mapping 是我写的。当我使用 appache 7 运行项目时,它显示 HTTP 状态 404 - /FirstServlet/。我的错在哪里?

【问题讨论】:

  • 您的 servlet 位于 /FirstServlet/Hello 下
  • 是的,你对它运行的包是正确的,但只有当我预先在 java 文件上运行时,但如果我运行整个项目,它会给出同样的错误。

标签: java eclipse servlets


【解决方案1】:

1) 您可能缺少列出的所有欢迎文件。 404 是不存在时应该发生的情况。

2) 您的 servlet 映射已损坏。 servlet-class 元素需要一个完全限定的类名,即Servlets.Hello 而不仅仅是Hello。正确映射后,/FirstServlet/hello 将到达您的 servlet,匹配映射的 URI,然后按名称查找已注册的 servlet,最后到达应执行的完全限定类。

【讨论】:

  • 好的,我已经从 web.xml 中删除了 display-name 和 welcome-file-list,还使用 ​​Servlets.Hello 更改了类元素,现在如果我运行项目,它会显示“HTTP Status 404 - /FirstServlet /”,如果我运行 java 文件,它就可以工作。我想在运行项目时让它运行。
  • @user3430773 您是否尝试过我对@nitind 的回答和第 2 点的评论?
猜你喜欢
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2011-08-22
相关资源
最近更新 更多