request对象概述
客户端浏览网页时有可能是在当前页面上点击了一个超级链接,有可能是点击了一个表单提交按钮,这些都属于向服务器发送了一个请求,请求中包含了到底要请求服务器上的哪一个页面作为对本次请求的目标资源,同时还可能发送了请求参数。这些请求参数有可能是随当前超级链接发送的一个新闻ID号 ,有可能是表单中的数据 ,程序员在构建目标页面时可以用这些请求参数来进一步编码,实现目标页面功能。
当客户端对WEB服务器进行一个HTTP请求时,服务器创建一个请求对象,该对象封装了此次请求的所有信息,包括参数信息等。该对象对应的引用变量名为:request。
程序员在使用request对象时,要注意request的几个重要的方法。
request中封装的数据是以键-值对的方式存在的。getParameter方法非常重要。
客户端浏览器提交的请求参数全部封装在request对象中,每一对键-值对,都可以通过getParameter 方法编程,由“键”来得到“值”。所以getParameter的方法,一个重要的参数就是键名,而getParameter的方法返回值就是参数值。
request对象的方法:
| 方法 | 描述 |
| String getParameter (String name) | 将一个请求参数的值作为 String 类型的数据返回,如果参 数不存在,返回一个 null。这些请求参数均是伴随请求所 发送的信息 |
void setCharacterEncoding(String env) |
设置请求的编码 |
| String[] getParameterValues(String name) | 当 request 对象中存储的“键值对”属于 :一个键对应多个 值的情况时,使用方法 getParameterValues 可以得到存储这 些“多个值” 的数组 |
| Enumeration getParameterNames() | 获取所有参数的名称 |

图1 JSP执行原理图
案例
inputYourName.jsp:
<form action = "seeit.jsp" method="post">
请输入姓名:<input name= "name"type="text" ><br>
<input type="submit" value= "确定"><input type="reset"value = "取消">
</form>
seeit.jsp
<%request.setCharacterEncoding("UTF-8"); %>
<%=request.getParameter("name") %>
分析

图2 输入姓名
输入的"张三"是request对象中数据的来源
图3 另一个页面显示前一个页面提交到服务器的数据

图3 数据如何封装在request对象中
注意
当程序进行中文处理出现乱码时候,在seeit.jsp代码中加入语句:
<%request.setCharacterEncoding("utf-8");%>

