session管理4

问题描述

在代码中,只要借助上面这个工具类获取Session实例,我们就可以实现线程范围内的Session共享,从而避免了在线程中频繁的创建和销毁Session实例。不过注意在线程结束时关闭Session。同时值得一提的是,新版本的Hibernate在处理Session的时候已经内置了延迟加载机制,只有在真正发生数据库操作的时候,才会从数据库连接池获取数据库连接,我们不必过于担心Session的共享会导致整个线程生命周期内数据库连接被持续占用。上面的HibernateUtil类可以应用在任何类型的Java程序中。特别的,对于Web程序而言,我们可以借助Servlet2.3规范中新引入的Filter机制,轻松实现线程生命周期内的Session管理(关于Filter的具体描述,请参考Servlet2.3规范)。Filter的生命周期贯穿了其所覆盖的Servlet(JSP也可以看作是一种特殊的Servlet)及其底层对象。Filter在Servlet被调用之前执行,在Servlet调用结束之后结束。因此,在Filter中管理Session对于Web程序而言就显得水到渠成。下面是一个通过Filter进行Session管理的典型案例:publicclassPersistenceFilterimplementsFilter{protectedstaticThreadLocalhibernateHolder=newThreadLocal();publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{hibernateHolder.set(getSession());try{……chain.doFilter(request,response);……}finally{Sessionsess=(Session)hibernateHolder.get();if(sess!=null){hibernateHolder.set(null);try{sess.close();}catch(HibernateExceptionex){thrownewServletException(ex);}}}}……}

时间: 2024-09-20 04:24:19

session管理4的相关文章

shiro和spring集成时session管理器超时时间问题

问题描述 shiro和spring集成时session管理器超时时间问题 这是我的配置文件,我配置了并发人数控制和动态权限过滤,然后session超时时间这里也是配置了的,然后并没有什么鸟用,在登录以后获取超时时间也是正常的,但还是1分钟就过期了. <?xml version="1.0" encoding="UTF-8"?> xmlns:util="http://www.springframework.org/schema/util"

负载平衡环境下的SESSION管理

session|session 创建交互式web 页面时最大的挑战之一是维持用户的状态,一个站点也许想记住你是谁.在n页之前你点击了什么.在这最后一次做了些什么.现在马上要向你显示什么.实现这些功能的途径有许多,如查询字符串.提交表单或cookies,最强大的一种是ASP的Session 对象.  原文出处:http://www.asptoday.com/articles/20000118.htm      当用户第一次到达某站点,他/她被给予一个HTTP cookie格式的SessionID

WebService大讲堂之Axis2(6):跨服务会话(Session)管理

在<WebService大讲堂之Axis2(5):会话(Session)管理>一文中介绍了如何使用Axis2来管理同一 个服务的会话,但对于一个复杂的系统,不可能只有一个WebService服务,例如,至少会有一个管理用户 的WebService(用户登录和注册)以及处理业务的WebService.象这种情况,就必须在多个WebService服 务之间共享会话状态,也称为跨服务会话(Session)管理.实现跨服务会话管理与实现同一个服务的会话 管理的步骤类似,但仍然有一些差别,实现跨服务会话

WCF后续之旅(9):通过WCF的双向通信实现Session管理[Part I]

我们都知道,WCF支持Duplex的消息交换模式,它允许在service的执行过程中实现对client的回调.WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCF Service.今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Session管理. 1.Session 管理提供的具体功能 我们的例子实现了下面一些Session Management相关的功能: Start/End Session:可以调用s

《Servlet和JSP学习指南》一第2章 Session管理 2.1 网址重写

第2章 Session管理 Session管理(或Session追踪)是Web应用程序开发中一个非常重要的主题.这是因为Web语言HTTP是无状态的.在默认情况下,Web服务器不知道一个HTTP请求是来自初次用户,还是来自之前已经访问过的用户. 例如,webmail应用程序要求其用户在查看邮件之前要先登录.但是,一旦用户输入正确的用户名和密码,用户在访问应用程序的其他部分时,就不应该再次提示他们登录.应用程序需要记住哪些用户已经登录成功.换句话说,它必须能够管理用户Session. 本章讲解可以

WCF后续之旅(9): 通过WCF双向通信实现Session管理[下篇]

一.Session Management Service的实现 现在我们来看看Session Management真正的实现,和我以前的例子不同,我不是把所有的实现都写在WCF service上,而是定义了另一个class来实现所有的业务逻辑:SessionManager.我们分析一下具体的实现逻辑. 1: namespace Artech.SessionManagement.Service 2: { 3: public static class SessionManager 4: { 5: p

使用Memcached Session Manager扩展Session管理

Tomcat的session管理 在请求过程中首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中. 然后再从request获取session的时候,如果存在sessionId那么就根据Id从session池中获取session, 如果sessionId不存在或者session失效,那么则新建session并且将session信息放入session池,供下次使用. session replication和session sticky session是

tomcat8 0 ...-tomcat8下redis的session管理

问题描述 tomcat8下redis的session管理 求在tomcat8下,使用redis的详细管理配置与说明,尤其是jar包 解决方案 tomcat 下的session 管理Tomcat Session的管理Tomcat的Session管理 解决方案二: 帮顶一下,懂的人回答 解决方案三: 帮顶一下,懂的人回答

WCF后续之旅(9):通过WCF的双向通信实现Session管理[上篇]

我们都知道,WCF支持Duplex的消息交换模式,它允许在service的执行过程中实现对client的回调.WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCF Service.今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Session管理. 一.Session 管理提供的具体功能 我们的例子实现了下面一些Session Management相关的功能: Start/End Session:可以调用s

Tomcat的Session管理机制

Session和Cookie请求的过程 Http连接本身是无状态的,即前一次发起的连接跟后一次没有任何关系,是属于两次独立的连接请求, 但是互联网访问基本上都是需要有状态的,即服务器需要知道两次连接请求是不是同一个人访问的. JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应. 客户端第一次请求到服务器连接,这个连接是没有附带任何东西的,没有Cookie,没有JSESSIONID. 服务器