struts2 - 拦截器中的 Struts 2 Session

标签 struts2 struts2-interceptors

我试图通过实现 SessionAware 从我的拦截器中访问 session 对象接口(interface)(我已经实现了 setSession 方法),但我无法以这种方式获取我的 session 对象。

然后我尝试了ActionContext.getContext().getSession()并且我能够获得 session ,但我不知道,但它只是第一次在每个浏览器中为每个用户显示为空,然后在调用另一个操作时填充。

我认为 session 有问题。为什么它只是第一次给我一个空 session ?它只有在第一次给空 session 后才设置一些东西吗?

如果是这种情况,那么每个人都会在他们的第一个请求中显示为访客,然后在他们的第二个请求中显示为用户名,然后继续。

还是我以错误的方式获得 session ?

我看到了在拦截器中获取 session 的代码,但这对我不起作用,因为它找不到常量 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),所以如果用户没有登录,它不会让他进入网站,如果他登录了,至少他的用户名应该在 session 中.不应该吗?

最佳答案

我有一个拦截器,它也将 session 作为 map 抓取。你有没有尝试过这样的事情?这对我有用。

public String intercept( ActionInvocation actionInvocation ) throws Exception {
    Map session = actionInvocation.getInvocationContext().getSession();

关于struts2 - 拦截器中的 Struts 2 Session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040331/

相关文章:

css - 如何使 s :radio ordered list?

google-app-engine - Web 应用程序中的 Paypal 集成

java - 哪些 Web 框架可以在 Google 应用引擎上成功使用? Struts/Spring 怎么样?

java - 在 Struts2 中使用 prepare() 方法在 action 类中执行 CRUD 操作

java - 带有 xml 配置的 Struts2 validator 不起作用

java - Struts 2迭代器标签在jsp中不起作用?

java - Struts 2 加密用户名和密码

java - i18n拦截器在Struts2中的使用

java - 无法使用输入填充 HashMap

java - Struts2中我们需要定制StrutsPrepareAndExecuteFilter吗?