我理解你想要重定向你的用户取决于角色。假设如果用户是管理员,那么他/她应该被重定向到 admin.jsp(例如),如果用户是经理角色并且他/她应该被重定向到经理.jsp。
假设您在 JDBCRealm 中定义了两个角色 admin 和 manager
您可以通过在项目中创建一个 servlet 来做到这一点,例如 LoginServlet.java
所以你必须设置的是:
如您所述,创建您的 login.jsp 和 login-failed.html。
在动态 Web 项目的 WebContent 中的任何文件夹下创建两个 jsp 页面 admin.jsp 和 manager.jsp 说:
WebContent/htmlPages/admin.jsp 放
<h4>Welcome Admin</h4>
text in body tag.
WebContent/htmlPages/manager.jsp put
<h4>Welcome Admin</h4>
text in body tag.
In LoginServlet.jsp in doGet MEthod
put this simple code:
if(request.isUserInRole("admin"))
{
response.sendRedirect("htmlPages/admin.jsp");
}
if(request.isUserInRole("manager")){
response.sendRedirect("htmlPages/manager.jsp");
}
After that you have to set welcome-files as the login servletin web.xml
e.g.
Suppose IN web.xml your servlet entry is
<servlet>
<description></description>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>Fully classified name of LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
Then get url pattern from Servlet Mapping and put it in welcome file list without any slash:
like
<welcome-file-list>
<welcome-file>loginServlet</welcome-file>
</welcome-file-list>
确保没有包含斜线。当我输入代码 loginServlet 时,欢迎文件属性应该没有斜线。
运行此代码。:-) 您将被重定向到适当的 jsp 页面。