好的,所以我基本上想要一个会话检查器,它会请求特定的会话名称属性并检查是否存在。如果不存在,则会重定向到登录页面。这听起来很简单但我有重定向问题。
当我删除重定向并在if语句下打印一些文本时,它会打印在页面上。但是当我尝试重定向时,它不会。 代码位于其中一个控制器文件下,该文件包含在页面的开头
<jsp:include page="/radnikSession" />
我写的代码看起来像这样。
String id;
HttpSession session = request.getSession(false);
id = (String)session.getAttribute("sessionRadnikID");
if(id == null) {
//out.println("No session id");
response.sendRedirect("login.jsp");
}
我做错了什么?
答案 0 :(得分:0)
像这样:
public class SecurityFilter implements Filter
{
public SecurityFilter()
{
}
public void init(FilterConfig conf) throws ServletException
{
}
public void destroy()
{
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) {
String id;
HttpSession session = request.getSession(false);
id = (String)session.getAttribute("sessionRadnikID");
if(id == null) {
//out.println("No session id");
response.sendRedirect("login.jsp");
} else {
chain.doFilter(servletRequest, servletResponse);
}
}
}
然后在web.xml中配置它,例如:
<filter>
<filter-name>Security Page Filter</filter-name>
<filter-class>com.mystuff.security.SecurityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Security Page Filter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>