您的位置:首页 > 编程语言 > Java开发

struts2的拦截器AbstractInterceptor

2015-06-19 11:43 615 查看

public class AuthorizationInterceptor extends AbstractInterceptor {

@Override
    public String intercept(ActionInvocation ai) throws Exception {
        Map<?, ?> session = ai.getInvocationContext().getSession();
        UsrinfVO actor = (UsrinfVO) session.get(Constants.LGNUSR);
            if (actor == null) {
                actor = SpringUtil.getLgnUsr();
            }
            Action action = (Action) ai.getAction();
            if (action instanceof UsrAction) {
                return ai.invoke();
            }
                HttpServletRequest request = ServletActionContext.getRequest();
                // AJAX request session time out handle
                String type = request.getHeader("X-Requested-With");
                if ( type != null && type.equalsIgnoreCase("XMLHttpRequest")) {
                    if(!validateLoginStatus(actor)){
                        HttpServletResponse response = ServletActionContext.getResponse();
                        response.setContentType("text/html;charset=utf-8");
                        PrintWriter pw = response.getWriter();
                        //request.setAttribute("message", "timeout");
                        Log.info("Ajax 超时");
                        pw.write("timeout");
                        return null;
                    }
                }
                if (!validateLoginStatus(actor)) {
                    Log.info("超时退出");
                    return "goLoginAppPage";
                }
   
                return ai.invoke();
            }
    }

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: