关闭浏览器,和浏览器禁用cookie时Session处理的方法
来源:互联网 发布:最好的远程桌面软件 编辑:程序博客网 时间:2024/06/06 02:11
这是看老方的视频体会。一直以来看书以为用户访问一个网站,服务器就会自动帮你创建Session。现在才知道不是的。
Session什么时候生?
并不是你去访问网站时,而是遇到了HttpSeesion session=request.getSession()这段代码。(没有就给你创建一个)
什么时候死?
并不是你关闭浏览器或者去访问其他的网站的时候Session就死了,而是30分钟没有人用就死了。
(当然这时间可以在在WEB.XML里配置)
<session-config>
<session-timeout>(你想要的时间,分钟为单位)</session-timeout>
</session-config>
现在粗略讲下服务器是如何实现一个session为一个用户浏览器服务的?
浏览器A访问servlet1(HttpSeesion session1=request.getSession()),服务器为其创建一个SeesionID,Servlet 容器又将 Session ID 作为 Cookie 保存在客户的浏览器中。当浏览器A访问servlet2时,客户端就把cookie的里的Session ID带过来,服务器也把之前创建的sessionID带过来,两者进行匹配。
现在问题是:
1,如果用户万一关闭了浏览器,session怎么办呢?
可以设置cookie的最大生命周期,(下面是设置30分钟)
……
HttpSeesion session=request.getSession();
String Sessionid=session.getId();
Cookie cookie=new Cookie("JSEESIONID",sessionid);
Cookie.setPath("/(网站的路径)");
cookie.setMaxAge(30*60);
response.addCookie(cookie);
……
2,如果用户浏览器禁用了cookie,SessionID怎么带过去?
先说说HttpSeesion session=request.getSession();这段代码。
他获取SessionID时,先看看cookie有木有带SessionID过来,再看看超链接有木有带SessionID过来。如果两者都没有,它就创建一个Seesion。带过来了就获取服务器之前创建的SessionID。那么如果浏览器禁用了cookie了,想Seesion还可以用,就要重写URL
HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url),此方法能将用户的SessionID追加到网址的末尾,
<a href=“<%=response.encodeURL(“a.jsp“)%>“>
如果是重定向,就response.sendRedirect(response.encodeRedirectURL("a.jsp"));
这样即使浏览器禁用了cookie,session还是可以用 了。
- 关闭浏览器,和浏览器禁用cookie时Session处理的方法
- 浏览器禁用Cookie后的session处理
- 禁用Cookie的浏览器使用session
- 在禁用Cookie的浏览器中使用Session
- 浏览器端禁用Cookie后,无法获取Session的问题
- 在禁用Cookie的浏览器中使用Session
- 当浏览器的cookie被禁用了,怎么使用session
- 【Session】session把id号存在cookie中、session的URL重写把id加载URL上、购物车(关闭浏览器、禁用cookie)
- 浏览器禁用cookie后,怎么使用session
- 实现关闭浏览器时清除session的方法
- cookie+session,会话时间设定。浏览器关闭。
- session依赖cookie,如果浏览器禁用了cookie呢?
- session依赖cookie,如果浏览器禁用了cookie呢?
- cookie 和 session对浏览器
- 【Java.Web】Session —— 针对浏览器不支持Cookie的情形,Session禁用Cookies
- 关闭浏览器后的session
- PHP 浏览器禁用cookie,解决session变量不能传值
- 浏览器禁用cookie后,怎么使用session,求解决方案
- 音视频互动开发平台的介绍
- openssl在高性能网络框架中的使用(自定义BIO)
- WIN7通过注册表移动我的文档等系统文件夹默认位置
- USB相关结构体之struct usb_device
- .js文件打开出错问题解决
- 关闭浏览器,和浏览器禁用cookie时Session处理的方法
- ucos源码分析------OSMemCreate()
- mysql用sql语句复制表
- Java学习笔记(持续更新)
- SmartUpload上传组件实现文件的上传和下载功能
- ant+svn+tomcat实现自动构建
- 命名空间
- Segment
- 数据结构 学习笔记之:结构体及其所定义变量的内存分配的问题