69 lines
2.1 KiB
Plaintext
Executable File
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() {
|
|
}
|
|
}
|