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写法(因为篇幅问题,我省略了包导入语句):
public class ServiceDemo extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("gb2312"); String username = request.getParameter("username"); String password = request.getParameter("password"); out.println("<html>"); out.println("<body>"); out.println("用户名:" + username + "<br>"); out.println("密码:" + password); out.println("</body>"); out.println("</html>"); } }
其实,这个service方法的用法与前面的doGet与doPost方法的用法完全一样,
它实现了对这两种提交方式的处理,只要在代码中实现了这个方法,具体的调用过程
由Web容器去处理。