Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 何时调用getLastModified?_Java_Jsp_Servlets - Fatal编程技术网

Java 何时调用getLastModified?

Java 何时调用getLastModified?,java,jsp,servlets,Java,Jsp,Servlets,我正在读一本书,通过下面的一个例子了解了HttpServlet.getLastModified。但让我困惑的是:这个方法实际上是什么时候被调用的?它是否总是隐式地被调用,即使我们编写它不是为了创建缓存更新?或者我们必须写它来更新缓存?另一个问题是,如果我得到一个关于文件未被修改的回复,那么我如何获得该信息 另一种情况是,无论我是否在代码中保留getLastModified,我都看不到任何区别。有没有办法得到通知 public class GetLastModified extends HttpS

我正在读一本书,通过下面的一个例子了解了HttpServlet.getLastModified。但让我困惑的是:这个方法实际上是什么时候被调用的?它是否总是隐式地被调用,即使我们编写它不是为了创建缓存更新?或者我们必须写它来更新缓存?另一个问题是,如果我得到一个关于文件未被修改的回复,那么我如何获得该信息

另一种情况是,无论我是否在代码中保留getLastModified,我都看不到任何区别。有没有办法得到通知

public class GetLastModified extends HttpServlet {

 private long modTime;
 private int[] numbers = new int[5];

 public void init() throws ServletException {

      modTime = System.currentTimeMillis() / 1000 * 1000;
      for (int i = 0; i < numbers.length; i++) {
           numbers[i] = randomNum();
      }
 }

 public void doGet(HttpServletRequest request,
         HttpServletResponse response)
         throws ServletException, IOException {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();

      out.println(
             "Based upon extensive research of "
              + "astro-illogical trends, psychic farces, "
              + "and detailed statistical claptrap, "
              + "we have chosen the " + numbers.length
              + " best lottery numbers for you."
              );
      for (int i = 0; i < numbers.length; i++) {
           out.println(numbers[i]);
      }

 }

 @Override
 public long getLastModified(HttpServletRequest request) {
      return (modTime);
 }


 private int randomNum() {
      return ((int) (Math.random() * 100));
 }
}
公共类GetLastModified扩展了HttpServlet{
私人长时间;
私有整数[]个数=新整数[5];
public void init()引发ServletException{
modTime=System.currentTimeMillis()/1000*1000;
for(int i=0;i
当客户端应用程序(如浏览器)向您的servlet发出带有“If Modified Since”请求头字段的请求时,将调用HttpServlet.getLastModified来检查请求的内容是否在给定时间内未被修改。当“not Modified”时,响应将返回304,不包含任何内容。通过将缓存保留在客户端或用于缓存的servlet筛选器中,可以避免通信效率低下。有关详细信息,请参阅RFC2616。