大家好,又见面了,我是你们的朋友全栈君。
request对象
request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
1.访问请求参数
我们知道request对象用于处理HTTP请求中的各项参数。在这些参数中,最常用的就是获取访问请求参数。当我们通过超链接的形式发送请求时,可以为该请求传递参数,这可以通过在超链接的后面加上问号“?”来实现。注意这个问号为英文半角的符号。
<a href="delete.jsp?id=1">删除</a>
如果要同时指定多个参数,各参数间使用与符号“&”分隔即可。
示例:delete.jsp页面中,可以通过request对象的getParameter()方法获取传递的参数值。
<% String id = request.getParameter("id"); //获取id参数的值 %>
2.在作用域中管理属性
在进行请求转发时,需要把一些数据传递到转发后的页面进行处理。这时,就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中。
语法格式:
request.setAttribute(String name,Object object);
在将数据保存到request范围内的变量中后,可以通过request对象的getAttribute()方法获取该变量的值,具体的语法格式如下:
request.getAttribute(String name)
3.获取cookie
在互联网中,cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器的。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
通过cookie的getCookies()方法即可获取到所有cookie对象的集合;通过cookie对象的getName()方法可以获取到指定名称的cookie;通过getValue()方法即可获取到cookie对象的值。另外将一个cookie对象发送到客户端使用了response对象的addCookie()方法。
4.解决中文乱码
如果将某些参数的值更改为中文,则在jsp就会发生大家都不愿意看到的问题——在显示参数值时中文内容变成了乱码。这是因为请求参数的文字编码方式与页面中的不一致所造成的,所有的request请求都是iso-8859-1的,而在此页面采用的是UTF-8的编码方式。要解决此问题,只要将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个String对象即可正确地显示出中文信息。
5.获取客户端信息
通过request对象可以获取客户端的相关信息,如HTTP报头信息,客户信息提交方式、客户端主机IP地址、端口号等。
request获取客户端信息的常用方法
方 法 | 说 明 |
getHeader(String name) | 获得HTTP协议定义的文件头信息 |
getHeaders(String name) | 返回指定名字的request Header的所有值,其结果是一个枚举型的实例 |
getHeadersNames() | 返回所有request Header的名字,其结果是一个枚举型的实例 |
getMethod() | 获得客户端向服务器端传送数据的方法,如post、get、header、trace等 |
getProtocol() | 获得客户端向服务器端传送数据所依赖的协议名称 |
getRequestURI() | 获得发出请求字符串的客户端地址,不包括请求的参数 |
getRequestURL() | 获得发出请求字符串的客户端地址 |
getRealPath() | 返回当前请求文件的绝对路径 |
getRemoteAddr() | 获取客户端的IP地址 |
getRemoteHost() | 获取客户端的主机名 |
getServerName() | 获取服务器的名字 |
getServerPath | 获取客户端所请求的脚本文件的文件路径 |
getServerPort() | 获取服务器的端口号 |
6.显示国际化信息
浏览器可以通过accept-language的HTTP报头向Web服务器指明它所使用的本地语言。request对象中的getLocale()和getLocales()方法允许JSP开发人员获取这一信息,获取的信息属于java.util.Local类型。java.util.Local类型的对象封装了一个国家和一种国家所使用的语言。使用这一信息,JSP开发者就可以使用语言所特有的信息作出响应。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155170.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...