Struts里面获取session里用户的几种方式,用哪种方式最好

Struts里面获取session的几种方式
     我们在做struts里面的action的时候,有很多时候,都需要从session中获取用户user的信息。那么考虑过,哪一种方式最好,对效率有所提高吗?
     1.获取session里用户方式一:直接通过ActionContext去获取
        ActionContext.getActioContext().getSession().get("user");
      2.获取session里用户方式二:实现SessionAware接口
         public void setSession(Map<String,Object> session){
             this.sessionMap = session;
         }
        sesionMap.get("user");
     3.获取session里用户的方式三:
       自定义一个接口
       public interface UserAware{
           public void setUser(User u);
       }
       (在拦截器中注入User用户)在拦截器中判断哪些action以后要用到user的信息,那么只需要实现UserAware接口就行了,自定义拦截器中代码实现如下:
        Map<String,Object> SessionMap = invocation.getInvocationContext().getSession();
        User user = (User) sessionMap.get("user");
         if(action.instanceof UserAware){
            //注入user对象给action
          ( (UserAware)action).setUser(user);
         }

      以后只要实现了UserAware接口的,我们自定义的自定义的拦截器就直接注入了当前的User的信息。以后action中要用到user的信息,直接用就可以了。

      第三种方式的好处:
      以后我们许多的Action中值要用到User的信息,就不需要在每个Action中通过ActionContext中去获取,也不需要通过第二种方式实现sessionAware的方式获取,第三种方式是很爽的。
     

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值