logoutajaxfilter.java

来自「一个使用ssh+ext的例子。 希望对开发这个应用的人带来好处。仔细研究里面的」· Java 代码 · 共 50 行

JAVA
50
字号
package com.hotelmaster.home.web.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.filter.OncePerRequestFilter;

public class LogoutAjaxFilter extends OncePerRequestFilter {   
    
    protected void doFilterInternal(HttpServletRequest request,   
                                    HttpServletResponse response,    
                                    FilterChain filterChain) throws ServletException, IOException {   
    	System.out.println("reach logout acegiajaxfilter");
        if (!isAjaxRequest(request)) {   
            filterChain.doFilter(request, response);
            System.out.println("reach acegiajaxfilter not ajax");
            return;   
        }
        
        RedirectResponseWrapper redirectResponseWrapper = new RedirectResponseWrapper(response);   
    
        filterChain.doFilter(request, redirectResponseWrapper);   
        
        if (redirectResponseWrapper.getRedirect() != null) {   
        	
            request.setCharacterEncoding("UTF-8");   
            response.setContentType("text/json;charset=utf-8");   
    
            response.setHeader("Cache-Control", "no-cache");   
            response.setDateHeader("Expires", 0);   
            response.setHeader("Pragma", "no-cache");   

            String redirectURL = redirectResponseWrapper.getRedirect();   
            String content;
            if (redirectURL.indexOf("login_error=1") == -1) {   
            	response.getWriter().write("{success: true}");   
            } 
        }   
    }   
  
    
    private boolean isAjaxRequest(HttpServletRequest request) {   
        return request.getParameter("ajax") != null;   
    }
}  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?