Servlet:无法运行Hello World程序

时间:2015-05-17 08:50:36

标签: java servlets

不与此question

重复

这是我的代码

HelloWorld.java

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {

  private String message;

  public void init() throws ServletException
  {
      // Do required initialization
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }

  public void destroy()
  {
      // do nothing.
  }
}

的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>Servlet</display-name>

    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>

没有编译错误,但是面临这个问题。

enter image description here

请帮忙!! enter image description here

我将网址更改为

http://localhost:8080/Servlet/HelloWorld

现在面临例外

enter image description here

文件夹结构

enter image description here

3 个答案:

答案 0 :(得分:0)

  1. 验证是否有另一个应用程序在与Apache Tomcat相同的端口上工作。
  2. 尝试清理Apache Tomcat服务器。
  3. enter image description here

答案 1 :(得分:0)

您应该为类名提供包名。

但是,我建议尝试在servlet类上面使用@WebServlet(name =“HelloWorld”,urlPatterns =“/ helloWorld”)。

所以如果owuld是:

@WebServlet(name =“Welcome”,urlPatterns =“/ testPage”) 公共类HelloWorld扩展了HttpServlet {

//等等等等 }

答案 2 :(得分:0)

有几件事需要检查: - 首先,应用程序在服务器上进行核心部署。您应该部署一个.war项目。您应该在服务器日志上看到成功部署 - 建立你的网址。这由服务器IP组成,在本地主机中,端口8080通常是默认端口,而不是上下文根(如果没有定义,应该是应用程序的名称),最后是servlet名称:http://localhost:8080/appname/helloworld < / p>

您的Web.xml上也可能存在错误。您定义了类但没有包的servlet类标记。也许你的课程也在一个包里。 包。的HelloWorld