/* * Copyright (c) 1998-2011 Caucho Technology -- all rights reserved * * Caucho Technology permits redistribution, modification and use * of this file in source and binary form ("the Software") under the * Caucho Developer Source License ("the License"). The following * conditions must be met: * * 1. Each copy or derived work of the Software must preserve the copyright * notice and this notice unmodified. * * 2. Redistributions of the Software in source or binary form must include * an unmodified copy of the License, normally in a plain ASCII text * * 3. The names "Resin" or "Caucho" are trademarks of Caucho Technology and * may not be used to endorse products derived from this software. * "Resin" or "Caucho" may not appear in the names of products derived * from this software. * * This Software is provided "AS IS," without a warranty of any kind. * ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES, INCLUDING ANY * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. * * CAUCHO TECHNOLOGY AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES * SUFFERED BY LICENSEE OR ANY THIRD PARTY AS A RESULT OF USING OR * DISTRIBUTING SOFTWARE. IN NO EVENT WILL CAUCHO OR ITS LICENSORS BE LIABLE * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR * INABILITY TO USE SOFTWARE, EVEN IF HE HAS BEEN ADVISED OF THE POSSIBILITY * OF SUCH DAMAGES. * * @author Sam */ package com.caucho.doc.javadoc; import com.caucho.log.Log; import com.caucho.util.L10N; import java.util.logging.Logger; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.http.HttpServletRequest; /** * Utilities common to all jsp pages. */ public class JspUtil { static protected final Logger log = Log.open(JspUtil.class); static final L10N L = new L10N(JspUtil.class); private HttpServletRequest _request; private HttpServletResponse _response; private Store _store; public JspUtil() { } public void setRequest(HttpServletRequest request) { _request = request; } public void setResponse(HttpServletResponse response) { _response = response; } /** * Get the Store object. */ public Store getStore() throws JspException { if (_store == null) { try { _store = Store.getInstance(); } catch (Exception ex) { throw new JspException(ex); } } return _store; } /** * Send appropriate HTTP cache headers based on the value of * http-cache-period for the Store. */ public void sendHttpCacheHeaders() throws JspException { Store store = getStore(); long period = getStore().getHttpCachePeriod(); if (period < 0) { // disable caching _response.setHeader("Cache-Control","no-cache,post-check=0,pre-check=0,no-store"); _response.setHeader("Pragma","no-cache"); _response.setHeader("Expires","Thu,01Dec199416:00:00GMT"); } else { long now = System.currentTimeMillis(); _response.setDateHeader("Expires", now + period); } } }