【问题标题】:Servlet : Not able to run the Hello World ProgramServlet:无法运行 Hello World 程序
【发布时间】:2015-05-17 08:50:36
【问题描述】:

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>

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

请帮忙!!

我把网址改成了

http://localhost:8080/Servlet/HelloWorld

现在面临异常

文件夹结构

【问题讨论】:

  • &lt;url-pattern&gt;/HelloWorld&lt;/url-pattern&gt; 为什么你认为你的servlet必须在contextroot/Servlet
  • 上传完整的项目
  • @Everv0id 我从 eclipse 运行它,它默认给了我那个路径
  • 你用什么服务器?
  • HelloWorld类的全称是什么?包名.类名。或者您正在使用默认包?

标签: java servlets


【解决方案1】:

你应该提供类名和包名。

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

如果应该是:

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

//哈哈哈哈哈哈 }

【讨论】:

  • You should provide the class name with the package name。 ...已经完成但无法正常工作
  • 你的 webapp 部署的文件夹的名称是什么?
  • 添加文件夹结构
  • @SparshKhandelwal 和 java 文件夹结构?
  • 右键单击服务器并确保您的自定义 tomcat 安装覆盖了 tomcat 安装,
【解决方案2】:

有几件事需要检查: - 首先将应用程序正确部署在服务器上。您应该有一个已部署的 .war 项目。您应该在服务器日志上看到成功的部署 - 建立你的网址。这由服务器 IP(在您的情况下为本地主机)组成,端口 8080 通常是默认值,而不是上下文根(如果未定义,则它应该是应用程序的名称)和最后一个 servlet 名称:http://localhost:8080/appname/helloworld

您的 Web.xml 也可能存在错误。您定义了类但没有包的 servlet 类标记。可能您的课程也在一个包中。 包裹。你好世界

【讨论】:

    【解决方案3】:
    1. 验证是否有其他应用程序在与 Apache Tomcat 相同的端口上工作。
    2. 尝试清理您的 Apache Tomcat 服务器。

    【讨论】:

      猜你喜欢
      • 2014-09-25
      • 1970-01-01
      • 2020-11-27
      • 2021-02-14
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多