过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
来源:互联网 发布:lol域名注册 编辑:程序博客网 时间:2024/05/29 08:30
1. 编码过滤器(EncodingFilter)
1.编码设置过滤器Code . 其中主要目的是 : 使用过滤器 解决中文编码 问题
package com.Filter;import javax.servlet.*;import java.io.IOException;/** * Created by dhc on 17-5-15. * Description: 设置项目编码 * user: 网络黑寡妇 */public class EncodingFilter implements Filter{ private String encoding; @Override public void init(FilterConfig filterConfig) throws ServletException { //获取web.XML文件中配置的编码格式 encoding = filterConfig.getServletContext().getInitParameter("encoding"); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //设置请求编码格式 servletRequest.setCharacterEncoding(encoding); //设置响应编码格式 servletResponse.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { }}
2.在web.XML 文件中做出相关配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--设置编码过滤器配置文件--> <context-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </context-param> <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.Filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern><!--过滤器对所有文件编码进行过滤,防止出现乱码--> </filter-mapping><!--设置编码过滤器配置文件结束--></web-app>
2. 清除浏览器缓存过滤器(NoCacheFilter)
1.使浏览器不缓存页面的过滤器: 有3个HTTP响应头字段都可以禁止浏览器缓存当前页面,它们在 Servlet 中的示例代码如下:
* -response.setDateHeader(“Expires”,-1);
* -response.setHeader(“Cache-Control”,”no-cache”);
* -response.setHeader(“Pragma”,”no-cache”);
并不是所有的浏览器都能完全支持上面的三个响应头,因此最好是同时使用上面的三个响应头
package com.Filter;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * Created by dhc on 17-5-18. * user: 网络黑寡妇 */public class NoCacheFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; //指定网页在缓存中的过期时间 httpResponse.setDateHeader("Expires", -1); //HTTP消息头,控制网页的缓存 httpResponse.setHeader("Cache-Control", "no-cache"); //禁止浏览器从缓存中调阅页面内容 httpResponse.setHeader("Pragma", "no-cache"); filterChain.doFilter(httpRequest, httpResponse); } @Override public void destroy() { }}
2.在web.XML 文件中做出相关配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--设置不使用缓存的过滤器配置 开始 --> <filter> <filter-name>NoCacheFilter</filter-name> <filter-class>com.Filter.NoCacheFilter</filter-class> </filter> <filter-mapping> <filter-name>NoCacheFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--设置不使用缓存的过滤器配置 结束 --></web-app>
阅读全文
0 0
- 过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
- 全局编码过滤器--encodingFilter
- 全站编码过滤器EncodingFilter
- 使用EncodingFilter过滤器来完成统一编码
- 04-封装BaseServlet和设置全站请求编码过滤器EncodingFilter
- servlet过滤器之EncodingFilter
- 乱码过滤器EncodingFilter
- EncodingFilter 全站编码过滤器 get请求中文编码过滤
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 用过滤器filter设置编码格式
- 编码格式过滤器
- 清除缓存的过滤器Filter
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- 设置编码过滤器
- 过滤器设置编码
- spring设置编码过滤器
- hibernate中实体相关内容总结
- 解决Windows版Git(SourceTree)出现templates not found的问题
- PHP Trait 续2
- 自定义LinearLayout实现RatingBar效果,打造一个评分控件
- 横向菜单滑动选择viewpager+tablayout+fragment
- 过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
- ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5
- JQuery复选框实现全选、单选
- 桥接模式(Bridge)
- Android中 String 和 Uri类型和 Json的转换
- MVP初解
- C++ 函数模板 Function
- Android安全开发之安全使用HTTPS
- springmvc + multipart 实现文件上传