maia/.svn/pristine/3f/3fb0c3c34c52e145b5ba719a00b...

69 lines
2.1 KiB
Plaintext
Executable File

package com.fp.frontend.filter;
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;
/**
* Clase que se encarga de comprimir el contenido
*
* @author Jorge Vaca
* @version 2.1
*/
public class GZIPFilter implements Filter {
/**
* Metodo que sobrescribe el metodo init de la clase Filter Este metodo no debe hacer nada
*
* @param filterConfig
* @throws ServletException
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
/**
* Metodo que se encarga de filtrar los contenidos
*
* @param request
* @param response
* @param chain
* @throws IOException
* @throws ServletException
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
try {
String aceptEncoding = httpServletRequest.getHeader("accept-encoding");
if ((aceptEncoding != null) && (aceptEncoding.indexOf("gzip") != -1)) {
GZIPResponseWrapper wrappedResponse = new GZIPResponseWrapper(httpServletResponse);
chain.doFilter(request, wrappedResponse);
wrappedResponse.finishResponse();
return;
}
} catch (Exception e) {
return;
}
chain.doFilter(request, response);
}
}
/**
* Metodo que sobrescribe el metodo destroy de la clase Filter Este metodo no debe hacer nada
*/
@Override
public void destroy() {
}
}