// convert seconds to ms. long adddaysM = adddays * 1000; long header = request.getDateHeader("If-Modified-Since"); long now = System.currentTimeMillis(); if (header > 0 && adddaysM > 0) { if (modelLastModifiedDate > header) { // adddays = 0; // reset response.setStatus(HttpServletResponse.SC_OK); returntrue; } if (header + adddaysM > now) { // during the period happend modified response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); return false; } }
// if over expire data, see the Etags; // ETags if ETags no any modified String previousToken = request.getHeader("If-None-Match"); if (previousToken != null && previousToken.equals(Long.toString(modelLastModifiedDate))) { // not modified response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); return false; } // if th model has modified , setup the new modified date response.setHeader("ETag", Long.toString(modelLastModifiedDate)); setRespHeaderCache(adddays, request, response); returntrue;