j2eehttpservletrequest详解

上传人:xiao****1972 文档编号:84822076 上传时间:2019-03-05 格式:DOC 页数:5 大小:117.50KB
返回 下载 相关 举报
j2eehttpservletrequest详解_第1页
第1页 / 共5页
j2eehttpservletrequest详解_第2页
第2页 / 共5页
j2eehttpservletrequest详解_第3页
第3页 / 共5页
j2eehttpservletrequest详解_第4页
第4页 / 共5页
j2eehttpservletrequest详解_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《j2eehttpservletrequest详解》由会员分享,可在线阅读,更多相关《j2eehttpservletrequest详解(5页珍藏版)》请在金锄头文库上搜索。

1、ServletRequest详解一个用来向服务器提供客户端请求信息的对象. servlet container产生一个ServletRequest,然后将它作为参数传递给servlet的service方法.Servlet可以提供如下数据:参数和对应值,属性,输入流. 实现ServletRequest的接口可以提供另外的协议有关的数据(例如,HttpServletRequest可以提供HTTP数据).方法详解:Object getAttribute(String name):以对象的形式返回指定的属性值,如果属性值不存在,则返回null.属性值可以通过两种方法设置: servlet contai

2、ner可能设置属性,以便请求的特定信息可以被访问. 例如, 使用HTTPS发送的请求, javax.servlet.request.X509Certificate能够被用来查询客户端certificate信息. 属性同样可以使用setAttribute()方法进行设置. 这可以在调用RequestDispatcher之前将信息嵌入到request中. 属性的名字,应该同样遵循报名的传统. getAttributeNames():返回请求所有可用属性的枚举. 如果request没有可用的属性, 那么将返回空枚举. getCharacterEncoding(): 返回本请求中字符编码的名字. 如果

3、请求没有指定字符编码,那么将返回null.void setCharacterEncoding(String env):重写本请求所使用的字符编码. 本方法必须在读取请求参数或使用getReader()方法读取输入之前调用, 不然没有效果. int getContentLength(): 以字节的形式返回request body的长度并且made available by the input stream. 如果长度未知,将返回-1. 对于HTTPservlet, 其值和CGI变量CONTENT_LENGTH值相同. String getContentType():返回request body的

4、MIME类型. 如果类型未知, 返回null. 对于HTTP servlet,其值和CGI变量CONTENT_TYPE相同. ServletInputStream getInputStream(): 使用ServletInputStream返回请求体的二进制数据. 本方法或者getReader()可能被调用, 来读取请求体,但是不会同时使用. String getParameter(String name): 以字符串的形式返回请求参数的值,如果参数不存在,返回null, 请求参数是请求发送的而外信息, 对于HTTP servlet, 参数包含在查询字串(query string)或发送的表格

5、数据中.应当确定参数只有一个值的时候才使用本方法. 如果参数可能有多个值,硬挨使用getParameterValues(java.lang.String)如果你对有多个值的参数使用本方法, 返回的值和getParameterValues方法返回数组的第一个值相同. 如果参数是在请求体中发送的(当使用HTTP POST方法的时候, 会出现这中情况), 通过getInputStream()或getReader()直接读取body,将会干扰本方法的执行. Enumeration getParameterNames(): 返回请求中所有参数名的包含字符串数据的枚举, 如果请求没有参数, 本方法返回空枚

6、举. String getParameterValues(String name): 返回给定参数的所有值. 如果参数不存在,返回null. 如果参数只有一个值, 数组长度为1.Map getParameterMap(): 返回请求所有参数的映射. String getProtocol(): 以protocol/majorVersion.minorVersion的格式返回请求使用的协议. 该方法返回的值和CGI变量SERVER_PROTOCOL的值相同. String getScheme(): 发送这个请求的时候使用的scheme, 例如http,https或ftp, 不同的scheme有不同

7、的构造URL的方式, 在RFC 1738中注解的那样.String getServerName(): 返回所请求的server的主机名, 是Host header中:前的部分. 可能是解析后的server name, 也可能时server IP地址.int getServerPort():Host Header :之后的值, 如果有的话, 或者是服务器接收客户端连接的端口.BufferedReader getReader(): 使用BufferedReader以字符数据的形式返回the body of request. Reader按照body总字符的编码方式对字符进行翻译. 可以使用本方法或

8、是getInputStream()方法 来读取body,但是不能够两者一块使用. String getRemoteAddr(): 返回客户端的IP或者最后一个代理的IP地址. 对于HTTP servlet,拥有和CGI变量REMOTE_ADDR相同的值.String getRemoteHost(): 返回客户端或最后一个代理的全名, 如果不能够解析出主机名,将返回点分的IP地址, 对于HTTP servlet, 返回值和CGI变量REMOTE_HOST的值相同. void setAttribute(String name, Object o)在请求中存储一个属性, 不同的请求之间见重置Attr

9、ibute, 这个方法和RequestDispatcher一块使用. 属性名应该遵循和报名一样的传统. 如果设置的属性值为null, 效果同removeAttribute. 指的注意的是,如果request是从属于别的web application的servlet通过RequestDispatcher派发的, 这个方法设置的属性对象, 在caller servlet中可能不能够正确查询到. void removeAttribute(String name): 删除属性,一般用不到本方法,因为属性一般只在请求处理的期间存在. Locale getLocale(): 基于Accept-langua

10、ge header返回首选的Locale,client按照这种方式接收内容. 如果client request没有提供Accept-Language header, 比本方法将返回server默认的locale Enumeration getLocales(): boolean isSecure(): 指示请求是否是使用安全的通道发送的, 例如HTTPS. RequestDispatcher getRequestDispatcher(String path): 本方法和ServletContext.getRequestDispatcher(java.lang.String)区别是本方法可以使用

11、相对路径. String getRealPath(String path):Deprecated, 使用ServletContext.getPath(java.lang.String)替代. int getRemotePort()String getLocalName()String getLocalAddr()int getLocalPort()HttpServletRequest详解:HttpServletRequest: 是对ServletRequest的扩展, 提供了HTTP servlet的信息. servlet container产生一个HttpServletRequest对象并将

12、其作为参数传递给servlet的service方法(doGet, doPost, etc). 字段详解: static final String BASIC_AUTH:BASIC authentication标识符, 值是BASIC.FORM_AUTH: 值是FORMCLIENT_CERT_AUTH: 值是CLIENT_CERTDIGEST_AUTH: Value DIGEST方法详解:String getAuthType(): 返回用来保护servlet的authentication机制的名字, 所有的servlet支持basic, form和client certificate认证, 其他

13、的支持digest认证, 如果servlet没有认证,将返回null.Cookie getCookies():返回包含客户端请求所有对象的数组,如果没有发送cookie,那么本方法将返回null.long getDateHeader(String name): 返回以长整数的形式返回一个特定的请求头(request header),该长整数代表一个Date对象. 该方法可以用在包含时间信息的header中, 如: If-Modified-Since. header name是大小写敏感的.如果请求没有一个特定名字的header,这个方法将返回-1, 如果header不能够被转化为date,那么

14、该方法将抛出一个IllegalArgumentException. String getHeader(String name): 以字符串的形式返回指定的request header的值, 如果请求不包含指定名字的header, 本方法将返回null, 如果有多个header有相同的名字,本方法返回第一个, 本方法是大小写敏感的,你可以对任何request header使用本方法. Enumeration getHeaders(String name): Enumeration getHeaderNames():int getIntHeader(String name)String getMe

15、thod() :返回发送请求使用的方法, 如GET, POST, or PUT. 和CGI变量REQUEST_METHOD相同. String getPathInfo(): 返回客户端发送请求时使用URL的额外路径信息. 额外的路径信息是servlet后,查询子串前的部分,以/开头. 如果没有额外的路径信息,将返回null.和CGI变量PATH_INFO的值相同. String getPathTranslated() :返回额外的路径信息,并且将它转化成实际路径, 同CGI变量PATH_TRANSLATED值相同. 如果URL没有额外的路径信息, 本方法将返回null, 或者servlet container因某些原因不能够将virtual path转化成real path(例如, web application是在压缩包中运行时), web container不会解码这个字符串. String getContextPath(): 返回URI中,指示request context的部分, Context一百年首先出现在请求URI中, 该路径以/起始, 但是不以/结尾. 对于位于default (root) context中的servlet, 本方法返回, container不解析该字符串. 可能一个servlet匹配多个context path, 这种情况下,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号