00:00
字符编码问题我们已经解决了,我们说呀,其实就是因为我们的文字,它在传递数据和展示数据的过程当中,字符编码不统一,造成了乱码,那么我们通过特定的方式把乱码变成了正确的中文。可是呀,这种方式不是很好。为什么这么说呢?因为我每一个我们传递的数据都有可能出现乱码,就意味着这些代码我们都要去执行一遍,那如果表单中有十个数据怎么办?那是不是这些代码你要重复写十遍呢?哪怕你封装成了工具类,你是不是也要调用十遍才可以?所以啊,感觉不是很方便,那该怎么办呢?我们说我们spring提供了一个过滤器,能够帮助我们解决这个问题,我们不用每一个数据都进行转换了啊,加过滤器就可以解决这个问题了,所以把它做掉。
01:13
做掉了以后,那我现在我们打开我们web点,因为spring提供了一个过滤器来帮我们解决这个问题,所以我们写上间括号,我们叫field过滤器,还有我们写上叫field mapping一个映射。那么增加我们的field name,还有field。接下来我们的mapping,那么这里呢,我们写上叫name,还有一个我们的映射的规则,只不过我这里写的是。好,那spring提供了什么样的过滤器呢?我们打开找一下,它叫做我们这事先已经有一个了,所以我打开,打开之后把这个过滤器给它写上完整的类名,所以web点叉当中把这个我们的class给它补充完整。
02:15
咱们叫做唱actor。Coding field好,写完之后我们这里就叫Co给它起个名编码,然后我们的下面也叫coding。接下来我们的,那么我们就给它起成叫spring mvc,咱们这么起名就行了,那就意味着呀,只要你的请求被sol拦截到以后,它就会执行我们对应的field,它们两个是关联在一起的。那好,那我现在我们已经把这个类写完了,可是你的字符编码到底是什么呢?我们说了乱码问题就是因为字符编码它不统一,那我们只要让它统一不就行了吗?你的页面传递数据用的是UTF杠八,那我在后台解析的时候,我们也统一采用UTF杠八,不就没有问题了吗?
03:18
Tom KD默认使用的ISO8859杠幺,那么我们改成UTF杠八不也就可以了吗?所以啊,我们看一看我们的过滤器当中,它提供了两个参数,一个是我们的字符编码,一个是我们的配置属性,它是一个布尔类型的,设定为true或者设定为false。那么这个true和voice有什么作用呢?我们可以往下看看它的源码。它的源码当中,他就判断了一下,如果你的including它不等于,那就说明你设定了这个参数,还有就是这个属性的取值为true,那么这样的话呢,它就可以执行下面的逻辑,而下面的逻辑就是我们解决乱码问题的核心啊,我们把请求对象当中的字符编码给它设定为我们设定的字符编码,你设成utf杠八,那么请求对象在解析参数的时候就会采用utf杠八,那就不会出现乱码了。所以啊,这两个属性我们是需要给它设定值的,那我就需要在配置文件当中,我要增加它的初始化参数了,那么间括号我们叫in net per里面我们再来叫参数的名称以及参数的值。
04:45
那么参数的名称就是encoding,它参数的值我们统一UTF杠八就可以了,但是它有两个参数啊,你把这再拷贝一下。拷贝完成以后,把我们的这个属性给他拿过来,拿过来以后放到我们的这个位置,我给他。
05:08
处让他执行,你这么写完以后啊,字符乱码问题他就解决了。可是字符乱码它分两种情况,哪两种呢?一种是我们表单数据,它采用POS的方式提交,这是一种,还有一种是我们的get方式提交,两种不同的方式提交,它的字符乱码的解决是不一样的,我们刚才看到过滤器当中的这一行代码,它只能把请求体当中的字符给它转换utf杠八,但是如果是地址栏请求头当中的。乱码他解决不了,那这个我们该怎么做呢。请求头当中的数据,那么是用get方式提交的,Get方式的乱码问题,我们就要修改服务器的相关配置了。所以我们在这里啊,把tomcat。
06:12
服务器的默认配置文件server点,我们要加参数了,增加属性的,那么我们需要在8080端口所在的标签上面增加一个配置属性,叫uri including。就是我们请求头的字符编码,咱们统一为UTF,杠八,这样的话,我们的get方式,我们的po po方式都可以解。配置文件我们增加了参数之后,那么我们的字符乱码问题就解决了,接下来我们就验证一下。重新启动。我们一块儿来看一看。
07:05
之前我们出现我们的乱码,那么现在后退刷新,刷新以后我写上。然后我再来一个啊in,那么点击登录点点完以后大家看一看我们这里是不是都是正确的中文,说明我们的乱码问题已经解决了,记住盖的方式和方式是两种不同的解决方案,一个是增加过滤器。增加过滤器以后,设定它的字符编码为UTF杠八,这是解决方式的乱码问题。那如果想要解决get方式的乱码问题,我们需要修改服务器当中的配置,增加一个配置属性u includingding。只要把它做出来的话,那么我们的乱码就不会再出现了。
我来说两句