Thanks a lot, of course it has helped > -----Mensaje original----- > De: Rob Gregory [SMTP:[EMAIL PROTECTED] > Enviado el: martes, 17 de enero de 2006 19:39 > Para: 'Tomcat Users List' > Asunto: RE: Images caching > > Code as requested, Hope this helps mate:- > > > package com.my.filters; > /** > * <p>Title: CacheFilter</p> > * <p>Description: This filter sets headers for all requests directed via > the > * filter mappings. This allows the browser to be forced > to > use > * the cached version of the file. </p> > * > * Most of the work required by this filter is done via the configuration > parameters > * within the web.xml deployment descriptor as follows:- > * > * <filter> > * <filter-name>BrowserCache</filter-name> > * <filter-class> com.my.filters.CacheFilter</filter-class> > * <init-param> > * <param-name>Cache-Control</param-name> > * <param-value>private,max-age=3600</param-value> > * </init-param> > * <init-param> > * <param-name>Pragma</param-name> > * <param-value>cache</param-value> > * </init-param> > * </filter> > * > * <filter-mapping> > * <filter-name>BrowserCache</filter-name> > * <url-pattern>*.gif</url-pattern> > * </filter-mapping> > * <filter-mapping> > * <filter-name>BrowserCache</filter-name> > * <url-pattern>*.css</url-pattern> > * </filter-mapping> > * <filter-mapping> > * <filter-name>BrowserCache</filter-name> > * <url-pattern>*.js</url-pattern> > * </filter-mapping> > * > * @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.42 > ************************************************************************** > ** > */ > import com.ieseries.core.Constants; > import java.io.IOException; > import java.util.Enumeration; > 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.HttpServletResponse; > import org.apache.commons.logging.Log; > import org.apache.commons.logging.LogFactory; > > /** > * Project Core > */ > public class CacheFilter implements Filter { > > FilterConfig objFilterConfig; > > // Create a log attribute to allow access to log files > private static final Log log = LogFactory.getLog(CacheFilter.class); > > private static final String VERSION_STRING = CacheFilter.class.getName() > + > > '/' + > Constants.VERSION_NUMBER; > > > /** > * init > * @param filterConfig the filter configuration object > */ > public void init(FilterConfig filterConfig) { > this.objFilterConfig = filterConfig; > } > > /** > * doFilter > * @param req the ServletRequest object > * @param res the ServletResponse object > * @param filterChain the FilterChain > * @throws IOException > * @throws ServletException > */ > public void doFilter(ServletRequest req, > ServletResponse res, > FilterChain filterChain) throws IOException, > ServletException { > if (log.isDebugEnabled()) log.debug("Doing Filter Cache"); > HttpServletResponse response = (HttpServletResponse) res; > > // set the provided HTTP response parameters > Enumeration enu = objFilterConfig.getInitParameterNames(); > while ( enu.hasMoreElements() ) { > String headerName = (String) enu.nextElement(); > // response.setHeader(headerName, > objFilterConfig.getInitParameter(headerName)); > // RG : use addHeader not setHeader so multiple headers can be > added... > if (log.isDebugEnabled()) log.debug("Setting Header : " + > objFilterConfig.getInitParameter(headerName)); > response.addHeader(headerName, > objFilterConfig.getInitParameter(headerName)); > } > > // pass the request/response on to the rest of the filters > filterChain.doFilter(req, response); > } > > /** > * toString > * @return string containing the version information > */ > public String toString() { > return VERSION_STRING; > } > > /** > * destroy > */ > public void destroy() { > if (log.isDebugEnabled()) log.debug("Destroy Cache Filter"); > this.objFilterConfig = null; > } > > > } > > > > > > > -----Original Message----- > From: Bello Martinez Sergio [mailto:[EMAIL PROTECTED] > Sent: 17 January 2006 07:12 > To: Tomcat Users List > Subject: RE: Images caching > > Hi Rob Gregory, > I would thank a lot those code examples about setting headers with > filters. > I've read a lot about this problem yesterday and I've discovered that > there > are a > problem with IE6 images caching, so I'm very interested in the workaround > you've > suggested. > > Thanks a lot (thanks to Alex Hyde, too) > > > -----Mensaje original----- > > De: Rob Gregory [SMTP:[EMAIL PROTECTED] > > Enviado el: martes, 17 de enero de 2006 1:12 > > Para: 'Tomcat Users List' > > Asunto: RE: Images caching > > > > Hey Guys, > > > > We had the exact same issue when last tested for performance and even > thou > > the image had not changed the webapp made a request back to the server > to > > check... I resolved this by setting headers on the images when they were > > originally served up by Tomcat (using a servlet filter). I can post code > > examples if needed. > > > > Hope this helps. > > Rob Gregory > > > > -----Original Message----- > > From: ALEX HYDE [mailto:[EMAIL PROTECTED] > > Sent: 16 January 2006 23:38 > > To: Tomcat Users List > > Subject: Re: Images caching > > > > Hey Bello, > > > > I'm fairly new to this but don't mind putting my two > > pence worth in. > > > > I'm not that sure about the client side but I've heard > > mention of something called Squid which can cache > > static content quite well and would sit as a proxy in > > front of Tomcat. > > > > Gluck > > > > --- Bello Martinez Sergio <[EMAIL PROTECTED]> wrote: > > > > > Hi all, > > > I have a web application in Tomcat 5.0 (standalone) > > > that does image swapping > > > for some mouse events. > > > My problem is that IE does a GET request everytime I > > > change an image's src > > > atribute. No matter if I > > > preload all document images with imgX=new Image(); > > > imgX.src = '...', the > > > browser always request the image > > > from the server when I put the mouse over an image. > > > I've tried to change > > > browser cache settings, too. > > > Does anybody know how can I do to avoid this? I've > > > read resin lets you > > > define things like '<cache-mapping > > > url-pattern="*.gif" expires="60D"/>' > > > Is there a way to do this with Tomcat? I would like > > > to avoid using Apache > > > for the moment. > > > Thanks a lot, > > > > > > Sergio > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > > [EMAIL PROTECTED] > > > For additional commands, e-mail: > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > ___________________________________________________________ > > To help you stay safe and secure online, we've developed the all new > > Yahoo! > > Security Centre. http://uk.security.yahoo.com > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]