8、SpringMVC实战:过滤器解决中文乱码

过滤器解决中文乱码

    • 1.使用过滤器解决中文乱码(POST乱码)
  • 2.使用Spring 中提供字符编码过滤器

1.使用过滤器解决中文乱码(POST乱码)

设立过滤器:

package com.filter;

import javax.servlet.*;
import java.io.IOException;

public class EncFilter implements Filter {
   
     

    String enc;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
   
     
        //读取初始化参数
        enc = filterConfig.getInitParameter("e");
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
   
     
        //【1】到达目标资源之前的预处理
        req.setCharacterEncoding(enc);
        //【2】执行目标资源方法或者下一个过滤器
        chain.doFilter(req, resp);
        //【3】离开服务器之前的处理操作
    }

    @Override
    public void destroy() {
   
     
    }
}

web.xml

    <filter>
        <filter-name>enc</filter-name>
        <filter-class>com.filter.EncFilter</filter-class>
        <init-param>
            <param-name>e</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>enc</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>

2.使用Spring 中提供字符编码过滤器

    <filter>
        <filter-name>encod</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>

    </filter>

    <filter-mapping>
        <filter-name>encod</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: