1.web.xml文件位于WEB-INFO目录下,千万别放到lib目录下去了;
2.
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>mypack.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
定义的java类可以按住Ctrl键点击类名看看是否能跳进去,检查类名是否正确;
3.java类定义在Java Resources下的包中。
4.一个实例代码
先贴上三个servlet java类 :
package mypack; import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class DispatchServlet */ public class DispatchServlet extends GenericServlet { private static final long serialVersionUID = 1L; private String target="/hello.jsp"; @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String username=request.getParameter("username"); String password=request.getParameter("password"); request.setAttribute("USER", username); request.setAttribute("PASSWORD", password); ServletContext context=getServletContext(); RequestDispatcher dispatcher=context.getRequestDispatcher(target); dispatcher.forward(request, response); } }
上面这个类在java web第一篇文章中出现了.
package mypack; 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 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. } }
package mypack; 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 ResInfoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html;charset=GB2312"); PrintWriter out=response.getWriter(); out.println("<html><head><title>ResInfoServlet</title></head>"); out.println("<body>"); out.println("<br>LocalAddr : " + request.getLocalAddr()); out.println("<br>LocalName : " + request.getLocalName()); out.println("<br>username : "+request.getParameter("username")); out.println("</body></html>"); out.close(); } }
web.xml文件中配置如下:
<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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>helloapp</display-name>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>DispatchServlet</display-name>
<servlet-name>DispatchServlet</servlet-name>
<servlet-class>mypack.DispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DispatchServlet</servlet-name>
<url-pattern>/DispatchServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>ResInfoServlet</display-name>
<servlet-name>ResInfoServlet</servlet-name>
<servlet-class>mypack.ResInfoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ResInfoServlet</servlet-name>
<url-pattern>/ResInfoServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>mypack.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
在浏览器中输入:
http://localhost:8080/helloapp/info?username=TOM
http://localhost:8080/helloapp/HelloWorld