先贴上三个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("" + message + "
"); } 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("ResInfoServlet "); out.println(""); out.println("LocalAddr : " + request.getLocalAddr()); out.println("LocalName : " + request.getLocalName()); out.println("username : "+request.getParameter("username")); out.println(""); out.close(); }}
web.xml文件中配置如下:
helloapp login.html DispatchServlet DispatchServlet mypack.DispatchServlet DispatchServlet /DispatchServlet ResInfoServlet ResInfoServlet mypack.ResInfoServlet ResInfoServlet /ResInfoServlet HelloWorld mypack.HelloWorld HelloWorld /HelloWorld
在浏览器中输入:
http://localhost:8080/helloapp/info?username=TOM
http://localhost:8080/helloapp/HelloWorld
需要注意几个细节:
<1> : extends HttpServlet 需要注意:重写doGet等方法时,需要全部去掉super.doGet(~~~)之类的,这在上一篇文中解释.
<2> : <url-pattern>/info</url-pattern> : 隐蔽了真实的名.