我喜欢为我的apptication实现注册页面。首先,我定义了一个authenticationfilter,它将每个erquest重定向到我的login.xhtml
,当没有设置用户或者requesttet页面不在public
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession ses = req.getSession(false);
// Proceed if user is logged in or its a public page
String requestURI = req.getRequestURI();
if (requestURI.indexOf("/login.xhtml") >= 0
|| (ses != null && ses.getAttribute("username") != null)
|| requestURI.indexOf("/public/") >= 0)
chain.doFilter(request, response);
else {
res.sendRedirect(req.getContextPath() + "/login.xhtml");
}
在我的登录页面上,我有一个指向/ public / signup
的链接<h:link value="Signup" oncklick="/public/signup.xhtml"/>
当我调试时,我发现可以看到AuthenticationFilter中的requestURI
是:http://localhost:8080/appname/login.xhtml
但我期待http://localhost:8080/appname/public/signup.xhtml
我做错了什么?
答案 0 :(得分:1)
&#34;的结果强>&#34; h:link
的属性用于指定目标资源。
更新您的h:link
,如下所示:
<h:link value="Signup" outcome="/public/signup.xhtml"/>