request对象的方法
HTTP协议是在客户端与服务器之间一种传递请求与响应信息的通信协议。在JSP页面中,隐含对象request代表的是来自客户端的请求,通过它可以查看请求参数、请求类型(GET,POST,HEAD等)以及请求的HTTP头(Cookie,Referer等)客户端信息,它是实现 javax.servlet.HttpServletRequest 接口的类的一个实例。严格说来,如果请求所用的是HTTP之外的其他协议,request可以是ServletRequest的子类(而不是HttpServletRequest),但在实践中很少用到。
request 对象的方法有很多,有些是从javax.servlet.ServletRequest接口中继承的,这些函数与协议类型无关,有些是javax.servlet.HttpServletRequest中的方法,它们只支持HTTP协议。从功能角度可以将这些方法分为4类:
1.取得请求参数的方法,如表3-2。
表3-2 取得请求参数的方法
方 法 |
说 明 |
String getParameter(String name) |
取得name 的参数值 |
Enumeration getParameterNames( ) |
取得所有的参数名称 |
String [] getParameterValues(String name) |
取得所有name 的参数值 |
Map getParameterMap( ) |
取得一个参数的Map |
2.取得请求HTTP 头的方法,如表3-3。
表3-3 取得请求头的方法
方 法 |
说 明 |
String getHeader(String name) |
取得name 的头的值 |
Enumeration getHeaderNames() |
取得所有的头名称 |
Enumeration getHeaders(String name) |
取得所有名称为name 的头的值 |
int getIntHeader(String name) |
取得name头的整数类型值 |
long getDateHeader(String name) |
取得name头的日期类型值 |
Cookie [] getCookies( ) |
取得与请求有关的cookies |
3.储存和取得属性方法,如表3-4。
表3-4 存取属性的方法
方 法 |
说 明 |
Object getAttribute(String name) |
取得request对象中的name属性值 |
void setAttribute(String name, Object o) |
设定名字为name的属性值为o |
void removeAttribute(String name) |
取消request对象中的name属性 |
Enumeration getAttributeNames() |
返回request对象所有属性的名字 |
4.其他的方法,如表3-5。
表3-5 其他方法
方 法 |
说 明 |
String getContentType() |
取得请求数据类型 |
int getContentLength() |
取得请求数据长度 |
String getProtocol() |
取得请求所用的通信协议和版本 |
String getScheme() |
取得使用的URL类型 |
String getRemoteAddr() |
取得发出请求的IP地址 |
String getRemoteHost() |
取得发出请求的完整主机名 |
ServletInputStream getInputStream() |
取得客户端上传数据的数据流 |
String getQueryString() |
取得请求的参数字符串,HTTP的方法必须为GET |
String getMethod() |
取得GET或POST等 |
StringBuffer getRequestUrl() |
取得请求的URL地址 |
String getContextPath( ) |
取得Context 路径(即站点名称) |
String getRequestedSessionId( ) |
取得用户端的Session ID |
String getRequestURI( ) |
取得请求的URL,但是不包括请求的参数字符串 |
int getRemotePort( ) |
取得客户的主机端口 |
String getRemoteUser( ) |
取得客户的名称 |
void setCharacterEncoding(String encoding) |
设定编码格式,用来解决窗体传递中文的问题 |
request对象还有其它的方法,可以查阅关手册。request对象中比较重要的方法是:getParameter()、getParameterNames()、getParameterValues()和getHeader()。