【问题标题】:Struts2 SessionAware & ServletRequestAwareStruts2 SessionAware & ServletRequestAware
【发布时间】:2012-08-26 12:52:36
【问题描述】:

我是 Java 编程新手,我正在尝试使用 Struts2、JSP 和 jQuery 开发一个 Web 应用程序,并使用 JNDI 实现方法手动 JDBC 连接到 PLSQL。

我试图了解如何在 Struts 2 中实现会话管理。我看到了一些示例,其中操作类实现了 SessionAware 拦截器,如 this 和另一个实现 ServletRequestAware 拦截器的 example

有人可以向我解释使用哪种方法。两者有什么区别,你会使用哪个,为什么?我的要求很简单。我有一个完全基于登录的网络应用程序。因为只有登录页面是公开的,其余的都在用户身份验证下。有 2 个用户角色 - 管理员和一般。根据登录角色,他们要么被定向到仅限管理员的页面 1,2,要么被定向到仅限常规的页面 3,4。如何在 Struts2 中使用会话管理概念来实现这一点?

谢谢!

【问题讨论】:

    标签: java jsp session jakarta-ee struts2


    【解决方案1】:

    SessionAware 为您提供会话属性映射。

    ServletRequestAware 给你一个HttpServletRequest

    有点像他们的名字所暗示的。通过阅读他们的文档了解差异。

    有多种方法可以实现登录/等。在 S2 中,您可以通过在登录过程中将用户对象放入会话中并在注销期间将其删除来扮演自己的角色,并拥有一个拦截器来检查会话中是否存在有效的用户对象。

    您可以使用 Spring Security 并节省一些有关角色等的工作,但老实说,如果您不使用 Spring,编写一些非常简单的注释并让拦截器处理这些几乎同样容易。

    【讨论】:

    • 所以我使用 ServletRequestAware 进行大部分数据库操作,并使用 SessionAware 来维护我的用户日志信息和其他我想在“与 Web 应用程序的用户会话”中维护的内容。 你能给我一个例子,说明如何使用你提到的方法、拦截器和将用户对象添加到会话中来实现登录???
    • @rr87 这是个问题吗?您应该几乎永远需要 ServletRequestAware,它会将您的操作与 servlet 规范联系起来,使几乎所有事情都变得比必要的更烦人。我不知道 HttpServletRequest 与数据库操作有什么关系。
    • 嗯,这是基于此处link的另一个问题的答案的假设@
    • @rr87 里面根本没有关于数据库操作的内容。只是不相关。
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多