`
yutuer
  • 浏览: 9105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Http中Session常见问题

阅读更多
1、session在何时被创建

一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <%@page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历.

由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它.

2、session何时被删除

session在下列情况下被删除a.程序调用HttpSession.invalidate();或b.距离上一次收到客户端发送的session id时间间隔超过了session的超时设置;或c.服务器进程被停止(非持久session)

3、如何做到在浏览器关闭时删除session

严格的讲,做不到这一点.可以做一点努力的办法是在所有的客户端页面里使用javascript代码window.oncolose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除session.但是对于浏览器崩溃或者强行杀死进程这些非常规手段仍然无能为力.

4、有个HttpSessionListener是怎么回事

你可以创建这样的listener去监控session的创建和销毁事件,使得在发生这样的事件时你可以做一些相应的工作.注意是session的创建和销毁动作触发listener,而不是相反.类似的与HttpSession有关的listener还有HttpSessionBindingListener,HttpSessionActivationListener和HttpSessionAttributeListener.

5、存放在session中的对象必须是可序列化的吗

不是必需的.要求对象可序列化只是为了session能够在集群中被复制或者能够持久保存或者在必要时server能够暂时把session交换出内存.在Weblogic Server的session中放置一个不可序列化的对象在控制台上会收到一个警告.

6、如何才能正确的应付客户端禁止cookie的可能性

对所有的URL使用URL重写,包括超链接,form的action,和重定向的URL.

7、开两个浏览器窗口访问应用程序会使用同一个session还是不同的session

对session来说是只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对这个问题的答案有影响.

8、如何防止用户打开两个浏览器窗口操作导致的session混乱

这个问题与防止表单多次提交是类似的,可以通过设置客户端的令牌来解决.就是在服务器每次生成一个不同的id返回给客户端,同时保存在session里,客户端提交表单时必须把这个id也返回服务器,程序首先比较返回的id与保存在session里的值是否一致,如果不一致则说明本次操作已经被提交过了.可以参看《J2EE核心模式》关于表示层模式的部分.需要注意的是对于使用javascript window.open打开的窗口,一般不设置这个id,或者使用单独的id,以防主窗口无法操作,建议不要再window.open打开的窗口里做修改操作,这样就可以不用设置.

9、为什么在Weblogic Server中改变session的值后要重新调用一次session.setValue
做这个动作主要是为了在集群环境中提示Weblogic Server session中的值发生了改变,需要向其他服务器进程复制新的session值.

10、为什么session不见了

排除session正常失效的因素之外,服务器本身的可能性应该是微乎其微的.

分享到:
评论

相关推荐

    在ASP.NET中使用Session常见问题集锦

    在坛子里经常看到一些关于Session的问题,下面做一个总结,希望对大家有所帮助: 问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软件等,尝试关闭防火墙。 问:为什么...

    Session-JavaWeb专题

    本课程系统地讲解了SESSION这个知识点,主要讲解了Session的概念,它是如何产生,如何工作,如何存放和如何消亡的,以及Session在JavaWeb中的体现和操作,在最后用一个小例子来演示了如何通过Servlet来操作Session。...

    session机制详解

    目录: 一、术语session 二、HTTP协议与状态保持 三、理解cookie机制 四、理解session机制 五、理解javax.servlet.http.HttpSession ...六、HttpSession常见问题 七、跨应用程序的session共享 八、总结

    akka-http-session:Web和移动客户端akka-http会话,具有可选的JWT支持

    提供了以及代码示例(使用Java,但易于转换为Scala),该示例回答了有关会话如何工作,如何保护会话以及如何使用akka-http的许多常见问题。 什么是会议? 会话数据通常至少包含已登录用户的id或username 。 必须...

    Python requests模块session代码实例

    当然,最常见的应用是它可以让cookie保持在后续的一串请求中。 下面,通过官方文档中的示例来了解如何使用它。 import requests s = requests.Session() # 第一步:发送一个请求,用于设置请求中的cookies # tips: ...

    Web 常见面试题

    3. http 中重定向和请求转发的区别(8个) 4. Cookie 和 Session
区别 5. 什么是 jsp,什么是 Servlet?jsp 和 Servlet 有什么区别? 6. jsp 有哪些域对象和内置对象及他们的作用 7. 过滤器和监听器是什么,有什么用...

    python程序员面试常见问题汇总 包含:基础知识、爬虫、正则表达式、网络编程、Flask、Django

    python程序员面试常见问题汇总。包含:基础知识、爬虫、正则表达式、网络编程、Flask、Django。 例如: 1、基础篇:python的优缺点、深拷贝和浅拷贝之间的区别是什么、列表和元组之间的区别等; 2、进阶篇:python中...

    PHP中怎样保持SESSION不过期 原理及方案介绍

    PHP中如何保持SESSION以及由此引发的一些思考 最近的一个项目,里面有一个比较大...常见的SESSION有:TCP SESSION、WEB SESSION(HTTP SESSION)、LOGIN SESSION等。根据OSI模型中,会话实现的位置不同,SESSION主要分

    计算机网络常见面试题

    1、简单介绍一下HTTP的长连接和短连接? 2、简述计算机网络中的七层模型? 3、常见的HTTP状态码有哪些? 4、TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?...11、cookie 和session 有什么区别?

    apache tomcat 6集群负载和session复制

    无意间看到tomcat 6集群的内容,就尝试配置了一下,还是遇到很多问题,特此记录。apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。本文主要介绍最为常见的JK。 环境:PC2台:pc1(IP 192.168....

    session一致性架构设计实践

    服务器为每个用户创建一个会话,存储用户的相关...最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。 只要用户不重启浏览器,每次http短连接请求,理论上服务端都能定位到session,保持会话。

    后端开发常见面试题php面试题及答案超详细

    答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录...

    Java常见面试题208道.docx

    78.常见的异常类有哪些? 八、网络 79.http 响应码 301 和 302 代表的是什么?有什么区别? 80.forward 和 redirect 的区别? 81.简述 tcp 和 udp的区别? 82.tcp 为什么要三次握手,两次不行吗?为什么? 83.说一下...

    计算机网络核心知识点总结

    内容概要:内容包括 7 / 5 / 4 层网络模型、 HTTP 报文格式与版本、TCP 三次握手与四次挥手、TCP / UDP 的对比、Cookie 与 Session 的关系与对比、常见的负载均衡算法等面试中最常见的八股文知识点(这些知识点在...

    http协议学习系列

    1.2 在TCP/IP协议栈中的位置 2 1.3 HTTP的请求响应模型 2 1.4 工作流程 3 1.5 使用Wireshark抓TCP、http包 3 1.6 常见头域 5 1.7 HTTP的几个重要概念 7 2. 协议详解篇 10 2.1 HTTP/1.0和HTTP/1.1的比较 10 2.2 HTTP...

    前后端常见的几种鉴权方式(小结)

    最近在重构公司以前产品的前端代码,摈弃了以前的session-cookie鉴权方式,采用token鉴权,忙里偷闲觉得有必要对几种常见的鉴权方式整理一下。 目前我们常用的鉴权有四种: HTTP Basic Authentication session-...

    Jetty中文手册

    这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它包含教程、使用手册、视频、特征描述、参考资料以及常见问题。 Jetty文档 ---------------- 入门...

    php5中文手册20111124

    FAQ — FAQ:常见问题 一般信息 邮件列表 获取 PHP 数据库问题 安装 - 安装常见问题 编译问题 使用 PHP Password Hashing — Safe Password Hashing PHP 和 HTML PHP 和 COM PHP 和其它语言 从 PHP 4 移植到 PHP 5 ...

    php中文手册

    FAQ — FAQ:常见问题 一般信息 邮件列表 获取 PHP 数据库问题 安装 — 安装常见问题 编译问题 使用 PHP PHP 和 HTML PHP 和 COM PHP 和其它语言 从 PHP 4 移植到 PHP 5 杂类问题 附录 PHP 及其相关工程的历史 ...

Global site tag (gtag.js) - Google Analytics