如何在web.xml中为特定角色定义要加载的默认页面?

时间:2014-06-10 08:32:59

标签: jsp deployment web.xml descriptor

我的问题是,当我在登录页面上以特定角色(例如管理员)身份登录我的Web应用程序时,如何在部署描述符中定义成功登录后该角色将被重定向到哪个文件。

我的web.xml代码:

<display-name>Fitnes</display-name>
<welcome-file-list>
    <welcome-file>/Javno/index.jsp</welcome-file>
</welcome-file-list>

<security-constraint>
    <display-name>SecurityConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>WRCollection1</web-resource-name>
        <url-pattern>/Zasebno/Trener/*</url-pattern>
        <url-pattern>/images/*</url-pattern>
        <url-pattern>/css/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>trener</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>ApplicationRealm</realm-name>
    <form-login-config>
        <form-login-page>/Javno/Prijava.jsp</form-login-page>
        <form-error-page>/Javno/PrijavaError.jsp</form-error-page>
    </form-login-config>
</login-config>

<security-role>
    <role-name>trener</role-name>
</security-role>

登录后,并非所有角色都会重定向到index.jsp,而是重定向到不同的文件。 假设当我以“trener”身份登录时,我希望被重定向到“Trener.jsp”..

例如:

<web-resource-collection>
        <web-resource-name>WRCollection1</web-resource-name>
        <url-pattern>/Zasebno/Trener/*</url-pattern>
        <url-pattern>/images/*</url-pattern>
        <url-pattern>/css/*</url-pattern>
        <welcome-file>/Zasebno/Trener/Trener.jsp</welcome-file>
    </web-resource-collection>

2 个答案:

答案 0 :(得分:2)

你不能。 Servlet规范不支持您描述的功能。您必须自己编码,例如一个欢迎页面,根据角色转发到正确的页面。

答案 1 :(得分:1)

我建议您阅读有关过滤器的文章。 java servlet编程中的这些过滤器用于以下目的:

  • 在访问后端之前拦截来自客户端的请求
  • 并操纵从服务器到客户端的响应。

http://www.oracle.com/technetwork/java/filters-137243.html

http://tutorials.jenkov.com/java-servlets/servlet-filters.html