cookie和session笔记

来源:互联网 发布:对工作表示满意的数据 编辑:程序博客网 时间:2024/05/22 11:59

cookie

request.getCookies()//从request中提取所有储存在客服端里面的cookie
response.addCookie(ck)//用response的方法,把新的cookie返回给客服端,使其储存

cookie的属性方法
Cookie cookie=new Cookie(name,value);
cookie.getName(),cookie.getValue()//由得到的cookie获取它的name和value
cookie.getMaxAge()//返回以秒为单位指定的cookie的最大生存时间,-1表示生存到浏览器关闭为止
setMaxAge(int time)//time为正,浏览器关闭以后,这个cookie还能生存time秒
,time为0,会导致cookie被删除,负值时cookie在浏览器关闭时被删除

//path路径:cookie路径下的其他Servlet都可以调用那个cookie

cookie.setPath(path);//设置路径下的Servlet都能使用这个cookie
cookie.setPath(path)//path可以是具体路径,path也可以取request.getContextPath(),或者直接/就表示当前路径
request.getCookies()//从request中提取所有储存在客服端里面的cookie
response.addCookie(ck)//用response的方法,把新的cookie返回给客服端,使其储存

cookie的属性方法
Cookie cookie=new Cookie(name,value);
cookie.getName(),cookie.getValue()//由得到的cookie获取它的name和value
cookie.getMaxAge()//返回以秒为单位指定的cookie的最大生存时间,-1表示生存到浏览器关闭为止
setMaxAge(int time)//time为正,浏览器关闭以后,这个cookie还能生存time秒
,time为0,会导致cookie被删除,负值时cookie在浏览器关闭时被删除

session

Session
Session是一个域对象
同一个会话下,可以共享数据
cookie只能存字符串,session可以存对象
session有个id来区别,id用cookie暂时存储,会话结束cookie消失,session也找不到了
request.getSession()-;//获取session对象,(先查找一个名字为JSESSIONID的cookie,
如果没有这样的cookie就创建一个HttpSession对象,并向客服端写了一个名字为JESSSION=sessionID的
cookie,然后根据这个id在服务器的内存中找那个HttpSession对象,如果对应的HttpSession找不到(被销毁)
则再重新创建一个)

request.getSession(Boolean)-;//该方法还可以传入一个布尔变量,找到和无参的方法功能一样,并且波尔
变量会被赋值true;根据对应的id找不到的话,不会创建新的HttpSession对象,直接返回null,布尔变量被赋值
为false

方法:
1.getAttribute(String name)//用名字获得对应的session对象
2.getAttributeNames()//获取所有的session的名字
3.removeAttribute(String name)//移除session
4.setMaxInactiveInterval(int)//设置session的最大生存时间(单位:秒)(默认30分钟,
session在会话持续30分钟后或者退出会话后销毁)
5.getMaxInactiveInterval()//获取session的生存时间
6.getId()//获取session的id
7.invalidate()//使此对话无效

若用户禁用cookie,则无法使用session,则需要重写URL(全部重写),在后缀加JSESSIONID=111
来记录session的id,方便找到session,此时直接把url对应的字符串放到方法
response.encodeURL(String url)此时,若发送了cookie消息头就不重写,没有就重写

xml中控制session的生存时间



time

原创粉丝点击