java Servlet会话超时通过filter跳转到登录页

来源: 易习特达网 时间: 2016-08-02 01:49:00

java web应用程序对session会话超时进行处理跳转到登录页。也可以通过过滤器对请求地址做其他处理。filter过滤器通过重写dofilter方法对路径进行分析

从而处理请求。

public MyFilter extends HttpServlet implements Filter{

protected FilterConfig filterConfig = null;

protected String forwardPath = null;

public static boolean timeOut = false;

@Override

public void destroy() {

 this.filterConfig = null;

 

}

@Override

public void doFilter(ServletRequest request, ServletResponse response,

  FilterChain chain) throws IOException, ServletException {

 HttpServletRequest httpReq = (HttpServletRequest) request;

 HttpServletResponse httpRes = (HttpServletResponse) response;

 HttpSession httpSession = httpReq.getSession(false);

 String servletPath = httpReq.getServletPath();

 /**

  * 判断session如果为空,表示会话超时或未登陆,直接跳转到登录页面。

  * 也可以对servlet中的路径做额外处理,比如不允许直接访问某页面,也可以通过filter进行路径判断

  * 跳转到登录页或其他页面。

  *

  */

 if ((httpSession ==null )&& (servletPath.endsWith("/pages/page1.jsp"))) {  

     chain.doFilter(httpReq, httpRes); 

     httpRes.setAttribute("msg", "您还没有登陆或登陆已超时,请重新登陆,然后再刷新本功能!");

     httpRes.sendRedirect(httpReq.getContextPath()+"/redirectLogin.jsp");

     timeOut = true;

     return;  

    } 

}

 

}

本页地址:http://www.easytd.com/chengxudaima/d_16080201914.html

常用工具