CharacterEncodingFilter 详解

CharacterEncodingFilter 详解一、什么是CharacterEncodingFilter官方解释如下是spring内置过滤器的一种,用来指定请求或者响应的编码格式。在web开发中经常被从来使用二、CharacterEncodingFilter的用法在web.xml中的配置<filter><filter-name>characterEncodingFilter</fi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、什么是CharacterEncodingFilter
官方解释如下
在这里插入图片描述
是spring内置过滤器的一种,用来指定请求或者响应的编码格式。在web开发中经常被从来使用

二、CharacterEncodingFilter的用法
在web.xml中的配置

  <filter>
        <filter-name>characterEncodingFilter</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>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

其中encoding用来指定编码格式,forceEncoding表示是否强制response的编码格式也是encoding格式
三、CharacterEncodingFilter 原理
服务器启动的时候就会创建Filter,将init-param中的参数加载,注入到CharacterEncodingFilter 类中,浏览器每次发送请求都会经过这个过滤器,然后调用doFilterInternal

CharacterEncodingFilter 类图
在这里插入图片描述
可以看到CharacterEncodingFilter继承OncePerRequestFilter,OncePerRequestFilter是个抽象类,其中的抽象方法doFilterInternal被CharacterEncodingFilter实现,同时OncePerRequestFilter实现了doFilter方法,调用了doFilterInternal方法。

doFilterInternal方法

@Override
	protected void doFilterInternal(
			HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
			throws ServletException, IOException { 
   

		if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) { 
   
			request.setCharacterEncoding(this.encoding);
			if (this.forceEncoding) { 
   
				response.setCharacterEncoding(this.encoding);
			}
		}
		filterChain.doFilter(request, response);
	}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158259.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 如何安装windows和linux双操作系统?

    如何安装windows和linux双操作系统?如何安装windows和linux双操作系统?一、win压缩卷:1.右键此电脑,选择管理,选择磁盘管理。2.挑选一个磁盘然后右击选择压缩卷,空间大小自己确定。二、下载复刻工具和iso光盘映像文件:1.把它们都下载好,然后点击运行刻录工具。2.所有选项都默认,然后点击next就完事。然后到这个界面。3.选择好映像文件和U盘,开始写入。(注意写入后,U盘所有文件将被覆盖。)4.写入完成。5.将电脑关机。三、开始安装linux系统:1.开机时,持续摁自己电脑机型对应的键来进入BIOS,我的是esc键。2.选择U盘

  • mac如何同时录制系统和麦克风声音或只录制系统声音

    mac如何同时录制系统和麦克风声音或只录制系统声音MAC录屏时的系统声音以及麦克风问题推荐直接appstore下载recordit,然后打开软件根据软件提示安装blackhole插件。之后就可以关掉该软件了,不用升级会员,以后我们录屏可以不再打开该软件了。到录屏的时候先调整好扬声器或耳机的音量大小,因为之后是不能调的。调好后选择recordit多输出设备,然后shift+command+5开始录屏,录屏选项选择recordit聚焦设备,就可以同时录制系统声音和麦克风声音了。选择blackhole16ch则是只录制系统声音。…

  • pycharm怎么初始化设置_pycharm安装之后的设置

    pycharm怎么初始化设置_pycharm安装之后的设置pycharm的初始设置恢复pycharmpycharm的配置信息是保存在用户目录下.PyCharm***.*目录下的,***.*表示当前使用的pycharm的版本号如果要回复pycharm的初始设置,可以按照以下步骤进行 关闭正在运行的pycharm 删除pycharm的配置信息目录 rm-r~/.PyCharm16.3 重新启动pycharm(选择没有配置信息选项 ) 选择许可协议新建/打开一个pychar

  • css里的clear_css取消某个样式

    css里的clear_css取消某个样式clear:both清除两边,没有用的clear:left清除左边,没有用的clear:right清除右边,没用的

  • python语法:如何通过value找key[通俗易懂]

    python语法:如何通过value找key[通俗易懂]python语法:如何通过value找key

  • Kafka基本原理详解(超详细!)

    Kafka基本原理详解(超详细!)目录一、概念理解(1)产生背景(2)Kafka的特性(3)Kafka场景应用(4)Kafka一些重要设计思想二、消息队列通信的模式(1)点对点模式(2)发布订阅模式三、Kafka的架构原理(1)基础架构与名词解释(2)工作流程分析(1)发送数据(2)保存数据(1)Partition结构(2)Message结构(3)存储策略(3)消费数据一、概念理解Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号