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

本文介绍了如何防止Tomcat服务器的页面被客户端缓存,以确保动态内容和敏感信息的安全。通过设置HttpServletResponse的响应头,包括Pragma、Cache-Control和Expires,可以禁止或限制客户端缓存网页。此外,总结了第一章关于Java Servlet API的主要内容,包括Servlet的生命周期和响应HTTP请求的四个关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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个步骤:

  1. 扩展HttpServlet抽象类。
  2. 覆盖HttpServlet类的部分方法,如doGet()和doPost()方法。
  3. 读取HTTP请求信息,例如通过HttpServletRequest对象来读取请求参数,在HttpServletRequest中提供了以下用于检索参数信息的方法:getParameter(String name)  getParameterNames() , getParameterValues()。
  4. 生成HTTP响应结果,通过HttpServletResponse对象可以生成响应结果。HttpServletResponse对象有一个getWriter方法,该方法返回一个PrintWriter对象。使用该对象的print()\println()方法可以向客户端发送字符串数据流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值