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>
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>
相关文章推荐
- 如何防止浏览器的缓存JSP页面
- 转:Html+Asp+Php+Jsp:4种语言禁止浏览器缓存页面的方法+真正防止html缓存的手技术
- JSP中如何防止页面刷新重复提交
- JSP如何防止用户直接输入url进页面
- 如何清除jsp页面缓存、cookie、session
- jsp页面中的url链接添加随机数参数防止使用缓存
- Jsp页面如何防止中文乱码(非原创)
- 如何清除jsp页面缓存、cookie、session?
- JSP页面如何不被缓存
- 如何清除客户端的页面缓存文件???用JSP怎么实现???
- 强制JSP页面刷新,防止被服务器缓存(可用于静态include强制刷新)
- jsp如何获取url中的参数并且防止中文乱码以及如何先执行servletzai执行jsp页面
- Servlet/JSP如何控制页面缓存于squid中
- jsp如何在“用<jsp:include>包含的页面中“实现跳转
- Eclipse中新建项目后jsp页面报错,如何处理?
- url传参数到jsp页面,jsp页面如何接收?
- 倒计时页面跳转、jsp 中如何使页面停留几秒后再转向其他页面
- 如何保护你的JSP页面
- 清除jsp页面缓存
- jsp页面js 编码防止乱码