caching - how to disable web page cache throughout the servlets -


to no-cache web page, in java controller servlet, did somthing in method:

public modelandview home(httpservletrequest request, httpservletresponse response) throws exception {     modelandview mav = new modelandview(viewconstants.mv_main_home);     mav.addobject("testing", "test string");     mav.addobject(request);     response.setheader("cache-control", "no-cache, no-store");     response.setheader("pragma", "no-cache");     response.setdateheader("expires", 0);     return mav; } 

but works particular response object. have many similar methods in servlet. , have many servlets too.

if want disable cache throughout application, should do? (i not want add above code every single response object).

why not via filter?

a filter is object can transform header , content (or both) of request or response. 

...

the main tasks filter can perform follows:

...

  • modify response headers , data. providing customized version of response.

just register filter (class implementing filter interface) , modify response within dofilter method.


edit: e.g.

@webfilter("/*") public class nocachefilter implements javax.servlet.filter {      @override     public void init(final filterconfig filterconfig) throws servletexception {     }      @override     public void dofilter(final servletrequest servletrequest, final servletresponse servletresponse, final filterchain filterchain) throws ioexception, servletexception {          httpservletrequest request = (httpservletrequest)servletrequest;         httpservletresponse response = (httpservletresponse) servletresponse;          response.setheader("cache-control", "no-cache, no-store");         response.setheader("pragma", "no-cache");         response.setdateheader("expires", 0);          filterchain.dofilter(request, response);     }      @override     public void destroy() {     } } 

note @webfilter annotation require servlet 3.0, otherwise can register via web.xml. path of "/*", apply path of application, narrowed in scope.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -