Struts里面获取session里用户的几种方式,用哪种方式最好
2013-11-09 14:45
169 查看
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的方式获取,第三种方式是很爽的。
我们在做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的方式获取,第三种方式是很爽的。
相关文章推荐
- org.w3c.dom(java dom)解析XML文档
- Java Hour 24 JDBC
- java中使用sax解析xml的解决方法
- SAX文档解析、Java用SAX解析XML
- java中使用SAX解析XML
- 七种位运算符和一种三元运算符
- java运行机制
- 【JAVA XML】Dom4j读写XML简介
- Java操作XML---DOM4J简介
- myeclipse下SVN使用心得
- Spring+Logback 整合的项目
- Top 10 Websites for Advanced Level Java Developers
- Java Hour 23 Networking
- Java中的线程(三)-Java的锁机制
- Java中为面板(JPanel)添加标题
- 详细分析Java中断机制
- Myeclipse项目加入maven支持
- springMVC事务管理
- springMVC事务管理
- springMVC事务管理