eader(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()
取得发出请求的完整主机名
ServletlnputStream getlnputStream()
取得客户端上传数据的数据流
String getQueryString()
取得请求的参数字符串,HTTP的方法必须为GET
String getMethod()
取得GET或POST等
StringBuffer getRequestUrl()
取得请求的URL地址
String getContextPath
()
取得Context路径(即站点名称)
String getRequestedSessionld()
取得用户端的Session ID
String getRequestURI()
取得请求的URL,但是不包括请求的参数字符串
int getRemotePort()
取得客户的主机端口
String getRemoteUser()
取得客户的名称
void setCharacterEncoding(String encoding)
设定编码格式,用来解决窗体传递中文的问题
request对象还有其他的方法,可以查阅有关手册。request对象中比较重要的方法是:
getParameter()、getParameterNames()、getParameterValues()和getHeader()。下面举例说明函
数的用法。
3.2.1.1获得客户端提交的信息
一个
HTML文档exa3_1.jsp提交一个表单给tree.jsp,tree.jsp通过request.getParameter()接
收表单中的客户输入,并将有关信息送回客户端。
【例】 exa3_1.jsp关键代码如下:
<%@page contentType=”text/html; charset=GB2312”%>
tree.jsp关键代码如下:
<%@page comemType=”text/html; charset=GB2312”%>
文本框提交的用户名为:
<%String textContent=request.getParameter(“boy”);%>
<%=textContent%>
客户端提交的按钮的名字为:
<%String buttonName=request.getParameter(“submit”);%>
<%=buttonName%>
exa3 _1.jsp的运行结果如图3-1所示。
图3-1 exa3_1.jsp运行结果
注意:在例exa3_1.jsp中输入中文时不能正确显示,如图3-2所示。这就引发如何处理客
户端提交的中文问题。
图3-2 exa3_1.jsp输入中文时的运行结果
3.2.1.2处理中文信息
JSP页面的汉字问题主要指两方面:JSP页面中的汉字问题和表单提交的汉字问题。
(1) 对于JSP页面的汉字问题,需要在JSP中使用page指令告诉客户端汉字的编码方式:
<%@page contentType=”text/html; charset=gb2312”%>。在没有特别指示下,浏览器无法正确
显示汉字,每个要显示汉字的JSP页面都应该包含该语句。如hanzi.jsp中没有上述语句,被显
示为乱码。在其中加入:<%@page contentType=”text/html; charset=gb2312”%>指令后“你好”
被正常显示,运行结果如图3-3所示。
图3-3 hanzi.jsp加入page指令前后的运行结果
【例】hanzi.jsp关键代码如下:
<%--JSP的汉字问题JSPhanzi.jsp--%>
JSP中的汉字问题 <%
String HelloMsg=”你好”:
Out.println(HelloMsg);
%>
(2) 表单提交的汉字问题涉及到客户端和服务器的完整交互过