We typically use a simple little filter to add cache-control headers to results. Of course there is no guarantee the browser will respect it (although the spec say it must be obeyed http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9).
In web.xml: <filter> <description>Cache-Control for Dynamic resources</description> <filter-name>NoCacheFilter</filter-name> <filter-class>com.mycompany.SetHeadersFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>max-age=0, must-revalidate</param-value> </init-param> </filter> <filter-mapping> <filter-name>NoCacheFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> public class SetHeadersFilter implements Filter { private FilterConfig _filterConfig; public SetHeadersFilter() { super(); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; for (Enumeration<?> e = _filterConfig.getInitParameterNames(); e.hasMoreElements();) { String header = (String) e.nextElement(); response.setHeader(header, _filterConfig.getInitParameter(header)); } filterChain.doFilter(req, res); } public void init(FilterConfig filterConfig) { this._filterConfig = filterConfig; } public void destroy() { this._filterConfig = null; } } On Tue, Sep 7, 2010 at 11:50 AM, Oscar <oscar.kalde...@gmail.com> wrote: > Hi to all, i have a little requirement in my application. Clients need that, > after logout, When they press the browser Back button, it shows that user > doesn't have permission because he was already logged out. For example, if > i'm inside the application and in that right moment i'm seeing some sensible > info and press the logout button, when they press browser Back button they > can't see that sensible info. > > For me, it looks like a situation where i have to reset the browser cache or > something like that. I googled a lot about that and i find that delete cache > is impossible, but i find some javascript scripts, or use > response.setHeaders but none of that worked for me. > > I'm working with Struts 2.1.8 and i found that i can override the parameter > struts.serve.static.browserCache in struts.xml to enable struts to add the > necessary headers to all static content. But isn't working. I assured that > struts.serve.static = true as says in the documentation: > > ### Used by FilterDispatcher > >> ### This is good for development where one wants changes to the static >> content be >> ### fetch on each request. >> ### NOTE: This will only have effect if struts.serve.static=true >> >> ### If true -> Struts will write out header for static contents such that >> they will >> ### be cached by web browsers (using Date, Cache-Content, >> Pragma, Expires) >> ### headers). >> ### If false -> Struts will write out header for static contents such that >> they are >> >> ### NOT to be cached by web browser (using Cache-Content, Pragma, >> Expires >> ### headers) >> >> >> >> > But it doesn't work. Somebody knows why doesn't work or another way to avoid > cache after i logout from a Struts application (to avoid show cached content > when user press Back button)? > >> >> Thanks in advance. >> >> > > -- > Oscar Calderón > SCJP 6 <http://javahowto.net> > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org