事情我明白你想重定向你的用户取决于角色。假设用户是管理员,那么他/她应该被重定向到admin.jsp(例如),如果用户在管理员角色和他/她应该重定向到manager.jsp。
让我们假设你在你的JDBCRealm管理员和管理员定义的两个角色
您可以通过在项目,例如创建一个servlet LoginServlet.java
你必须设置
所以事情做到这一点是:
如您所述,创建您的login.jsp和login-failed.html。
创建两个JSP页面的动态Web项目的WebContent admin.jsp和manager.jsp任何文件夹下 说:
的WebContent/htmlPages/admin.jsp放在身体标记 <h4>Welcome Admin</h4>
文本。
WebContent/htmlPages/manager.jsp put <h4>Welcome Admin</h4>
正文标签中的文字。
在LoginServlet.jsp在doGet方法 把这个简单的代码:
if(request.isUserInRole("admin")) { response.sendRedirect("htmlPages/admin.jsp");
} if(request.isUserInRole("manager")){ response.sendRedirect("htmlPages/manager.jsp");
}
之后,你必须设置欢迎-文件作为登录servletin web.xml中 例如 假设在网络中。XML你的servlet条目
<的servlet > <描述> < /描述> <显示名称> LoginServlet < /显示名称> < servlet的名字> LoginServlet </servlet的名字> < servlet- class > LoginServlet的完整分类名称</servlet-class >
</servlet的> < Servlet映射> < servlet的名称> LoginServlet </servlet的名称> < URL模式>/loginServlet </URL模式> </Servlet映射>
然后从Servlet映射中获取url模式,并将其放入欢迎文件列表中,不加斜杠: lik Ë
<欢迎文件列表> <欢迎文件> loginServlet < /欢迎文件> < /欢迎文件列表>
确保没有斜杠已被列入。欢迎文件属性应该没有斜杠,因为我在代码loginServlet中。
运行此代码:-)您将被重定向到适当的jsp页面。