验证session过期过滤器

来源:互联网 发布:海岛奇兵22本升级数据 编辑:程序博客网 时间:2024/04/30 01:05

为了防止通过地址栏直接访问后台,写了个过滤器,接口和后台在一起,接口不过滤,只过滤后台。

package com.enway.util;


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 javax.servlet.http.HttpSession;


public class UserFilter implements Filter {


public void destroy() {
// TODO Auto-generated method stub


}


public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 设置请求的字符编码     
        request.setCharacterEncoding("UTF-8");     
        // 设置返回请求的字符编码     
        response.setCharacterEncoding("UTF-8");     
        // 转换ServletRequest为 HttpServletRequest     
        HttpServletRequest req = (HttpServletRequest) request;     
        // 转换ServletResponse为HttpServletRequest     
        HttpServletResponse res = (HttpServletResponse) response;     
        // 获取Session     
        HttpSession session = req.getSession();     
        // 获取Session中存储的对象     
        Object o = session.getAttribute("bean");     
        // 获取当前请求的URI     
        String url = req.getRequestURI();
        System.out.println("url----------------"+url);
        // 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI
        if(url.indexOf("parentscircle/group") < 0
        &&url.indexOf("parentscircle/info") < 0
        &&url.indexOf("parentscircle/user") < 0
        ){
        if (o == null
           && url.indexOf("index") < 0    // 对URL地址中包含此字符串的文件不过滤     
           && url.indexOf("login") < 0    // 对URL地址中包含此字符串的文件不过滤     
           && url.indexOf("static") < 0    // 对URL地址中包含此字符串的文件不过滤     
           && !url.endsWith("index.jsp")     // 对URL地址为此结尾的文件不过滤     
           && !url.endsWith("image.jsp")     // 对URL地址为此结尾的文件不过滤     
           ) {
           //res.sendRedirect(req.getContextPath() + "/admin/index"); 
           res.sendRedirect(req.getContextPath()+"/index.jsp"); 
       } else {
           chain.doFilter(request, response);     
           res.setHeader("Cache-Control","no-store");           
           res.setDateHeader("Expires",0);        
           res.setHeader("Pragma","no-cache");      
           res.flushBuffer();     
       } 
        }else{
        chain.doFilter(request, response);
        }
       


}


public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub


}


}

0 0
原创粉丝点击