关于JAVA中的会话管理
来源:互联网 发布:软件验收专家意见 编辑:程序博客网 时间:2024/05/22 15:01
在JAVAWEB 会话管理中 常用的两个技术是cookie技术和session技术,以下是一些常用的方法
一:cookie技术:是一门客户端技术 通过应答头发送给浏览器,通知浏览器设置cookie头,通过new Cookie(String,String)创建Cookie对象,通过response.addCookie();将Cookie设置为头信息,获取时 可通过request.getCookie() 返回的是Cookie类型的数组,Cookie对常用的方法有setPath()、setMaxAge()、setValue()、getName()、getValue()
其中getValue()、setValue()获取和设置Cookie对象的值,setMaxAge()控制Cookie存放的时间,默认是负数,在浏览器关闭时销毁,正数以秒为单位,如果想令某个Cookie立即失效,需要找到name,path,domain都一样的Cookie,将它的MaxAge设为0即可,setPath()控制Cookie的作用范围。
二:session技术:是一门服务器端技术,同时也是四大域对象之一。
生命周期:通过调用request.getSession()时,如果有,直接取得session对象,如果没有,则在内存中创建
销毁Session对象有3种访问:1、超过30分钟时间(可在web.xml中通过session-config标签下的session-timeout设置)未使用Session对象时自动销毁;2、服务器非正常 关闭时也会销毁;3、通过session.invalidate()显示销毁。当服务器正常关闭时,session对象会以文件的形式存放在work目录下,叫做session的钝化,再次打开服务器时,session又回到内存,叫做session的活化。
request.getSession()时服务器会根据Cookie中的JSESSIONID区别不同的用户,由于Cookie在浏览器关闭时会销毁,所以再次打开浏览器,session中的信息也会失效,解决方法是自己写个和此方法一样的Cookie对象,设置MaxAge,实现覆盖,比如:HttpSession session = request.getSession();Cookie c = new Cookie("JSESSIONID",session.getId());c.setPath(request.getContextPath());c.setMaxAge(1800);即可。
但是如果关闭了Cookie的服务,浏览器无法接收到新的Cookie,此方法就会失效,此时应该用URL重写。response.encodeURL()和response.encodeRedirectURL()分别进行一般的地址URL重写,以及重定向URL重写,但是在重写之前,一定要调用request.getSession()方法,先创建Session对象。
- 关于JAVA中的会话管理
- java中的会话管理
- 关于会话的管理
- servlet中的会话管理
- java之会话管理
- java--会话管理(Cookie Session)
- Java EE.Servlet.会话管理
- java Cookie进行会话管理
- java web中的会话技术
- 分布式服务器中的Session(会话)管理
- java web使用Cookie进行会话管理
- java--会话管理(Cookie Session)_2
- java的会话管理:Cookie和Session
- java的会话管理:Cookie和Session
- java的会话管理:Cookie和Session
- 管理会话
- 管理会话
- 会话管理
- PHP学习练手(七)
- WMSYS.WM_CONCAT 函數的用法
- leetcode:19 Remove Nth Node From End of List-每日编程第三十六题
- iOS开发——图形编程OC篇&(一)CALayer介绍与基本使用
- 填坑系列: nodejs后台在支付宝异步通知时获取到的参数为空(使用koa模块)
- 关于JAVA中的会话管理
- 你真的懂“Google搜索”吗?
- 日志系统之基于Zookeeper的分布式协同设计
- 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例
- UITextField监控输入文字变化
- Java_List Set Map_集合框架 泛型
- iOS开发——图形编程OC篇&(二)CALayer自定义图层
- SpringMVC入门
- SIMD&VLIW