过滤器解决Post请求乱码(2)

一. 在web.xml文件下声明即注册过滤器,解决post请求乱码的问题

调用框架中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>utf-8</param-value>
    </init-param>
    <!--强制请求对象(HttpServletRequest)使用encoding编码的值-->
        <init-param>
        <param-name>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    <!--强制应答对象(HttpServletResponse)使用encoding编码的值-->
        <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <!--
		/*:表示强制所有的请求先通过过滤器处理
	-->
	<filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

二. characterEncodingFilter源码分析

  1. encoding,forceRequestEncoding,forceResponseEncoding是类characterEncodingFilter的三个属性(可查看源代码)
  2. characterEncodingFilter类的爷爷类是Filter接口的实现类。而Filter接口中的doFileter方法是在characterEncodingFilter类的父类OncePerRequestFilter中是实现的。
  3. OncePerRequestFilter在doFileter方法中调用了子类characterEncodingFilter中实现的的doFilterInternal抽象方法。
  4. doFilterInternal方法中说明了一切。

复习:

javaWeb基础中老杨讲的自定义过滤器

1. Filter接口实现类开发步骤:

1)创建一个Java类实现Filter接口

2)重写Filter接口中的doFilter()方法

3)在web.xml文件中将过滤器接口实现类注册到Http服务器

在E盘course文件夹下的JavaProjects文件夹下的在线考试系统中有例子

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值