先貼上三個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文件中配置如下:
<?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_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
需要注意幾個細節:
<1> : extends HttpServlet 需要注意:重寫doGet等方法時,需要全部去掉super.doGet(~~~)之類的,這在上一篇文中解釋.
<2> : <url-pattern>/info</url-pattern> : http://localhost:8080/helloapp/info?username=TOM 隱蔽了真實的名.