第4篇——JSP作业5之request对象的使用

JSP作业5之request对象的使用
2019.3.26
jsp内置对象request、session、application、response等。

  1. 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
诶嘛,马上关机了,赶紧提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值