如果注册用户跳转到login.jsp,我希望将他重定向到youAreLoggedIn.jsp。这可以用<navigation-rule>实现吗?我知道如何在PHP中做到这一点,但在JSP中却不知道。当用户访问login.jsp时,它必须检查用户是否登录,这我知道如何检查。但是如何触发这个动作呢?我应该创建一个新的servlet还是别的什么?
谢谢!
发布于 2010-02-23 21:27:59
一种常见的做法是使用Filter。只需实现javax.servlet.Filter,在web.xml中定义它,将其映射到/login.jsp的url-pattern上,然后在doFilter()方法中编写类似以下内容:
if (((HttpServletRequest) request).getSession().getAttribute("user") != null) {
// User is logged in, redirect to desired page.
((HttpServletResponse) response).sendRedirect("youAreLoggedIn.jsp");
} else {
// Do nothing, continue request.
chain.doFilter(request, response);
}就这么简单。当然,它假定已登录的User已按照正常做法放入会话范围。
也就是说,<navigation-rule>是特定于JSF的,但是您在问题中没有说明任何关于JSF的内容,也没有说明标签。你不是把事情搞乱了吗?
https://stackoverflow.com/questions/2318374
复制相似问题