jfinal中如何在service中获取session?

我的需求:在登录中将账号放在会话,在service中获取到账号相关信息

看了以下帖子,知道了如何在service中获取会话

https://www.oschina.net/question/257183_243807

只是现在有了新的问题:

我是在登陆中创建的会话,并在登陆中将账号相关信息放在会话中的

HttpSession currSession = req.getSession();

TUserInfo user = new TUserInfo(accounts.get(0));

currSession.setAttribute("user", user);

但帖子里,获取会话是用的拦截器,并SessionKit.put(inv.getController().getSession(true));

用拦截器后,会否存在顺序问题,如何保证一定能从会话中获取到账号信息

评论区

山东小木

2019-05-23 19:34

1、常见系统里用Session存用户信息的 我一般都是只在Session里存当前登录用户ID,然后在Controller里需要调用service的时候,参数传递进去。 根据Session里的UserId 去CACHE拿对象数据。
2、同上需求,使用拦截器和threadlocal 存当前会话用户ID,这样任何地方,只要请求过来,就能从拦截器里获取到当前session里的UserId

老兵

2019-05-24 10:52

谢谢,已经搞定,小木大师和帖子里说的,都是可行的

热门分享

扫码入社