我想使用 Struts2 和 JSP 开发一个小型测试多登录应用程序。基本上:
应用程序应该有任何人都可以访问的欢迎页面(即
index.jsp
)。此欢迎页面将有两个登录框:一个用于用户,一个用于管理员。
Web 应用程序应该有两个子应用程序,一个用于用户,一个用于管理员。换句话说,它不是登录用户拥有不同权限的单一应用程序。每个子应用程序都有自己独立的页面集。
Struts2 使用 MVC 模式,我想知道我应该如何使用过滤器模式来组织它。我可以让 /userapp/*
下的所有请求都转到用户应用程序,而 /adminapp/*
下的所有请求都转到管理应用程序。
我的问题是:
这是正确的策略(即最佳实践)吗?如果是,我应该如何在我的
web.xml
中实现它?我应该实现两个过滤器和两个映射(如果是,为什么?)还是应该实现一个过滤器和两个映射?
更新
经过大量阅读,我了解到 Struts2 多登录是一个过度设计且过于繁重的解决方案,无法满足我的需求。我决定实现我自己的 Servlet 3.0 并使用 JQuery + Ajax。
最佳答案
考虑这样一种情况,其中有 2 个不同的用户“管理员”(最高权限)和“客户(与管理员相比权限较低)”。在Struts中,你可以这样实现
1.创建一个类似User
类的业务逻辑,它基本上完成以下任务
a.)Gets the username,password as input.
b.)Checks whether this 'username' exists in database.
c.)If exits, gets the type of user(either Admin or Customer) and checking
its corresponding password.
2.从“Action”类中使用此“User”对象。因此,您将“ActionForm”值(用户名、密码)传递到此业务方法中,验证用户并获取特定的用户类型(存储在 session 中) .
3.在此“用户”发出的后续请求中,检查用户类型并相应地转发。创建一个自定义“操作”类,该类始终验证从用户类型接收到的每个操作的用户类型(和其他验证)。 所有其他“Action”类都应扩展此自定义“Action”类。
这就是我在我的一个 Struts Web 应用程序中实现的方式,其中超过 3 种类型的用户具有不同的权限。我从未见过每种用户类型的单独 url 模式。所以最好显示,
http://www.yoursite.com/Process.action
而不是 http://www.yoursite.com/adminapp/Process.action
关于java - 如何在 Struts2 web 应用程序中为多个登录配置 web.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557083/