`
henghengdh
  • 浏览: 157483 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用过滤器filter设置编码格式 (转)

 
阅读更多
转自:http://blog.csdn.net/xinxin19881112/article/details/4518602


代码如下:

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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class SetCharacterEncodingFilter implements Filter { //要实现Filter接口

//存储编码格式信息
private String encode = null;

public void destroy(){
 
}


public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)
   throws IOException,ServletException{
 
  //转换
  HttpServletRequest request = (HttpServletRequest)req;
  HttpServletResponse response = (HttpServletResponse)resp;
 
  /*
   * 判断在web.xml文件中是否配置了编码格式的信息
   * 如果为空,则设置编码格式为配置文件中的编码格式
   * 否则编码格式设置为GBK
   */
  if(this.encode != null && !this.encode.equals("")){
   request.setCharacterEncoding(this.encode);
   response.setCharacterEncoding(this.encode);
  }else{
   request.setCharacterEncoding("GBK");
   response.setCharacterEncoding("GBK");
  }
 
  /*
   * 使用doFilter方法调用链中的下一个过滤器或目标资源(servlet或JSP页面)。
   * chain.doFilter处理过滤器的其余部分(如果有的话),最终处理请求的servlet或JSP页面。
   */
  chain.doFilter(request, response);
}


public void init(FilterConfig config) throws ServletException{
  //获取在web.xml文件中配置了的编码格式的信息
  this.encode = config.getInitParameter("encode");
}


}



在web.xml文件中的配置信息如下:



<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">


<!-- 过滤器配置信息 -->
<filter>
  <filter-name>SetCharacterEncodingFilter</filter-name>
  <!-- 过滤器设置编码文件 -->
  <filter-class>
   ssh.dlc.chp1.filter.SetCharacterEncodingFilter
  </filter-class>
  <init-param>
      <!--
       init-param元素定义了过滤器的初始化参数
       -->
   <description>给参数和值设置名称和编码类型</description>
   <param-name>encode</param-name>
   <param-value>GBK</param-value>
  </init-param>
</filter>

<filter-mapping>
  <!--
   filter-mapping告诉容器所有与模式向匹配的请求都应该允许通过访问控制过滤器。
   所有以.do结尾的访问都先通过过滤器文件过滤
  -->
  <filter-name>SetCharacterEncodingFilter</filter-name>
  <url-pattern>*.do</url-pattern>
</filter-mapping>

</web-app>

分享到:
评论

相关推荐

    JSP 开发中过滤器filter设置编码格式的实现方法

    JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding(“gb2312”);后,有没有想要一劳永逸...

    字符编码过滤器 字符编码转换 post字符转换

    本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...

    编码过滤器

    在Web开发中,编码过滤器(Encoding Filter)是一种常见的技术,用于处理HTTP请求中的编码问题,确保数据在传输过程中的正确性。标题“编码过滤器”直指这一关键概念,而描述“配置在web.xml中的过滤器,支持过滤GET...

    javaFilter自定义编码过滤器

    JavaFilter自定义编码过滤器知识点 一、Filter接口和 FilterChain接口 在 Java 中, Filter 接口和 FilterChain 接口是 Servlet 规范中的两个重要组件。 Filter 接口用于定义一个过滤器, FilterChain 接口用于将...

    JavaEE Filter全局编码过滤器

    JavaEE Filter全局编码过滤器是Java企业版(JavaEE)中的一个重要组件,它在Web应用程序中扮演着数据处理和预处理的角色。Filter是Java Servlet规范的一部分,允许开发者在请求到达Servlet之前或者响应离开Servlet...

    解决字符编码的过滤器

    #### 四、使用Servlet过滤器解决字符编码问题 为了确保Struts2应用能够正确处理各种字符编码,可以通过配置Servlet过滤器来统一设置字符编码规则。这种方式具有以下优势: 1. **统一性**:通过在Web应用启动时即...

    JavaWeb页面过滤器之编码过滤

    在实际项目中,编码过滤器通常是第一个被调用的过滤器,以确保在整个请求生命周期内都使用正确的字符编码。通过这种方式,我们可以有效地避免由于编码不一致引发的各种乱码问题,提高用户体验。 综上所述,JavaWeb...

    过滤器Filter的全面解析

    总的来说,Java Web中的过滤器Filter是一种强大的工具,它可以帮助开发者在不改变原有业务逻辑的情况下,增加额外的功能和控制,提高了代码的可维护性和灵活性。理解并熟练掌握过滤器的使用,对于任何J2EE开发者来说...

    字符编码过滤器

    在Java Web开发中,字符编码过滤器(Character Encoding Filter)起着至关重要的作用。它确保了请求和响应数据在处理过程中使用一致的字符编码,从而避免乱码问题。本篇文章将详细探讨Java过滤器(Filter)的概念,...

    jsp过滤器(编码)

    为了解决这个问题,`JSP` 提供了过滤器(Filter)机制,尤其是针对编码问题的过滤器,以确保数据在处理和显示时保持正确的格式。 过滤器是Servlet API的一部分,定义在`javax.servlet.Filter`接口中。它们在请求被...

    ssh框架乱码过滤器Filter

    总结,SSH框架下的中文乱码问题主要通过自定义过滤器解决,设置合适的请求和响应的字符编码。同时,对于不同的数据提交方式,如表单和JS,需要采取相应的解决方案。在实际开发中,确保整个数据传输过程中的字符编码...

    java 中如何使用filter过滤器

    本文将详细介绍如何在Java中使用Filter过滤器,以及如何配置相关的配置文件,让你一目了然。 ### 1. Filter接口与生命周期 Filter是Servlet API中的一个接口,位于`javax.servlet`包下。它定义了三个关键方法: -...

    Servlet编码过滤器的实现

    接着,我们通过`filter-mapping`将这个过滤器映射到所有的URL模式(`/*`),这意味着任何请求都将先通过这个编码过滤器。 通过这种方式,我们确保了整个Web应用程序的请求和响应都使用一致的编码方式,避免了乱码...

    【Struts】设置字符编码过滤器,解决乱码问题收藏

    本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...

    如何配置Filter过滤器处理JSP中文乱码

    解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP中文乱码的详细步骤: 1. **配置web.xml文件** 在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一...

    使用过滤器的方法!教你如何使用过滤器

    // 初始化操作,通常在这里设置过滤器的属性 } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 在这里...

    spring-boot 过滤器 filter

    在Spring Boot应用中,过滤器(Filter)是用于处理HTTP请求和响应的重要组件。它们允许我们在请求被实际处理之前或之后进行拦截,从而实现诸如日志记录、安全控制、字符编码转换等多种功能。本篇文章将深入探讨...

    过滤器(filter) 例子源码

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许开发者在请求被处理之前或之后执行一些预定义的任务。本篇文章将基于提供的标题和描述,详细讲解过滤器的概念、工作原理以及如何通过源码实现一个...

Global site tag (gtag.js) - Google Analytics