JSP 内置对象 request对象 及 中文乱码问题

Request对象

每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

 

1.获取请求参数

当通过超链接的形式发送请求时可以为该请求传递参数,可以通过在超链接的后面加上问号“ ?”来实现

例如,发送一个请求到delete.jsp页面并传递一个名为“id”的参数,可以通过以下超链接实现:

删除

注意:在通过问号 “?” 指定请求参数时,参数值不需要使用引号括起。如果同时指定多个参数,各参数间使用与符号“&”分隔。

在delete.jsp页面中可以通过request对象的getParameter()方法获取传递的参数值,代码如下:

<%
String id = request. getParameter( id") ;
%>

执行了getParameter()方法后变量id的值为1。

 

2.获取客户端数据

通过request对象可以获取客户端的HTTP报头信息、客户信息提交方式,客户端主机IP地址及端口号等。在客户端获取用户请求相关信息的request对象的常用方法如下表所示:

JSP 内置对象 request对象 及 中文乱码问题_第1张图片

 

3.应用request对象域

request对象可以视为一个域,可以应用setAttribute()方法在域范围内存放数据,其语法格式如下:

request. setAttribute (String name, 0bject object) ;

  • name:变量名,为String类型,转发后的页面获取数据时通过这个变量名来获取数据。
  • object:指定需要在request范围内传递的数据,为Object类型。

在将数据保存在request范围内的变量中后,可以通过request对象的getAttribute()方法获取该变量值,其语法格式如下:

request. getAttribute (String name) ;

name为变量名,在request范围内有效。

 

补充:解决中文乱码问题:

(1)获取访问请求参数时乱码

当访问请求参数为中文时,通过request对象获取的中文参数值为乱码,这是因为该请求参数采用的ISO-8859-1 编码不支持中文。

所以只有将获取的数据通过String的构造方法使用UTF-8或GBK编码重新构造一个String对象方可正确显示中文。

例如,在获取包括中文信息的参数user时可以使用下面的代码:

String user = new String (request.getParameter ("user"). getBytes(" iso-8859-1"), "UTF-8") ;

(2)获取表单提交的信息乱码当获取表单提交的信息时

通过request对象获取的中文参数值为乱码,可以通过在page指令的下方加上调用request对象的setCharacterEncoding()方法将编码设置为UTF-8或GBK来解决。、

例如,在获取包括中文信息的用户名文本框(name属性为username)的值时,可以在获取全部表单信息前加上下面的代码:

<% request. setCharacterEncoding("UTF-8" ) ;%>

再通过下面的代码获取表单的值时,就不会产生中文乱码:

String user = request.getParameter("username");

你可能感兴趣的:(JSP,request对象,JSP,中文乱码问题)