request 的其他功能,request 是一个域对象,request 对象也是一个存储数据的区域对象,所以也具有如下方法:setAttribute(String name, Object o),getAttribute(String name),removeAttribute(String name)
request 完成请求转发,获得请求转发器—-path 是转发的地址RequestDispatchegetRequestDispatcher(String path),通过转发器对象转发requestDispathcer.forward(ServletRequest request, ServletResponse response)
HttpServletRequest 概述,在创建 Servlet 时会覆盖 service() 方法,或 doGet()/doPost(), 这些方法都有两个参数,一个为代表请求的 request 和代表响应 response。
service 方法中的 request 的类型是 ServletRequest,而 doGet/doPost 方法的request 的类型是 HttpServletRequest,HttpServletRequest 是 ServletRequest 的子接口,功能和方法更加强大,今天我们学习HttpServletRequest。因为 request 代表请求,所以我们可以通过该对象分别获得 Http 请求的请求行,请求头和请求体。
通过 request 获得请求行,获得客户端的请求方式:String getMethod()
获得请求的资源:String getRequestURI(),StringBuffer getRequestURL(),String getContextPath(),String getQueryString(),request.getRemoteAddr()
通过 request 获得请求头,long getDateHeader(String name),String getHeader(String name),Enumeration getHeaderNames(),Enumeration getHeaders(String name),int getIntHeader(String name),这里只展示最常用的两种方法~
通过 request 获得请求体,请求体中的内容是通过 post 提交的请求参数,通过一下方法获得请求参数:String getParameter(String name),String[] getParameterValues(String name),Enumeration getParameterNames(),Map<String,String[]>getParameterMap()
注意:get 请求方式的请求参数 上述的方法一样可以获得
request对象的方向
答:setAttribute(Stringname,Object):设置名字为name的request的参数值
getAttribute(Stringname):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(Stringname):获得HTTP协议定义的文件头信息
getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例
getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParameterValues(Stringname):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Booleancreate]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(Stringname):删除请求中的一个属性
Request对象集合
request对象的方向是浏览器到服务器。根据查询相关公开信息显示:request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后服务器通过request对象的相关方法来获取这些数据。
1,Request.ClientCertificate 当客户端访问一个页面或其它资源时,用来向服务器表明身份的客户证书的所有字段或条目的数值集合,每个成员均是只读。(用于检索存储在发送到HTTP请求中客户端证书中的字段值)
例:
<%
If Len(Request.ClientCertificate(”Subject”)) = 0
Response.Write(”客户段验证不存在”)
End if
%>
此例使用Subject关键字测试客户端验证是否存在
2,Request.Cookies
根据用户的请求,用户系统发出的所有Cookier的值的集合,这些Cookie仅对相应的域有效,每个成员均为只读。(用于检索在HTTP请求中发送的Cookie的值。)
例:
<%response.cookies(”CookieName”)=”Cookie Content”
response.cookies(”CookieName”).Expires=date+60
Dim CookieStr
CookieStr=request.cookies(”CookieName”)
response.write CookieStr
%>
第一行:写一个名字为“CookieName”的Cookies,内容为“Cookie Content”
第二行:保留时间为60天
第四行:取得该Cookies的值,下一行打印
3,form
METHOD的属性值为POST时,所有作为请求提交的<form>段中的HTML控件单元的值的集合,每个成员均为只读。(用于检索HTTP请求正文中表单元素的值。)
sub.htm:注意方法是POST
<form action=”demo.asp” method=post>
<input type=text name=”Content” size=20>
<input type=submit value=”提交”>
</form>
demo.asp:
<%Dim TextCon
TextCon=request.form(”Content”)
response.write TextCon %>
4,QueryString 表单信息通过get方式发送时,服务器端或另一个asp页面就使用querystring方法接收。(用于检索HTTP查询字符串中变量的值。)
sub.htm:注意方法是GET
<form action=”demo.asp” method=get>
<input type=text name=”Content” size=20>
<input type=submit value=”提交”>
</form>
demo.asp:
<%Dim TextCon
TextCon=request.querystring(”Content”)
response.write TextCon %>
此例中,你不用sub.HTM,在地址栏中输入demo.asp?content=演示Querystring看看。request.form可不能这样做。
5,SeverVariables 随同客户端请求发出的HTTP报头值,以Web 服务器的几种环境变量的值的集合,每个成员均为只读。(用于检索预定的环境变量的值。)
例:
<%=Request.SeverVariables(”Script_Name”)%>
常见的该对象使用方法可以参考相关ASP书籍,一般都有详细描述。
以上就是关于request对象是有什么功能?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!