一、doXXX()方法
1、HTTP定义了GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE等请求方式,HttpServlet中对应的方法有:
(1)doGet():处理HTTP GET请求
(2)doPost():处理HTTP POST请求
(3)doPut():处理HTTP PUT请求
(4)doDelete():处理HTTP DELETE请求
(5)doHead():处理HTTP HEAD请求
(6)doOptions():处理HTTP OPTIONS请求
(7)doTrace():处理HTTP TRACE请求
例1、如果在继承HttpServlet之后,没有重新定义doGet()方法,而客户端对Servlet发出了GET请求,则会收到错误信息。
2、对于GET请求,service()方法可以实现getLastModified()方法(默认返回-1,也就是默认不支持if-modified-since标头),来决定是否调用doGet()方法,getLastModified()方法返回自1970年1月1日凌晨至资源最后一次更新期间所经过的毫秒数,返回的这个时间如果晚于浏览器发出的if-modified-since标头,才会调用doGet()方法。
二、关于HttpServletRequest
当HTTP转发给Web容器处理时,Web容器会收集相关的信息,并产生HttpServletRequest对象,可以通过这个对象取得HTTP请求中的信息,可以在Servlet中进行请求的处理,或是将请求转发(或包含)另一个Servlet/JSP进行处理,各个Servlet/JSP在同一请求周期中所需共享的资料,则可以设置在请求对象中成为属性。
1、处理请求参数与标头
请求来到服务器时,Web容器会创建HttpServletRequest实例来包装请求中的相关信息,HttpServletRequest定义了取得一些通用请求信息的方法。
可以使用以下方法来取得请求参数:
(1)getParameter():指定请求参数名称来取得对应的值,返回的是String对象,若传来的是像“123”这样的字符串值,而需要的是基本数据类型,则必须使用Integer.parseInt()这类的方法将它剖析为基本类型,若请求中没有所指定的请求参数名称,则会返回null。
例2、String username=request.getParameter(“name”);
(2)getParameterValues():如果窗体上有可复选的元件,如复选框、列表等,则同一个请求参数名称会有多个值(此时的HTTP查询字符串其实就是像param=10¶m=20¶m=30),此时可以用getParameterValues()方法取得一个String数组,数组元素代表所有被选取选项的值。
例3、String[] values=request.getParameterValues("param");
如果想要知道请求中有多少请求参数,则可以使用getParameterNames()方法,这时就会返回一个Enumeration对象,其中包括所有的请求参数名称。
例4、Enumeration<String> enum=request.getParameterNames();
(3)getParameterMap():将请求参数以Map对象返回ÿ