我有一个奇怪的问题。我的servlet值仅在isAuthenticated为true时显示,而不是在为false时显示。如果重要的话,这是使用Shiro。我查看了hte浏览器的控制台,它没有重定向或任何东西,但是我的值仅在下面的if为真时显示在JSP上。
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
if(SecurityUtils.getSubject() != null && SecurityUtils.getSubject().isAuthenticated()) {
servletRequest.setAttribute("loginStatus",
"true");
} else {
servletRequest.setAttribute("loginStatus",
"false");
}
servletRequest.setAttribute("testValue", "Test Value");
servletRequest.getRequestDispatcher("/index.jsp").forward(servletRequest, servletResponse);
这是JSP
<html>
<body>
<p>
This is the index page, authenticated is <b>${loginStatus}</b>
</p>
<p>
The test value is ${testValue}
</p>
<ul>
<li><a href='app-login'>Login Page</a></li>
<li><a href='test'>Test link (protected)</a></li>
<li><a href='logout'>Logout</a></li>
</ul>
</html>
}
有什么想法吗?
答案 0 :(得分:0)
原来index.jsp是该页面的一个糟糕名称。当我的网址是&#39; /&#39;时,Wildfly只是呈现index.jsp页面,而不是让该网址的servlet呈现它。
我将jsp更改为index-view.jsp,它按预期工作。