`

Spring中取当前用户信息

阅读更多

 当前的用户信息这样拿:
 先定义一个局部线程变量里,
 然后在登录后将用户保存到该变量里面,
 这样就可以在你的当前spring容器中可以拿了

 
代码大致如下:

 

 

/**
*用户信息对象
*/

public class AuthUserVO {

 private String username;
 
 private String password;

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }
 
 
 public AuthUserVO(){
  
 }
 
 public AuthUserVO(String username, String password){
  this.username=username;
  this.password=password;
 }
 
}


/**
*对用户信息进行取或设置
*/
public class AuthCurrentUser {
 /**
 * 声明局部线程变量
 */
 private static ThreadLocal<AuthUserVO> currentUser = new ThreadLocal<AuthUserVO>();
 /**
 * 获取当前用户喜讯你对象
 * @return 当前用户喜讯你对象,IUserInfoVO类型
 */
 public static AuthUserVO get() {
 return (AuthUserVO) currentUser.get();
 }

 /**
 * 设置当前用户喜讯你对象
 * @param user 用户值对象
 */
 public static void set(AuthUserVO user) {
 currentUser.set(user);
 }
}

 


在你的登录action里:
AuthCurrentUser.set((AuthUserVO) request.getSession().getAttribute(
SessionScope.SESSION_FLAG_USERINFO));

 

 

在你所需要想拿用户的时候:
AuthUserVO accountdo = (AuthUserVO) AuthCurrentUser.get();

 

 

因为用户登录的线程与你已初始化的spring不在同一个容器里面,所以通过线程变量去传

分享到:
评论

相关推荐

    理财管理(spring boot+thymeleaf)

    该毕业设计使用了当前较为流行的spring boot,spring,spring mvc,mybatis,shiro框架分页处理使用了pagehelper进行...该系统主要解决了理财中的一些问题,包含功能:权限管理,用户信息管理,理财产品管理等内容。

    (2.0版本)自己写的struts2+hibernate+spring实例

    说当前版本因为原来使用find方法是从代理中取.而spring默认的数据持久话只能包含业务层和数据层.不能包含界面层.所以用find方法会导致session失效.故用get方法.现在这个问题已经解决.其实就是把原web.xml中的最后的...

    EL表达式 (详解)

    pageContext取得其他有关用户要求或页面的详细信息。 ${pageContext.request.queryString} 取得请求的参数字符串 ${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串 ${...

    网上体育商城的设计与实现毕业设计答辩PPT.pptx

    模型(Model)相当于人体的骨骼,里面封装了各种拥有私有属性和set/get方法的类,视图(View)相当于人体展示的动作,将数据用控制层提供的方法从模型层中取出来放在视图层中展示出来,控制器(controller) 相当于...

    ssm项目weixin263微信小程序跑腿平台的设计与实现ssm.zip

    该系统旨在为用户提供一个便捷的跑腿服务平台,使得用户能够在微信环境中轻松地发布跑腿需求、选择跑腿人员和跟踪服务进度。 项目的主要功能可能包括: 1. **需求发布**:用户可以发布自己的跑腿需求,包括物品...

    基于SSM+mysql的银行排队叫号系统设计与实现(源码+部署说明+视频演示).zip

    基于SSM+MySQL的银行排队叫号系统是一个用于管理银行排队和叫号过程的系统,主要提供显示管理,用户管理,排队管理,服务业务管理,客户评价管理,等候区管理,管理员管理等功能,具有以下主要特点: 技术栈:该系统...

    基于JAVA的校园商铺平台的设计与实现.docx

    用户信息 基于JAVA的校园商铺平台的设计与实现全文共30页,当前为第2页。基于JAVA的校园商铺平台的设计与实现全文共30页,当前为第2页。 基于JAVA的校园商铺平台的设计与实现全文共30页,当前为第2页。 基于JAVA的...

    java面试宝典

    142、使用JSP如何获得客户浏览器的信息? 36 143、能象调用子程序一样调用JSP吗? 36 144、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? 36 145、与之间的差别? 36 146、JSP的缺点? 36 148、...

    千方百计笔试题大全

    142、使用JSP如何获得客户浏览器的信息? 36 143、能象调用子程序一样调用JSP吗? 36 144、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? 36 145、 file="abc.jsp"%&gt;与 page="abc.jsp"/&gt;之间...

    ParvinHajili:网络和移动II-作业2-基于Servlet的学生个人内阁

    图书馆应提供有关图书清单的信息,其中包括元数据信息(作者,出版日期等)和图书馆中的可用性(如果无法获得有关谁捡起本书的信息)2.3。 按以下名称搜索书籍:名称,类别和/或作者姓名2.4。 能够在图书馆2.5之间...

    Java面试宝典2010版

    4、在JAVA中如何跳出当前的多重嵌套循环? 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 7、char型变量中能...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    -- 用户信息记住我功能的相关配置 --&gt; &lt;!-- 配置存储rememberMe Cookie的domain为 一级域名 --&gt; &lt;property name="maxAge" value="2592000"/&gt;&lt;!-- 30天时间,记住我30天 --&gt; 记住我登录...

    最新Java面试宝典pdf版

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    FitGym:Fit Gym是基于Java和其他网络技术的在线健身俱乐部管理应用程序

    版本0.1 添加: 通过数据库身份验证提高安全性自定义登录页面自定义403和404页面百里香叶片段适用于所有类型用户的自定义页面自定义顶部菜单取决于当前用户角色版本0.04 重建与fitgymuser,fitgymuserrole有关系的...

    Java面试笔试资料大全

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    worldpay-test:测试应用

    这是一个简单的 Spring MVC 应用程序,支持内存中 HSQL DB。 在启动时,有几个用户具有预先初始化的角色,并且 登陆页面上的登录功能,只在结果页面上打印消息,取决于登录是通过还是失败 没有测试 角色: 主持人...

    JAVA面试宝典2010

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    Java面试宝典-经典

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    Java面试宝典2012版

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型...

Global site tag (gtag.js) - Google Analytics