request对象是网页服务器端的程序中,用来获取客户端表单字段内容数据的主要核心对象。它是实现javax.servlet套件下的HttpServletRequest接口而来,而此接口又是延伸自ServletRequest,所以request对象可以使用这两个接口中的方法。
分类 | 方法 | 说明 |
---|---|---|
获取用户参数 | GetParameter(strName) | 返回指定变量名的数据 |
获取用户参数 | GetParameterValues(strName) | 返回所有变量名的枚举,此枚举中的内容为各个发送的变量名 |
获取用户参数 | GetParameterNames() | 返回指定名称的数组,若用户所输入的数据为复数,并且变量名相同,则使用此方法来取得复数的数组数据 |
获取系统信息 | getProtocol() | 返回通讯协议的方式 |
获取系统信息 | getRemoteAddr() | 返回客户端用户的IP地址 |
获取系统信息 | getRemoteHost() | 返回客户端用户的主机名 |
获取系统信息 | getScheme() | 返回当前页面使用的协议,http 或是 https |
获取系统信息 | getServerName() | 返回服务器主机的名称 |
获取系统信息 | getServerPort() | 返回服务器主机的端口号,如8080 |
获取系统信息 | getRealPath(“url”) | 返回目前虚拟路径的真实路径 |
获取系统信息 | getMethod() | 返回发送数据的方式,如GET,POST |
获取系统信息 | getQueryString() | 返回附在地址栏后的字符串数据 |
获取系统信息 | getRequestURI() | 返回请求的URI字符串,不包含地址栏后的查询字符串,如"http://myCom/jsp?data=helloWorld"会返回”/myCom/jsp" |
获取系统信息 | getServletPath() | 返回程序的相对路径与文件名 |
获取头信息 | getHeader(String name) | 返回名称为name的请求头内容 |
获取头信息 | getHeaderNames() | 返回所有请求头名称的枚举 |
设置中文编码
setCharacterEncoding(),此方法接收一个代表编码格式的标识符串,简体中文的编码为GB2312
<%request.setCharacterEncoding("GB2312");%>
Post和Get的差异
这两种设置的方式的主要差异在于数据的发送方式,前者将所要发送的数据包含在HTTP文件头,后者是将数据直接串接在地址栏的后端,两者都可以使用GetParameter取得发送的数据内容。
另外一个区别就是GET方式不能传送大量的数据,而POST恰好相反,适合传送大量数据。所以对速度要求较高时尽量考虑GET,当然这也并非绝对,根据具体需要合理选择。
method="get"的文件头
method="post"的文件头
所以当网页所要发送的是机密的数据时,选择get会将数据暴露,造成数据外泄。
getParameterValues方法
getParameterValues()是用来取得数组数据的方法。当勾选多个复选框或者多选下拉式列表中的数据时,在程序中可由此取得被选择的数据项。
String select[] = request.getParameterValues("名字,即name的值")
取得请求头信息
getHeaderNames方法取得所有请求头的名称,getHeader方法可取得特点名称的请求头信息。
<%
//示例用法
Enumeration headers = request.getHeaderNames();
while(headers.hasMoreElements()){
String name = (String)headers.nextElement();
String content = request.getHeader(name);
out.print(name+"-->"+content+"<br>");
}
%>