无法运行简单的servlet

时间:2011-10-04 05:27:22

标签: java servlets

我正在使用此链接http://www.roseindia.net/servlets/

创建我的第一个servlet

这是我在Eclipse ServletDemo中的servlet-> Java Resources-> src->(默认包) - > HelloServlet.java

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 HelloServlet extends HttpServlet{ 

  public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></title>");
  pw.println("<body>");
  pw.println("<h1>Hello World</h1>");
  pw.println("</body></html>");
  }
}

这是我的web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd"> 

<web-app>

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

我正在使用Tomcat服务器,我还为servlet-api.jar设置了环境变量。 但是在运行时我遇到了以下错误:

  

HTTP状态404-Servlet Hello不可用。

1 个答案:

答案 0 :(得分:2)

Servlet可能不再存在于默认包中;创建一个包并将servlet移动到它(取决于你正在使用的Tomcat上的版本)。

与您尝试从浏览器访问它的方式相比,您部署/运行servlet的方式也很重要 - 您需要指定一个上下文,如果您将其部署到除了根上下文。

(我也倾向于指出人们远离该网站的教程,因为他们经常......误导。虽然我知道这只是一个教程,但请记住,从这样的servlet中生成HTML本质上是从来没有你想做的事情:)