我试图通过实现SessionAware
接口(我已经实现了该setSession
方法)从我的拦截器中访问会话对象,但我无法以这种方式获取我的会话对象。
然后我尝试ActionContext.getContext().getSession()
了,我能够获得会话,但我不知道,但它只是第一次在每个浏览器中为每个用户显示为空,然后在调用另一个操作时填充。
我认为会话有问题。为什么它只是第一次给我一个空会话?它只有在第一次给空会话后才设置一些东西吗?
如果是这种情况,那么每个人都会在他们的第一个请求中显示为访客,然后在他们的第二个请求中显示为用户名,然后继续。
还是我以错误的方式获得会议?
我看到了在拦截器中获取会话的代码,但这对我不起作用,因为它找不到常量HTTP_REQUEST
。
final ActionContext context = invocation.getInvocationContext();
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
HttpSession session = request.getSession(true);
Object user = session.getAttribute(Constants.USER_HANDLE);
关于解决任何问题的任何建议?
我忘了提到的事情 - 我的网站是一个安全网站(https),所以如果用户没有登录,它不会让他进入网站,如果他登录了,至少他的用户名应该在会话中. 不应该吗?