JSP作业5之request对象的使用
2019.3.26
jsp内置对象request、session、application、response等。
- request对象
用于封装请求信息(包含协议、参数等),不存在时返回null
(1)getParameter("name")
返回name元素的值;
例子:
(2)getParameterValues()返回多值参数的同一个name的多个值
(比如使用复选框时),返回的是一个String类型的一个一维数组。
(3)setAttribute("key",Object)
在请求的作用域下,管理某些属性,
在进行请求转发时,需要用把一些数据带到转发后的页面进行处理。这时就可以使用request
对象的setAttribute()
方法将数据以对象属性的方式保存到request
对象中,可以在请求的作用域内进行存取。
(4)getParameterNames()
获取所有参数的名称。
注
第一句代码是有点问题的,使用这个需要先导入一个包:
import="java.util.*
并且添加泛型:
Enumeration<String> gNames=(Enumeration<String>)request.getParameterNames();
保存属性
(5)request.setAttribute("key",Object)
;
参数key
是键,为String
类型。在转发后的页面内取数据时,就可以通过这个键(唯一)来获取数据。参数object
是键值,为Object
类型,它代表需要保存在request
范围内的数据。
注:键是唯一的,object为任何类的对象,也可以为一个值(自动装箱为Integer类型)。
获取属性
(6)Object value=request.getAttribute(String name);
其中的参数name
表示键名对应上面的key
,返回值为Object类型。
例子:
2. 第一个小任务,输出表单数据:
代码参见:
//解决post方法的乱码问题
request.setCharacterEncoding("UTF-8");
Enumeration<String> gNames=(Enumeration<String>)request.getParameterNames();
while(gNames.hasMoreElements()){
String name=(String) gNames.nextElement();
String value=request.getParameter(name);
if("fname".equals(name))
out.println("姓名:"+value+"\n");
if("age".equals(name))
out.println("年龄:"+value+"\n");
if("gender".equals(name))
out.println("性别:"+value+"\n");
if("rabbits".equals(name)){
String[] rbs=request.getParameterValues("rabbits");
out.print("爱好:");
for(String rab : rbs)
out.print(rab+" ");
out.println("\n");
}
if("info".equals(name))
out.println("个人简介:"+value+"\n");
`
还有一个小问题,就是输出换行无效,在外面加入<pre></pre>
之后可以换行有效了。
3. cookie
操作(用户信息)
cookie是一小段文本信息。伴随着用户请求和页面在web服务器和浏览器之间传递。用户每次访问站点时,web应用程序都可以读取Cookie包含的信息
(1)获取Cookie
request对象中的getCookies()
方法
Cookie[] cookie = request.getCookies();
(2)保存Cookie
4. 第二个小任务
要让用户在访问站点时都可以读取之前登录成功的Cookie信息
在登录页面先获取Cookie,获取后将信息填入表单。
String username="";
String pwd="";
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if("username".equals(cookies[i].getName())){
username=cookies[i].getValue();
}
else if("pwd".equals(cookies[i].getName())){
pwd=cookies[i].getValue();
}
}//for
}
else{
username="";
pwd="";
}
输入框的值为先前保存的Cookie信息
参考链接:
1.前面两段基础代码:
https://blog.csdn.net/weixin_36380516/article/details/69356313
2.关于添加泛型
https://community.oracle.com/thread/1184920
3.代码已上传
https://github.com/little-talks/little-projects/tree/master/test05
诶嘛,马上关机了,赶紧提交