首页 > 代码库 > 笔试题

笔试题

1.Servlet怎样控制页面在客户端的缓存策略

设置type为post(没有缓存),get(有缓存)

 使用GET,form中的数据将编码到url中,而使用POST的form中的数据则在http协议的header中传输。在使用上,当且仅当请求幂等(字面意思是请求任意次返回同样的结果,本质是请求本身不会改变服务器数据和状态)时使用GET,当请求会改变服务器数据或状态时(更新数据,上传文件),应该使用POST。
区别使用GET,POST意义何在?
       重复访问使用GET方法请求的页面,浏览器会使用缓存处理后续请求。使用POST方法的form提交时,浏览器基于POST将产生永久改变的假设,将让用户进行提交确认。当编成人员正确的使用GET,POST后,浏览器会给出很好的缓存配合,时响应速度更快。

//本页面允许在浏览器端或缓存服务器中缓存,时限为10秒。  
java.util.Date date = new java.util.Date();  
response.setDateHeader("Last-Modified",date.getTime());  
response.setDateHeader("Expires",date.getTime()+10000);  

response.setHeader("Cache-Control", "public");  
response.setHeader("Pragma", "Pragma");
Java代码
//不允许浏览器端或缓存服务器缓存当前页面信息。  
response.setHeader( "Pragma", "no-cache" );  
response.setDateHeader("Expires", 0);  

response.addHeader( "Cache-Control", "no-cache" );  
response.addHeader( "Cache-Control", "no-store" );  
response.addHeader( "Cache-Control", "must-revalidate" );

2.sleep和wait的区别有
  1,这两个方法来自不同的类分别是Thread和Object
  2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
  3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
    任何地方使用
   synchronized(x){
      x.notify()
     //或者wait()
   }
   4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

 

笔试题