cookie之我见

 

31.    cookie不是特别重要,但是概念特别重要。为什么要写cookie,有些网站,是不是问你记不记住密码,可以在客户端存一点信息,这个纯文本的,不能存太多。比如一千万个人同时购物,那要浪费多少资源啊,你购物的信息,如果全保存在客户端,你点确认,就把你的购物信息发到服务器上去。

 

cookie 默认为当前目录,换一个用户登录,window别人就读不到你那些信息了。你到c盘里面去看一下,是不是当前用户登录有一个cookie文件夹,还有一个All User目录下面也有一个cookie文件夹,Default User下面也有,我的机器 上没有,系统 不同啊,标准的系统应该有。盗版改装的系统嘛 。

 

cookie只能是文本,不能是其它的。

cookie也是有生命周期的。什么密码半个月有效,半个月之后就把密码自动删除,还有一种cookie,只根当前窗口绑定的,你把窗口一关,cookie就没有了。

 

 

就是键值对。

 

 

32.  怎么写cookie:请看下面

public class SetCookies extends HttpServlet{

public doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

Cookie c1 = new Cookie("username","zhangsan");  不支持中文。张三

//使用response往回写

response.addCookie(c1);//就相当于把信息写到客户端

//先这样写吧,以后再加密,不加密就属于明文,

Cookie c2 = new Cookie("password","123");

c2.setMaxAge(3600);//设置生命周期为一个小时,单位为秒

response.addCookie(c2);

 

response.getWriter().println("设置成功");

}

}

在地址栏一运行这个servlet就会在当前用户登录的cookie下生成一个文件,注意不设置生命周期的话,在内存里面,窗口一关就没了,那也就是说默认的生命周期是当前窗口啊,你看上面username没有设置,你到c盘的当前用户的cookie文件夹把生成的这个文件打开 ,里面是不是没有username的属性。

 

生命周期不设,就不存。设置生命周期就会持久化,不持久化,窗口一关,就没了。

 

 

33.   现在来读cookie:    明白这个过程,现在是在服务器端写代码,要把cookie从客户端发送到服务器,就是一个request的过程。

public class ShowCookies extends HttpServlet{

public doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

Cookie[] cookies = request.getCookies(); //得到的是一个cookie的数组

for(itn i=0;i<cookies.length;i++){

response.getWriter().println(cookies[i].getName() + "," + cookies[i].getValue());

}

//以后做不用你输入用户名和密码,自动填上。

}

 

注意,在同一个窗口中,先运行那个设置cookie的servlelt,再运行这个可以显示cookie的servlet,就可以看到usernaem的值,如果这个窗口只是设置,再开一个窗口,去show的话,不会看到usernaem,因为服务器会认为是不同的人来访问,而你又没有设置cookie所以 没有任何信息显示。

 

 

运行显示的效果为:username zhangsanpassword 123JSESSIONID C0052B40717D0A258BD372F9D19AE878后面多了一串东西,现在不知道是什么原因。

 

 

开两个窗口就相当于两个人一样

 

 

34.  由他写的代码可以看出,如果脱离的eclipse的话,要你去建servlet的话,就是一个类,继承HttpServlet,doGet()方法,然后一定要记得到web.xml文件中把这个配上。

写servlet就继承HttpServlet类,然后写上你要请求的方法是doGet  还是doPost就写这两个方法就可以了,他要么就写其中的一个。

 

35.  现在来看session,与cookie刚好相反,这个是放服务器,cookie和session是有关系的,是根据什么有关系的,主要是根据http协议的。

 

 

session跟cookie类似,也跟窗口绑定,通过这个servlet设置的session,无法再开一个窗口来显示session中的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值