Jsp中如何防止页面被缓存

本文介绍如何在B/S结构的程序中使用过滤器禁止页面缓存,以保护版权不受侵犯。通过设置HTTP响应头,可以实现在整个网站范围内禁止页面缓存。

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

在b/s结构的程序中,有时我们希望页面的内容不要缓存到客户端。例如目前流行的视频网站,如果视频被缓存到客户端的话,版权就得不到保护了。要实现这一功能,可以用filter来禁止页面缓存,这样就不用再在每个页面里去加那几行代码了。

package beanservlettest; 

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import java.util.*; 

public class servfilter extends HttpServlet implements Filter { 
 private FilterConfig filterConfig; 
 //Handle the passed-in FilterConfig 
 public void init(FilterConfig filterConfig) { 
  this.filterConfig = filterConfig; 
 } 
 //Process the request/response pair 
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { 
  try { 
     request.setCharacterEncoding("GB2312");//设置编码 
     ((HttpServletResponse)response).setHeader("Pragma","No-cache"); 
     ((HttpServletResponse)response).setHeader("Cache-Control","no-cache"); 
     ((HttpServletResponse)response).setHeader("Expires","0");//禁止缓存 
   //自己添加的代码就这上面四行,其它的都是Jbuilder自动生成的:) 
   filterChain.doFilter(request, response); 
  } 
  catch(ServletException sx) { 
   filterConfig.getServletContext().log(sx.getMessage()); 
  } 
  catch(IOException iox) { 
   filterConfig.getServletContext().log(iox.getMessage()); 
  } 
 } 
 //Clean up resources 
 public void destroy() { 
 } 


下面是在web.xml里的配置: 
(我的是Jbuilder自动生成的) 
 <filter> 
  <filter-name>servfilter</filter-name> 
  <filter-class>beanservlettest.servfilter</filter-class> 
 </filter> 
 <filter-mapping> 
  <filter-name>servfilter</filter-name> 
  <url-pattern>/*</url-pattern>   ///这里表示对整个网站都有效 
 </filter-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值