生成servlet时有几个默认的方法,比如init(),service(),doGet(),doPost(),等。
这里主要针对doGet doPost service方法进行介绍。
service方法是servlet的核心,每当一个客户请求一个HttpServlet对象,该对象的service方法就要被调用,而且传递给这个方法一个请求(ServletRequest)对象和一个响应(ServletResponse)对象作为参数。在HttpServlet中已存在的service方法,缺省的服务功能是调用与HTTP请求的方法相应的do功能。例如,如果HTTP请求方法为GET,则缺省情况下就调用doGet()方法。Servlet应该为Servlet支持的HTTP方法覆盖do功能。因为HttpServlet.service()方法会检查请求方法是否调用了适当的处理方法,不必要覆盖service()方法。只需要覆盖相应的do方法就可以了。
当一个客户通过HTML表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
当一个客户通过HTML表单付出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL后面,并与这个请求一起发送。当不会修改服务端的数据时,应该使用doGet()方法。
Servlet的响应可以是以下几种类型:
一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。
一个HTTP错误响应,重定向到另一个URL、servlet、JSP。