java - 如何使用 eclipse kepler 和 apache 7 制作并运行 servlet

标签 java eclipse servlets

我正在制作这个新的 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/。我的错误在哪里?

最佳答案

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

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

关于java - 如何使用 eclipse kepler 和 apache 7 制作并运行 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22885128/

相关文章:

java - 转换为 String 和 String.valueOf 之间的区别

Java将哈希值转换为随机字符串

Java 进程在 Linux 后台运行时停止

java - 字符串宽度错误

java - 以编程方式突出显示 smartgwt 表单中的文本

eclipse - 如何在 Eclipse 中启用 TODO/FIXME/XXX 任务标签?

java - 使用现有 Java 文件在 Eclipse 上创建新项目

javascript - 解析来自 Servlet 的 JSON 响应

Java servlet 试图输出一个 xlsx 文件,但不断获取八位字节流

java - Netbeans 生成的 WAR 在 Glassfish Server 3.1 中不起作用