doGet方法只能处理Get方式提交的请求,doPost则可以处理Post方式提交的请求,
一种既可以处理Get方式又可以处理Post方式的提交的请求,它就是Service方法。
service方法用来处理客户端浏览器直接访问和表单以get方式提交以及表单以post方式提交的情况。
首先说表单的写法(这里说的是常规写法):
<form action="ServiceDemo" method="post"> 用户名:<input type="text" name="username"/><br> 密码:<input type="password" name="password"/><br> <input type="submit" value="提交"/> <input type="reset" value="重置"/> </form>
相对应的Servlet写法(因为篇幅问题,我省略了包导入语句):
1 public class ServiceDemo extends HttpServlet { 2 3 protected void service(HttpServletRequest request, HttpServletResponse response) 4 5 throws ServletException, IOException { 6 7 response.setContentType("text/html;charset=gb2312"); 8 9 PrintWriter out = response.getWriter(); 10 11 request.setCharacterEncoding("gb2312"); 12 13 String username = request.getParameter("username"); 14 15 String password = request.getParameter("password"); 16 17 out.println("<html>"); 18 19 out.println("<body>"); 20 21 out.println("用户名:" + username + "<br>"); 22 23 out.println("密码:" + password); 24 25 out.println("</body>"); 26 27 out.println("</html>"); 28 29 } 30 31 }
其实,这个service方法的用法与前面的doGet与doPost方法的用法完全一样,
它实现了对这两种提交方式的处理,只要在代码中实现了这个方法,具体的调用过程
由Web容器去处理。