在struts中获得Session的几种方法

在Action中获得Session的方法,

(1)   由Action容器来创建  Map<String,Object> session = ActionContext.getContext().getSession();

这是设置属性的值为:session.put("属性名", 属性名);  这种方法还可以创建request和application对象


(2)  实现ServletRequestAware时  private HttpSession session;

this.session=this.request.getSession();通过这个来设置Session的值,当设置属性时session.setAttribute("属性名",属性名);


以上两种方法没有本质的区别区别,getSession()这个方法只不过为get("session")提供了一个更方便的获取途径而已。


(3)Configuration取配置文件以及取得Session的两种方法的区别:

在得到SessionFactory的时候要先取得配置文件:Hibernate.cfg.xml文件 这时有Configuration类得到的:

          new AnnotationConfiguration().configure().buildSessionFactory();

configure()方法自动会在classpath目录下找HIbernate.cfg.xml文件 ,当文件是别的名的时候就搜不到了这时要:

         new AnnotationConfiguration().configure("hibernate.xml").buildSessionFactory();

区别:
   openSession():永远打开新的session 需要close()
   getCurrentSession(): 从上下文找在session没有提交前(session.getTransaction().commit()),打开的都是旧的session 

   用途: 界定事务边界 事务提交自动close(),需要配置上下文;<property name="current_session_context_class">thread</property>




  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值