5.5.2 请求对象:request

5.5.2 请求对象:request

在JSP中,内置对象request封装了客户端的请求信息。请求信息包括客户端浏览器提交的各项参数和选项,如请求的头信息、请求方式、请求的参数等。

使用HTTP协议传递请求信息的方式通常有两种,一种是将请求信息加到URL中,另一种是通过表单。在第1种方式中,客户端的请求信息会附加到URL结构的问号后,使用GET方法向服务器提交表单数据时,也采取这种方式。传送至服务器后相应的Web应用程序从URL中取出数据进行处理。所使用的URL形式如下:

其中问号后面为查询数据,即传递到服务器的请求信息。这些请求信息多以“关键字=值”的形成出现,每组请求信息之间使用符号间隔。

第2种方式中,请求信息被包含在请求报文实体主体中发送至服务器,而不是附加到URL上。采用POST方法提交表单数据即是如此。

无论以何种方式传递请求信息,在服务器端它们都封装在request对象中。可以通过request对象相应的方法获取需要的信息。

1.常用方法

request对象主要用途包括:访问请求参数、在作用域中管理属性、获取Cookie、获取客户信息、访问安全信息以及访问国际化信息。表5-6列出了常用的方法及说明。

表5-6 request对象常用方法及说明

2.应用示例

(1)访问请求参数

使用request对象的get Parameter()以及get Parameter Values()方法,可以获取用户提交的数据,包括客户端通过HTML表单提供的数据以及在URL后面提供的数据。

下面的示例中,生成表单的程序为form.jsp,其中提供参数的控件名为user;接收处理表单的是form.jsp中form标签的属性action指定的requestSubmit.jsp程序,其中request.getParameter(“user”)语句获取表单提供的数据。

【例5-14】使用getParameter()获取表单信息。

运行结果如图5-16、图5-17所示。

图5-16 提交信息

图5-17 获取表单信息

【例5-15】中,form.jsp程序生成的表单中有3个复选框,名字为checkbox,如图5-18所示;处理表单信息的程序为requestSubmit.jsp,其中使用getParameter Values()获取复选框的成组信息。

【例5-15】使用get Parameter Values()获取复选框的成组信息。

运行结果如图5-18、图5-19所示。

图5-18 提交复选框信息

图5-19 获取成组信息

(2)在作用域中管理属性

在进行请求转发时,需要把一些数据带到转发后的页面进行处理。这时,可以使用request对象的set Attribute()方法设置在本次请求范围内有效的数据。【例5-16】使用set Attribute()方法设置数据,并在转发后获取。

【例5-16】使用set Attribute()方法设置数据。

运行结果如图5-20所示。

图5-20 设置对象数据

(3)获取客户端信息

request对象的一些方法可以访问首部行内容,用于确定组成JSP页面的客户端的信息。

【例5-17】中,程序form.jsp通过表单向requestSubmit.jsp提交信息。requestSubmit.jsp通过request对象提供的方法获取客户端信息并显示用户提交的信息。

【例5-17】获取客户端信息。

运行结果如图5-21、图5-22所示。

图5-21 客户端提交的信息

图5-22 获取客户端信息