⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acegiajaxfilter.java

📁 一个使用ssh+ext的例子。 希望对开发这个应用的人带来好处。仔细研究里面的代码将带来很大的好处。
💻 JAVA
字号:
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.acegisecurity.AuthenticationException;
import org.acegisecurity.ui.AbstractProcessingFilter;
import org.springframework.web.filter.OncePerRequestFilter;

/**
 * AcegiAjax过滤器 防止服务端redirect刷新Client端页面(eg:erro页面)
 * 
 * @author Liang
 * @Date May 8, 2008
 */
public class AcegiAjaxFilter extends OncePerRequestFilter {   
    
    protected void doFilterInternal(HttpServletRequest request,   
                                    HttpServletResponse response,    
                                    FilterChain filterChain) throws ServletException, IOException {   
    	System.out.println("reach 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}");   
            } else {   
            	response.getWriter().write("{errors:[{id:'j_username',msg:'用户名或密码错误'},{id:'j_password',msg:'用户名或密码错误'}]}");
                /*content = "error:" + ((AuthenticationException) request.   
                                    getSession().getAttribute(AbstractProcessingFilter.ACEGI_SECURITY_LAST_EXCEPTION_KEY)).getMessage();*/   
            }   
           // response.getOutputStream().write(content.getBytes("UTF-8"));   
        }   
    }   
  
    
    private boolean isAjaxRequest(HttpServletRequest request) {   
        return request.getParameter("ajax") != null;   
    }
    private boolean isLogoutAction(HttpServletRequest request){
    	return false;
    }
}   

⌨️ 快捷键说明

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