HttpSession实例什么时候创建的?

四十岁开始写程序 2005-09-07 01:47:04
我用struts+hibernate.
一个过滤器,没有创建session ,(我跟踪了,session 是空的)然后调用了hibernate一个dao.save()操作。
之后,进入我的IndexAction , 这里我HttpSession session = request.getSession(fase) ;
session 不是空的!!!!!!
怎么回事???难道hibernate的save方法创建了HttpSession ? 我想不会吧。
...全文
499 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeq258 2005-09-08
  • 打赏
  • 举报
回复
httpSession 与hibernate的session,

两者就没有关系,
httpsession在一个会话的时候,由服务器自动创建!



----------------
说得通俗点hibernate的session就相当于jdbc 的connection,

是对数据库操作的一个支持。
super_zzw 2005-09-07
  • 打赏
  • 举报
回复
首先HttpSession和Hibernate的session的确没有关系。
Httpsession在你IE访问服务器的第一个请求的时候就被建立,不管你这个请求是get还是post, 然后它就会永久存在,直到你关闭浏览器,session在一定的时间后被销毁。所以不可能出现session==null
,通常我们在应用中都会建立个session管理器而不是直接往session中扔, 简单说来就是把你要放到session中的东西打包一下,然后你就可以通过管理器来操作你的session数据了,从而使数据掌握在你手中(比如退出的时候清空数据)
  • 打赏
  • 举报
回复
我知道这个问题和hibernate,以及过滤器没有关系了。
就不说这两个了。
就说一件事情:

我在Action里HttpSession session = request.getSesion(false) ;
可能出现 session==null 吗?

我觉得不可能。

你们说呢?

usherlight 2005-09-07
  • 打赏
  • 举报
回复
HTTP协议本身并不能支持服务端保存客户端的状态信息。于是,Web Server中引入了session的概念,用来保存客户端的状态信息。
而Hibernate的Session是与数据库连接的通道.
两者的创建与否没有关系
  • 打赏
  • 举报
回复
在执行ActionServlet之前就创建HttpSesion实例了。所以在Action中会发现session已经存在。
者和hibernate,struts没有关系。就是一个Servlet的问题。
大家没有异议吧?又一次自问自答
usherlight 2005-09-07
  • 打赏
  • 举报
回复
HttpSession和Hibernate的Session是两回事.
kingmaxno1 2005-09-07
  • 打赏
  • 举报
回复
没研究过,顶一下吧

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧