2013-05-03 79 views
0

所有,我是新手进入Java Web开发,我试图在我的测试中实现一个Servlet。但我发现我创建的Servlet不起作用。我不知道我是否错过了任何东西。请帮我查看一下。谢谢。为什么servlet不起作用?

我做了什么至今:

  1. 创建一个名为Dynamic Web ProjectSecondWeb选择 Generate web.xml DD
  2. 在包 com.example.servlets的基础上增加了Servlet,命名为HelloServlet。我配置URL Mapping的值为 /HelloServlet/*。希望它能适用于根目录下的所有url模式 。

这是它的代码。

package com.example.servlets; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class for Servlet: HelloServlet 
* 
*/ 
public class HelloServlet extends javax.servlet.http.HttpServlet 
    implements javax.servlet.Servlet { 

    /* (non-Java-doc) 
    * @see javax.servlet.http.HttpServlet#HttpServlet() 
    */ 
    public HelloServlet() { 
     super(); 
    }  

    /* (non-Java-doc) 
    * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, 
     HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     response.getWriter().write("Hello, world!"); 
    } 

    /* (non-Java-doc) 
    * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, 
     HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    }    
} 

而且我还加了一个index.jsp加入了测试。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>My Title</title> 
</head> 
<body> 
<% java.util.Date d = new java.util.Date(); %> 
<h1> 
Today's date is <%= d.toString() %> and this jsp page worked! 
</h1> 
</body> 
</html> 

我的预期是什么,我希望Hello world字符串可以被添加到index.jsp响应HTML当访问的URL http://localhost:8080/SecondWebhttp://localhost:8080/SecondWeb/index.jsp。但似乎HelloServlet不起作用。为什么?谢谢。

+0

_'HelloServlet'不工作_表示它没有被调用?当你点击'http:// localhost:8080/SecondWeb/index.jsp'时,你会得到什么? – 2013-05-03 05:17:09

+1

我没有看到任何代码调用或在您的jsp页面中包含helloworld servlet。 – Vasu 2013-05-03 05:40:49

+0

@VikasV是的。我在'doGet'中设置了一个断点,但没有被触发。谢谢。 – 2013-05-03 05:51:45

回答

1

我发现了这个问题,我必须在Web.xml中加上Servlet配置。像下面的根元素:

<servlet> 
     <servlet-name>HelloServlet</servlet-name> 
     <servlet-class>com.example.servlets.HelloServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping>