2011-09-26 30 views
3

我想开发一个使用Struts2和JSP的小型测试多登录应用程序。基本上:如何配置web.xml以在Struts2 Web应用程序中进行多次登录?

  1. 应用程序应该有任何人都可以访问的欢迎页面(即index.jsp)。

  2. 此欢迎页面有两个登录框:一个用于用户,一个用于管理员。

  3. Web应用程序应该有两个子应用程序,一个用于用户,一个用于管理员。换句话说,它不是一个登录用户拥有不同权限的应用程序。每个子应用程序都有自己的一组隐藏页面。

Struts2的使用MVC模式,我想知道我应该如何使用过滤模式来组织这一点。我可以将/userapp/*下的所有请求转到用户应用程序,并且所有/adminapp/*下的请求都转到管理应用程序。

我的问题是:

  1. 这是正确的策略(即最佳做法)?如果是,我应该如何在我的web.xml中执行此操作?

  2. 我应该实施两个过滤器和两个映射(如果是的话为什么?)或者我应该实现一个过滤器和两个映射?

UPDATE

做大量的阅读后,我得到理解Struts2的多重登录是什么,我需要一个过度设计和过于沉重的解决方案。我决定实现我自己的Servlet 3.0并使用JQuery + Ajax。

+0

你是什么意思的子应用程序?这是父母的2个网络应用吗? – PraveenMax

+0

@Max_dev这也是我试图找出来的。我是否应该实施两个独立的申请,而不是试图将其置于同一家长之下?我不确定最佳做法是什么...... – JVerstry

+0

@ JVerstry:您应该尝试将您的类层次结构构建为定义良好的结构(这是可扩展的,可重用的等等),而不是编写2个独立的Web应用程序。 ,为单个网络应用程序编写2个独立的网络应用程序是无关紧要的(除非你有两个不同的网站集成,idk)。 – PraveenMax

回答

1

考虑有两种不同用户的管理员(最高权限)和“客户(与管理员相比权限较少)”的情况。在Struts中,你可以从内部“操作” class.So实现这样

词根记忆业务逻辑就像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.使用该“用户”对象,您将'ActionForm'值(用户名,密码)传递给此业务方法,验证用户并获取特定的usertype(存储在会话中)。

3.在此'User'发出的后续请求中,检查usertype并相应地进行转发。创建一个自定义的'Action'类,它总是验证从usertype接收到的每个操作的usertype(和其他验证)。 所有其他'Action'类应该扩展这个自定义'Action'类。

这是我怎么在超过300种不同rights.I的用户从来没有见过一个单独的URL模式为type.So这是更好地显示每个用户的我的Struts的Web应用程序的一个实现, http://www.yoursite.com/Process.action 而不是http://www.yoursite.com/adminapp/Process.action

相关问题