Spring CharacterEncodingFilter

web项目使用spring时,可以使用Spring提供的字符集过滤filter,非常方便对于有中文的字符设置

<!-- 设置请求编码格式为UTF-8 -->
<filter>
	<filter-name>springEncoding</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
	<init-param>
		<param-name>forceEncoding</param-name>
		<param-value>true</param-value>
	</init-param>
</filter>

需要设置的两个参数为encoding、forceEncoding,分别设置字符集,及是否设置字符集,该filter也非常简单

public class CharacterEncodingFilter extends OncePerRequestFilter
{

    public CharacterEncodingFilter()
    {
        forceEncoding = false;
    }

    public void setEncoding(String encoding)
    {
        this.encoding = encoding;
    }

    public void setForceEncoding(boolean forceEncoding)
    {
        this.forceEncoding = forceEncoding;
    }

    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException
    {
        if(encoding != null && (forceEncoding || request.getCharacterEncoding() == null))
        {
            request.setCharacterEncoding(encoding);
            if(forceEncoding)
                response.setCharacterEncoding(encoding);
        }
        filterChain.doFilter(request, response);
    }

    private String encoding;
    private boolean forceEncoding;
}

主要流程即判断是否需要设置字符集,及设置什么字符集。对于web项目来说非常简单易用

时间: 2024-08-07 16:28:08

Spring CharacterEncodingFilter的相关文章

Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)

spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,CharacterEncodingFilter源代码如下: [java] view plain copy /* * Copyright 2002-2007 the original author or authors. * * Licensed under the Apache License, Version 

详解Spring中的CharacterEncodingFilter

在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodingFilter 1.看清结构: 可以看到其继承GenericFilterBean和OncePerRequestFilter,也就是说,这个过滤器就是针对于每次浏览器请求进行过滤的,然后再其之上添加了父类没有的功能即处理字符编码. 2.官方解释: Servlet 2.3/2.4 Filter that

Spring字符集过滤器CharacterEncodingFilter(转)

Spring中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encoding和forceEncoding)即可: Xml代码 <!-- 配置请求过滤器 ,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name>springUtf8Encoding</filter-name> <filter-class>org.s

spring框架的编码过滤器——CharacterEncodingFilter

<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value&

Spring在web.xml请求中定义编码(org.springframework.web.filter.CharacterEncodingFilter)

<!-- Filter 定义 --> <!-- Character Encoding filter --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <p

Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n

错误如下: 2017-09-19 15:05:24.659 INFO 9986 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.spring[email protected]56528192: startup date [Tue Sep 19 15:05:24 CST 2017]; root of context hierarchy 2017-09-19 15:05:24.858 INFO 9986 --

Integrating Thymeleaf with Spring

一.整体结构图 二.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:

基于Spring+SpringMVC+Mybatis的Web系统搭建

主要的后端架构:Spring+SpringMVC+Mybatis+Shiro+Maven  IDE:IntelliJ IDEA 15.0.2 jdk:1.8.0_66 系统完整源码 https://github.com/Wellat/Factor 系统目录结构 跑起来效果 搭建步骤 1.用Idea创建maven项目 2.配置pom.xml文件,添加依赖 1 <?xml version="1.0" encoding="UTF-8"?> 2 <proj

关于spring mvc的配置文件

1. Web.xml <!--配置页面控制器--> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</par