| 
68
 | 
     1 package fschmidt.util.servlet;
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 import org.eclipse.jetty.servlet.DefaultServlet;
 | 
| 
 | 
     4 import org.slf4j.Logger;
 | 
| 
 | 
     5 import org.slf4j.LoggerFactory;
 | 
| 
 | 
     6 
 | 
| 
 | 
     7 import javax.servlet.ServletException;
 | 
| 
 | 
     8 import javax.servlet.http.HttpServletRequest;
 | 
| 
 | 
     9 import javax.servlet.http.HttpServletResponse;
 | 
| 
 | 
    10 import java.io.IOException;
 | 
| 
 | 
    11 import java.util.Date;
 | 
| 
 | 
    12 
 | 
| 
 | 
    13 
 | 
| 
 | 
    14 public final class JarDefaultServlet extends DefaultServlet {
 | 
| 
 | 
    15 	private static final Logger logger = LoggerFactory.getLogger(JarDefaultServlet.class);
 | 
| 
 | 
    16 
 | 
| 
 | 
    17 	private static final long built;
 | 
| 
 | 
    18 	static {
 | 
| 
 | 
    19 		try {
 | 
| 
 | 
    20 			built = new Date(ClassLoader.getSystemResource("fschmidt/util/servlet/JarDefaultServlet.class").openConnection().getLastModified()).getTime()/1000*1000;
 | 
| 
 | 
    21 		} catch(IOException e) {
 | 
| 
 | 
    22 			logger.error("",e);
 | 
| 
 | 
    23 			throw new RuntimeException(e);
 | 
| 
 | 
    24 		}
 | 
| 
 | 
    25 	}
 | 
| 
 | 
    26 
 | 
| 
 | 
    27 	protected void doGet(HttpServletRequest request,HttpServletResponse response)
 | 
| 
 | 
    28 		throws ServletException, IOException
 | 
| 
 | 
    29 	{
 | 
| 
 | 
    30 		if( built <= request.getDateHeader("If-Modified-Since") ) {
 | 
| 
 | 
    31 			response.sendError(HttpServletResponse.SC_NOT_MODIFIED);
 | 
| 
 | 
    32 			return;
 | 
| 
 | 
    33 		}
 | 
| 
 | 
    34 		super.doGet(request,response);
 | 
| 
 | 
    35 	}
 | 
| 
 | 
    36 }
 |