JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
来源:互联网 发布:网络质量监控 编辑:程序博客网 时间:2024/05/29 09:18
以前我们设置servlet的request和response的编码需要在每个servlet都设置,如果Servlet很多,显得很麻烦,现在我们可以用过滤器很简单的实现这个功能。
还有页面缓存,如果我们的网页是静态的,图片和内容基本上很少变化或者不变化的,我们就可以告诉客户端这个页面你缓存多久~以达到节省流量的目的。
设置全站编码:
先写好Filter:CharacterFilter.java:
package cn.hncu.pubs;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class CharacterFilter implements Filter{ private String charset;//获取web.xml配置的编码参数值 @Override public void init(FilterConfig filterConfig) throws ServletException { charset = filterConfig.getInitParameter("charset"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(charset); response.setCharacterEncoding(charset); chain.doFilter(request, response);//放行 } @Override public void destroy() { }}
配置好web.xml文件:
如果你不知道filter应该写到哪个位置,在myEclipse可以通过鼠标点击web-app标签,然后按住F2,会显示出标签的书写位置的。
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <filter> <filter-name>character</filter-name> <filter-class>cn.hncu.pubs.CharacterFilter</filter-class> <init-param> <!-- 配置编码参数与值 --> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>character</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
设置页面缓存
也很简单,我们在过滤器中写几个响应头,再配置好需要缓存的web.xml中的url-pattern路径就好。
package cn.hncu.pubs;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletResponse;public class JspCacheFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse resp = (HttpServletResponse) response; //设置缓存时间 Date date = new Date(); long time = date.getTime()+1000*60*60*24*5;//缓存5天 resp.setHeader("expires", ""+time); resp.setHeader("pragma", ""+time); resp.setHeader("cache-control", ""+time); //设置3个,以兼容不同的浏览器 //用修改过的resp往后台传 chain.doFilter(request, resp); } @Override public void destroy() { }}
设置不缓存:(这个可能会不起作用,因为大部分的浏览器都自带缓存的)
设置这3个的原因是,不同的浏览器,它的参数名不同!为了兼容大部分的浏览器,我们设置了这3个。
resp.setHeader("expires","-1");resp.setHeader("pragma", "no-cache");resp.setHeader("cache-control", "no-cache");
至于web.xml的配置文件,我就不写了,大家按照上面的写就可以了。
转载请附上原文博客链接:
http://blog.csdn.net/qq_26525215
1 1
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- filter过滤器设置编码
- JavaWeb-过滤器Filter学习(五)全站压缩
- javaweb全站编码过滤器
- JavaWeb---过滤器Filter---(二)
- 用过滤器filter设置编码格式
- Filter:JSP系统设置编码过滤器
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 过滤器(Filter)应用之------设置页面缓存、用户的自动登录和敏感词过滤
- 过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
- JAVAEE之--------过滤器设置是否缓存(Filter)
- JavaWeb-过滤器Filter学习(一)Filter知识点
- javaweb 使用过滤器解决全站编码问题
- Filter设置缓存
- 页面的缓存与不缓存设置
- 页面的缓存与不缓存设置
- 移动端样式小技巧
- HDU 1179
- hd 1863 畅通工程(Kruskal)
- 0-13 sudo用户管理
- ora-01031:insufficient privileges解决方法总结 .
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- WdatePicker的使用
- 进程-调度
- 用js方法实现CheckBoxList单选功能
- BCD码与十进制转换
- 如何利用java打开本地exe文件
- Qt提供5个级别的事件处理和过滤
- 0-15 GCC程序编译
- 小Y的数论题