jsp之Cookie

1,cookie是什么?有什么特点?

   Cookie是浏览器所提供的一种技术,这种技术让服务器端的程序能够将一些需要保存在客户端,或者在客户端进行处理的数据放在客户端的计算机上;从而不需要通过网络的传输,提高网页的效率,而且还能够减少服务器的负载;由于cookie是放在服务器放在客户端上的,所以其安全性也较差;

2,cookie最常用的地方!

   在一些论坛或者网页上,大部分都会有记住密码的功能,这样以后用户再进入本论坛时就可以不用登录了,直接选择进行操作。这里就用到了cookie,这样的话,从安全角度来讲并不好,很容易出问题,所以在程序设计时需要有所考虑;

3,cookie定义的常用方法!

NO
方法
类型
描述
1
public Cookie(String name,String value)
构造实例化Cookie对象,同时设置名称和内容
2
public String getName()
普通
取得Cookie的名称
3
public String getValue()
普通取得Cookie的内容
4
public void setMaxAge(int expiry)
普通 设置Cookie的保存时间,以秒为单位

所有的Cookie是由服务器端设置到客户端上去的,所有要向客户端增加Cookie,必须使用response对象的一下方法;

No方法类型描述
1public void addCookie(Cookie cookie)普通向客户端设置cookie

看实例,设置cookie;

	<%
		Cookie c1 = new Cookie("name","keith");
		Cookie c2 = new Cookie("age","21");
		response.addCookie(c1);
		response.addCookie(c2);
	 %>

 取出Cookie:

No方法类型描述
1public Cookie[] getCookies()普通取得客户端设置的全部cookie

 

实例,取出cookie:

	<%
		Cookie c[] = request.getCookies();
		for(int i=0;i<c.length;i++){
			
	 %>
	 	<%= c[i].getName() %>---><%= c[i].getValue() %><br />
	 <%
	 	}
	  %>

 在客户端每次向服务器端发送请求时都会将之前设置的Cookie随着头信息一起发送到服务器上,所以,这时使用request对象的getCookie()方法就可以取出全部设置的Cookie:运行结果是:

name--->keith
age--->21
JSESSIONID--->6111EC4EBBDDC1DFABD9BBB81EBD20CB

之前的页面只设置了两个cookie,但会取出一个JSESSIONID!在每一个客户端访问服务器时,服务器为了明确区分每一个客户端,都会自动设置一个JSESSIONID的Cookie,表示用户的唯一身份标识;


设置Cookie保存时间!

理论上讲,服务器设置Cookie会保存在客户端上,也就是说,关闭客户端的浏览器,再次打开时也会取到相应的值,如果在程序中不设置保存时间的话,会报NullPointerException异常,为了避免异常可以这样设定:

	<%
		Cookie c1 = new Cookie("name","keith");
		Cookie c2 = new Cookie("age","21");
		c1.setMaxAge(60);
		c2.setMaxAge(60);
		response.addCookie(c1);
		response.addCookie(c2);
	 %>

 这样c1,c2的生命时间只有60S,也就是在这60S之内,只要不重启服务器,随便打开客户端的浏览器,都可以获取到session的值;

虽然Cookie中可以保存信息,但是并不能无限制的保存,一般一个客户端最多只能保存300个Cookie;所以对于数据量较大时,将不能使用Cookie;

4,设置头信息的方式为客户端加入Cookie (并不常见,重点是通过response设置Cookie的操作上)

在Web中可以通过response对象的setHeader()方法完成设置Cookie的操作,代码如下:

	<%
		response.setHeader("Set-Cookie","cookieTest");
	 %>
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值