您的位置:首页 > 运维架构 > Tomcat

Tomcat与JavaWeb 1.4 防止页面被客户端缓存、第一章小结

2018-03-20 11:35 363 查看

1.    防止页面被客户端缓存

许多浏览器为了能快速向用户展示所请求的页面,会把来自服务器端的网页存放在客户端的缓存中。如果用户多次请求服务器端的同一个网页,并且在客户端的缓存中已经存在该网页,那么浏览器只需从缓存中获取该网页,而不需再次请求访问远程服务器上的网页。
浏览器端的缓存技术适用于保存服务器端的静态网页,以及不包含敏感数据的网页,在以下情形中,服务器往往不希望网页被客户端缓存。

网页中包含随时会被更新的动态内容。因为如果浏览器向用户展示本地缓存中的网页,展示的可能是过期的网页。
网页中包含敏感数据,如特定用户的银行账号信息,或者电子邮件的内容。因为如果浏览器把网页保存在本地缓存中,有可能被其他未授权的用户访问到该网页。
服务器端是HttpServlet可以通过设置特定的HTTP响应头来禁止客户端缓存网页,以下示范代码中的resp变量引用HttpServletResponse对象:resp.addHeader("Pragma","no-cache");
resp.setHeader("Cache-Control","no-cache");
resp.setHeader("Expires","0");Pragma选项适用于采用HTTP 1.0的浏览器。在HTTP1.1中“Cache-Control”选项用来决定客户端是否可以缓存网页,如果为“no-cache”,那么客户端不会把Servlet生成的网页保存在本地缓存中。HTTP1.0和1.1都支持“Expires”选项,因此所有的浏览器都能识别该选项。“Expires”选项用于设定网页过期的时间,如果为0就代表立刻过期。如果用户重复请求访问该网页,那么浏览器每次应该从服务端获取最新的网页数据。

2.第一章小结

本章介绍了Java Servlet API中的主要接口与类的用法,并且介绍了它们的生命周期。这些接口与类的生命周期都由Servlet容器来控制,容器会在特定的时刻创建或销毁它们的实例。
在编写用于响应HTTP请求的Servlet时,通常涉及以下4个步骤:

扩展HttpServlet抽象类。
覆盖HttpServlet类的部分方法,如doGet()和doPost()方法。
读取HTTP请求信息,例如通过HttpServletRequest对象来读取请求参数,在HttpServletRequest中提供了以下用于检索参数信息的方法:getParameter(String name)  getParameterNames() , getParameterValues()。
生成HTTP响应结果,通过HttpServletResponse对象可以生成响应结果。HttpServletResponse对象有一个getWriter方法,该方法返回一个PrintWriter对象。使用该对象的print()\println()方法可以向客户端发送字符串数据流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: