/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ package org.squale.welcom.struts.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; /** * @author M327837 Pour changer le mod�le de ce commentaire de type g�n�r�, allez � : * Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires */ public class WGZIPFilter implements Filter { /** * La config */ private FilterConfig config; /** * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, * javax.servlet.FilterChain) */ public void doFilter( final ServletRequest req, final ServletResponse res, final FilterChain chain ) throws IOException, ServletException { if ( req instanceof HttpServletRequest ) { final HttpServletRequest request = (HttpServletRequest) req; final HttpServletResponse response = (HttpServletResponse) res; // si le navigateur accepte la compression, on zip le flux final String ae = request.getHeader( "accept-encoding" ); if ( ( ae != null ) && ( ae.indexOf( "gzip" ) != -1 ) ) { final GZIPResponseWrapper wrappedResponse = new GZIPResponseWrapper( response ); chain.doFilter( req, wrappedResponse ); wrappedResponse.finishResponse(); return; } chain.doFilter( req, res ); } } /** * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */ public void init( final FilterConfig filterConfig ) { config = filterConfig; } /** * @see javax.servlet.Filter#destroy() */ public void destroy() { config = null; } }