Java - 检查会话和重定向是否不存在

时间:2016-09-21 17:32:32

标签: java session

好的,所以我基本上想要一个会话检查器,它会请求特定的会话名称属性并检查是否存在。如果不存在,则会重定向到登录页面。这听起来很简单但我有重定向问题。

当我删除重定向并在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");
}

我做错了什么?

1 个答案:

答案 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>