栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb设置字符编码过滤器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb设置字符编码过滤器

JavaWeb设置字符编码过滤器

文章目录
  • 一、不用框架时设置字符编码过滤器
  • 二、使用SpringMVC框架设置字符编码过滤器
    • 1. 使用xml配置文件
    • 2. 使用配置类


一、不用框架时设置字符编码过滤器

代码如下(示例):

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import java.io.IOException;

@WebFilter("*")
public class CharacterEncodingFilter implements Filter {

    private String encoding = "utf-8";

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
	  String encodingStr = filterConfig.getInitParameter("encoding");
	  if (!encodingStr.isEmpty()) {
		encoding = encodingStr;
	  }
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
	  servletRequest.setCharacterEncoding(encoding);
	  filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }

}

在初始化时先获取字符编码,然后在doFilter()方法里设置字符编码。
filterChain.doFilter(servletRequest, servletResponse);
这一行是在设置完编码后放行的语句。

二、使用SpringMVC框架设置字符编码过滤器 1. 使用xml配置文件

代码如下(示例):


        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceResponseEncoding
            true
        
    

在web.xml中加入这段代码就可以了,在param-value这个标签中可以设计具体的字符编码。

2. 使用配置类
public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Filter[] getServletFilters() {
	  CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
	  characterEncodingFilter.setEncoding("UTF-8");
	  characterEncodingFilter.setForceResponseEncoding(true);
	  HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
	  return new Filter[]{characterEncodingFilter, hiddenHttpMethodFilter};
    }
}

创建一个继承AbstractAnnotationConfigDispatcherServletInitializer 的类,然后加入这段代码就可以了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号