`
awed
  • 浏览: 34711 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

使用Filter设置字符编码及禁止页面缓存

    博客分类:
  • j2ee
阅读更多
java 代码
  1. import java.io.IOException;   
  2.   
  3. import javax.servlet.Filter;   
  4. import javax.servlet.FilterChain;   
  5. import javax.servlet.FilterConfig;   
  6. import javax.servlet.ServletException;   
  7. import javax.servlet.ServletRequest;   
  8. import javax.servlet.ServletResponse;   
  9. import javax.servlet.http.HttpServletResponse;   
  10.   
  11.   
  12. public class EncodingAndCacheflush implements Filter{   
  13.     private FilterConfig config ;   
  14.     public void destroy() {           
  15.     }   
  16.   
  17.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {   
  18.         String encoding = config.getInitParameter("encoding");//从配置文件从读取编码格式   
  19.         request.setCharacterEncoding(encoding);//设置编码   
  20.         ((HttpServletResponse)response).setHeader("Pragma","No-cache");    
  21.         ((HttpServletResponse)response).setHeader("Cache-Control","no-cache");    
  22.         ((HttpServletResponse)response).setHeader("Expires","0");//禁止缓存    
  23.         chain.doFilter(request, response);   
  24.     }   
  25.   
  26.     public void init(FilterConfig config) throws ServletException {     
  27.         this.config = config;   
  28.     }   
  29.   
  30. }   
在web.xml中加入Filter的配置,如下:
xml 代码
  1. <filter>  
  2.         <filter-name>EncodingAndCacheflush</filter-name>  
  3.         <filter-class>EncodingAndCacheflush</filter-class>  
  4.         <init-param>  
  5.             <param-name>encoding</param-name>  
  6.             <param-value>UTF-8</param-value>  
  7.         </init-param>  
  8.     </filter>  
  9.     <filter-mapping>  
  10.         <filter-name>EncodingAndCacheflush</filter-name>  
  11.         <url-pattern>/*</url-pattern>  
  12.     </filter-mapping>  

 

还有几点需要注意的是:

要传递参数的时候最好使用form进行传参,如果使用链接的话当中文字符的时候过滤器转码是不会起作用的,还有就是页面上

form的method也要设置为post,不然过滤器也起不了作用。

然后在页面中设置编码为UTF-8这样就不必第次都进行转码了。
分享到:
评论

相关推荐

    检验用户名、密码、字符编码、页面缓存----Filter的基本使用

    这个Filter可能包含了上述所有功能的代码示例,包括如何获取和验证请求参数、如何设置字符编码、以及如何控制页面缓存。通过阅读和分析这个示例代码,你可以更深入地理解Filter在实际项目中的应用。 总结,Filter是...

    四个有用的缓存,登陆字符编码,资源保护_过虑器

    本篇将详细讲解标题和描述中提到的四个有用的过滤器:防止浏览器缓存的过滤器、用户登录检测过滤器、字符编码过滤器以及资源保护过滤器。 1. **防止浏览器缓存的过滤器** 浏览器默认会缓存静态资源以提高加载速度...

    Filter过滤器的概念和使用

    这段代码展示了如何通过Filter设置字符编码。首先尝试从Filter配置中获取字符集参数,如果没有则使用默认值。接着设置请求和响应的字符集,并将请求传递下去。 #### 2. 控制浏览器缓存 有时候,我们需要控制浏览器...

    使用filter拦截servlet和jsp页面的内容,进行过滤后输出

    - **数据转换**:统一设置字符编码,防止乱码问题。 - **性能优化**:如GZIP压缩,减少网络传输的数据量。 - **日志记录**:记录请求和响应的信息,便于调试和监控。 - **缓存控制**:控制静态资源的缓存策略,...

    Filter过滤器1

    Filter 有多种应用场景,例如禁用页面缓存、字符编码过滤器、身份验证过滤器等。禁用页面缓存的过滤器可以通过设置 response 的头信息来禁用缓存,例如设置 Expires、Cache-Control、Pragma 等头信息。 字符编码...

    修改tomcat的编码为utf-8

    在Web开发中,服务器端的字符编码设置对于确保数据正确处理至关重要。Apache Tomcat作为一款流行的Java应用服务器和Servlet容器,其默认的字符编码可能不总是符合所有项目的需求。特别是对于中文等非ASCII字符的支持...

    java 中如何使用filter过滤器

    - **字符编码转换**:统一处理请求和响应的编码问题。 - **日志记录**:记录请求信息,便于调试和分析。 - **缓存处理**:对静态资源进行缓存,减少服务器压力。 - **GZIP压缩**:压缩HTTP响应,减少网络传输的数据...

    day17过滤器 禁止缓存中文乱码自动登录MD5加密url级别权限控制

    在Java Web开发中,我们需要确保正确地设置字符编码,避免在处理包含中文字符的数据时出现乱码。在Filter中,可以通过设置请求和响应的编码方式来解决,例如使用`request.setCharacterEncoding("UTF-8")`和`response...

    hibernate转换编码配置和权限及java代码

    `request.setCharacterEncoding("GBK")`确保了请求数据的编码方式,而`httpresp.setHeader("Cache-Control","no-cache")`和`httpresp.setHeader("Pragma","no-cache")`则用于禁止浏览器缓存响应内容,保证每次请求都...

    java 过滤器(附代码)

    公有类 ForceNoCacheFilter 实现 Filter 接口,重写 doFilter 方法,设置 Cache-Control、Pragma 和 Expires 三个头信息,以禁止浏览器缓存页面。 二、检测用户是否登陆的过滤器 这个过滤器的作用是检测用户是否已...

    Filter知识点整理文档

    1. **字符编码转换**: 在请求进入Servlet之前,统一设置请求和响应的编码格式,防止乱码问题。 2. **权限控制**: 检查用户是否登录,未登录则重定向到登录页面。 3. **日志记录**: 记录请求信息,便于分析系统性能和...

    J2EE之filter的应用

    1. **字符编码转换**:如上例所示,我们可以使用 Filter 来统一设置请求和响应的编码格式,避免乱码问题。 2. **权限控制**:Filter 可用于实现用户登录检查,只有已登录的用户才能访问某些资源。 3. **日志记录**:...

    servlet 过滤器大全

    为此,开发者通常会使用字符编码过滤器来统一设置请求的字符编码。 **原理介绍:** - **实现类**:`CharacterEncodingFilter`继承自`Filter`接口。 - **作用**:此过滤器主要负责统一设置HTTP请求的字符编码,避免...

    Java Filter相关资料

    - **字符编码转换**:确保请求和响应的字符编码一致,避免乱码问题。 - **性能优化**:如GZIP压缩,减少网络传输的数据量。 - **缓存管理**:根据条件决定是否从缓存中获取数据,提高响应速度。 5. **Filter的...

    java中的filter

    - **字符编码转换**:确保请求和响应的编码一致,避免乱码问题。 - **性能优化**:如GZIP压缩,减少网络传输的数据量。 - **日志记录**:记录用户请求,便于分析和调试。 - **缓存控制**:控制静态资源的缓存...

    Filter

    4. **Filter应用场景**:Filter可以用于日志记录、权限验证、字符编码转换、GZIP压缩、缓存控制等多种场景。 5. **源码分析**:博客可能涉及到对Filter的源码分析,例如分析`javax.servlet.Filter`接口和相关的实现...

    java filter

    例如,下面的示例展示了如何通过`Filter`统一设置请求的字符编码为`gb2312`: ```java public class EncodingFilter implements Filter { private String encoding = null; @Override public void init...

    java中filter的用法

    Filter 可以实现多种功能,如身份验证、日志记录、缓存控制、字符编码转换等。在 Java 中,Filter 通常用于前台向后台传递数据时的过滤操作。 Filter 的生命周期包括三个阶段:init、doFilter 和 destroy。其中,...

Global site tag (gtag.js) - Google Analytics