您的位置:首页 > Web前端 > JavaScript

Jsp中如何防止页面被缓存

2013-03-25 18:15 239 查看
在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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: