session一过期 就跳到登录页面

package com.hnyl.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

public class ManagerFilter implements Filter {
    Logger logger = Logger.getLogger(ManagerFilter.class);

    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String url = request.getServletPath();
    
        logger.info("------请求URL地址:" + url + "------");
        String[] urlAttr = new String[] { "/users/usersPage.do",
                "/login/systemOut. do",// 请把所有的后缀都改成你当前项目的后缀
                "/login/toLoginPage.do" };
 
        if (!inGroup(urlAttr, url)) {
       
            if (request.getSession().getAttribute("user") == null) {
   
                response.sendRedirect("../login/toLoginPage.do");
                return;
            }
        }
        chain.doFilter(servletRequest, servletResponse);
    }

    private boolean inGroup(String[] so, String tar) {
        for (int a = 0; a < so.length; a++) {
            if (ifEquals(so[a], tar)) {
                return true;
            }
        }
        return false;
    }

    private boolean ifEquals(String ff, String tt) {
        if (ff.endsWith(".do")) {
            return ff.equals(tt);
        } else {
            String temp = tt;
            temp = temp.substring(1, temp.length());
            String packageName = "/";
            if (temp.indexOf("/") >= 0) {
                packageName = temp.substring(0, temp.indexOf("/"));
            }
            return packageName.equals(ff);
        }
    }

    public void destroy() {
    }

}

//web

 <filter>
    <filter-name>managerFilter</filter-name>
    <filter-class>com.hnyl.filter.ManagerFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>managerFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>

 <session-config>
    <session-timeout>30</session-timeout>
  </session-config>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值