struts2编写自定义拦截器filter

来源:互联网 发布:淘宝卖家体检中心链接 编辑:程序博客网 时间:2024/06/15 21:54
public class LoginedCheckInterceptor extends AbstractInterceptor {/** *  */private static final long serialVersionUID = 1L;/** 拦截请求并进行登录有效性验证 */public String intercept(ActionInvocation arg) throws Exception { //取得请求的URL        String url = ServletActionContext.getRequest().getRequestURL().toString();        HttpServletResponse response=ServletActionContext.getResponse();        HttpServletRequest request = ServletActionContext.getRequest();        response.setHeader("Pragma","No-cache");                  response.setHeader("Cache-Control","no-cache");   //        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        request.setCharacterEncoding("utf-8");        response.setDateHeader("Expires",0);        LoginUser loginUser = null;        //对登录与注销请求直接放行,不予拦截        if (url.indexOf("login.action")!=-1 || url.indexOf("exitSave.action")!=-1){            return arg.invoke();        }        else{            //验证Session是否过期            if(!ServletActionContext.getRequest().isRequestedSessionIdValid()){                //session过期,转向session过期提示页,最终跳转至登录页面                return "tologin";            }            else{            loginUser = (LoginUser)ServletActionContext.getRequest().getSession().getAttribute("user");                //验证是否已经登录                if (loginUser==null){                    //尚未登录,跳转至登录页面                    return "tologin";                }else{                                       return arg.invoke();                                                 }                           }                   }}}

0 0
原创粉丝点击