标签:request 个性 保存文件 也会 getc 用户名 函数 span 小伙伴
先吐槽一下,春节回到家里真是秃废啊!应该有和我一样的小伙伴吧O(∩_∩)O
好的,步入正题。今天来聊聊jsp中的二个常用类(对象),之前使用session和cookie挺多的,可是细节有些真没有注意。今天较为详细的来聊聊。
session
1 有关session
session是jsp的一个内置对象,与服务器自动创建。那么他是什么时候产生的呢?
我们向服务器发送请求时,服务器端就会自动创建session(Httpsession实例),并且将session的ID返回给客户端(保存在JSESSIONID变量中),session对象实例保存在服务器端,因此session经常被称为是服务器端的数据共享对象
2 session常用方法(函数)
(1)我们可以向session中添加变量和变量值
addAttribute(String name,Object values);返回值是Object类型
(2)获取session的ID值
String getId();返回值是String类型
(3)设置session的时间周期(默认是30min)
setMaxInactiveInterval(time);时间以秒计算
(4)其他,removeAttribute(String name)等等
3 session的特点
我们可以在不同的页面中共享session中的数据,要知道数据共享使用频率很高!
值得注意的是:session在不同的浏览器中数据不可共享;
4 session中数据的生命周期
这是我们最关心的问题,以下四种情况session会失效(清空)
(1)退出浏览器(很常见)
(2)关闭服务器(session资源被释放)
(3)session的有效时间到
(4)手动杀死(很少)
可以做实验去验证,包括下面的结论
cookie
1 关于cookie
cookie(小甜饼)不是jsp的内置对象,程序员自己添加的cookie保存在电脑对应的文件(物理文件),通常说是客户端数据共享
2cookie中的常见函数
//创建cookie
Cookie c=new Cookie("what","javaweb");
//设置cookie时间周期
c.setMaxAge(10*60);
//保存在客户端
response.addCookie(c);
//获取cookie
Cookie[] cookies=request.getCookies();
3 cookie的特点
cookie的用处很大,比如(1)我们可以记住用户名和密码,在一定周期内不需要重新登录,这种方式非常常见 (2)浏览器端的个性化,比如背景图,音乐等等 (3)其他
cookie也不可以跨浏览器使用的,cookie会保存在电脑的硬盘上。
4一个特殊的cookie
我们之前讲到session的ID是保存在JSESSIONID中的,其实是这样的,Cookie(JSESSIONID,sessionid);以cookie的形式保存在客户端的。不过这个cookie不保存在电脑硬盘上,而是保存在浏览器中(内置cookie)。这个cookie随着浏览器的关闭而关闭,这就是为什么关闭浏览器session数据会清空(sessionId消失,找不到对应的session实例)
5 较复杂的生命周期
cookie是生命周期相对复杂,这话怎么说。在默认情况下,cookie是随着浏览器的关闭而关闭的(不保存文件)。也就是我们关闭浏览器之后cookie生命周期也就结束了。那么我们需要这种效果怎么办?很简单,我们设置时间周期即可,使用setMaxAge(time),以秒计算。这时你关闭IE浏览器,再打开IE浏览器,cookie不会消失(从文件中读取),内置的会消失(session失效) ,当时间周期到了cookie自然也会失效。
一个问题:
假如用户禁止使用cookie了,session怎么办?
cookie不能使用的话,session可以用吗?自然是不能的(不处理情况下)。原因不用说了吧,session的Id不能保存自然就用不了(要知道浏览器是通过sessionId来实现浏览器和session 一一对应的)。正常情况下,我们向服务器发送的url中后面是默认加上ISESSIONID=id的,禁止使用cookie之后是没有的。我们可以手动加上,可是我们知道id值吗?应该不知道 ,我们怎么办? jsp中为我们提供了二个处理函数,其中一个是encodeUrl(String url);浏览器自动在url后面加上JSESSIONID。
经典代码:String url=response.encodeUrl("xx.jsp"); response.sendRedirect(url);
标签:request 个性 保存文件 也会 getc 用户名 函数 span 小伙伴
原文地址:http://www.cnblogs.com/huang-1995/p/6345600.html