00:01
啊,我们接着来往后说,呃,那接下来呢,我们其实主要要做一件事啊,就是呢,把我们呃这个地方的一个验证呢,啊给他改一改,就是你这写死了肯定是不合适的是吧,你这必须要怎么去跟我的这个数据库做一个比对啊,这是我们接下来要做的一个比较重要的一件事啊呃,做这个之前呢,啊,我看这个有些同学已经等不及了啊,我就先把这个问题给大家去说一下吧,呃,刚才我在写的时候呢,我还特意的给大家去想应一个英文啊,我没敢写中文是吧,因为我知道他有个乱码的问题啊,那么现在的话呢,我们就来给大家去把这个问题解决一下啊,比如说哎,我那我就不再写这个了,OK斯class,那我就加上一个什么登录成功是吧,我怕有人看不懂英文是吧,我再给你加上一个登录是吧?啊,这用户体验好吧?啊,外国人也能看懂,中国人也能看得懂是吧?OK,那把这个加上以后呢,你改了代码了,那么你也要重新附述一下啊,还得有人访问的是吧。
01:02
OK,部署完以后呢,来我们看这个位置,回去来刷新等命,123456走,这是什么呀?登录成功你们认识吗?不认识啊,我认识是吧,这就是登录成功,因为什么?因为我刚刚写了四个字登录成功吗?对吧?那为什么是乱码的呢?大家注意哈,就是因为我们通过这个字符流,大家注意哈,通过这个这个字打印流,其实打印流他就能帮我们去输出这个字符,那么提到字符你就不得不提到编码,是不是这样的对吧?你在讲IO流的时候,老师一定强调过,如果你要想使用这种字符流,那么你必须得注意这个编码的问题,那么其实现在就是我们编码出问题了啊,那么怎么去解决这个问题呢?那我们就必须得告诉他,诶,你要以什么编码来去给我编这个东西,理解吧,哎,那么其实我们更主要的呢,是想告。
02:02
就浏览器我这个数据的编码是怎么编的,你将来在浏览器端给我去显示这个数据的时候呢,你要怎么去把这个给我解出来。理解吧,来,那我们要怎么做呢?大家注意,我们就在注意一定要在获取这个流之前,其实我们这个代码可以稍微重构一下,你不需要获取两次,你只需要统一的把这一行代码给它提取到外面,那这个out我是不是在这个地方都能去用了,能看懂什么意思吧?哎,那么我们把这个整个给它提取出来了哈,那就啊,来把它提取到我们的这个位置能看到吧,提取出来以后呢,那么这个on的话,我们就可以啊,在两个里面都可以去使用了,但是大家注意啊,这样的话呢。我们就可以什么,诶两个都可以去使用了,但是呢,我们要注意现在我们的问题是乱码的问题,那么我们一定要在获取输入流之前呢,给我们的response对象,就是我们的resp,给它设置一个content type,呃,这个东西写什么值呢?我先写出来text HTML,然后呢叉site等于UTF8。
03:20
这个是什么意思啊,我给大家来说一下哈,就其实呢,哎,你在这个请求阶段对吧?啊,你看我们在这个请求与响应阶段,我们再来说一下,你这个请求阶段呢,诶你会给我发送一些数据,那么这个数据的话呢,它会根据我们页面的编码进行编,对吧?那么页面的话,我们刚才设置过是不是就是一个UTF杠八呀,对吧?所以你到后台的话呢,诶你有你也使用这个UTF杠八去解,那么这个是没啥问题的了解吧,但如果说你要往回响应的话呢,那么这个时候页面就不一定使用UTF干嘛给你解了,所以说呢,我们就一定能告诉这个浏览器,我的这个数据你必须得使用UTF干嘛去给我解,所以说这个是设置一个响应啊,这个是设置一个响应,那你前面这个THTML是个啥东西啊,这是相当于告诉浏览器,我给你返回的数据的格式是什么,我给你返回的就是一个文本格式啊,这是一个文本,那么其实我们这个H。
04:21
HTML是不是也是一个文本啊,超文本嘛,对吧?啊,它也是个文本,也就意味着我将来可以给你响应,就是我给你响应回去的数据其实是一个HTML,那么你要以这个HTML来去给我做一个解析,那么现在我返回的就是一个普通的什么东西啊,就是一个普通的一个文字,所以说呢,他就算拿HTML来给我解析,那么解析出来以后呢,也就是个这么个东西能明白吧,但是如果说你注意了哈,如果我写成TXHTML,但是这个位置我加上一个什么呢?你看看哈,加上一个H1,那这个呢,我也加上一个H1这个东西,你看对于Java来讲,这就是一个普通字符串吧,但是对于浏览器来讲,这就不是一个普通字符串了吧,所以说呢,现在你给他响应这个东西,那么他再通过HTML来给你解析,那么这个H1就不是一个普通字母串了,明白这个意思了吗?OK啊,那么我们顺带的就就这么来做啊,你看了啊,那我呢把这个也加。
05:21
唱一个吧。来了。还有不要再访问了吗?啊谁啊,不要我知道你是吧?啊H1看到了吧,然后呢,这里面的话呢,大家注意我们,呃,如果说这个加上H1的话,它能帮我们解析了,那么我们希望登录成功以后呢,你给我一个啊这个这个颜色是吧?什么颜色呢?那我们还可以通过一个标记啊,就是这个font标记。啊,这个放置标题我没有讲,它就是一个专门设置字体的啊,这里面的话我们写个color等于注意啊,双引号与双引号中间呢,你就不要再使用双引号了,你就使用单引号,如果登录成功,那就是一个绿色是吧?那么假如登录失败呢?啊,那就是红的了,好,然后把这个加上你看了啊,这里面我们加上color等于FRA是吧?你看这个东西对于Java来讲,这就是一个字符串,有特殊意义吗?没有,但是对于HTML来讲,这就不是一个普通字符串了,好,那么这现在我们既把它加上,然后呢,又把我们的诶这个东西给它加上,我们再来看一下这个效果啊。
06:39
好,启动一下。OK,启动成功,那么启动成功以后呢,我们来访问刷新一下的密123456,这是正常效果,走大家来看有样式没有,有吧,诶这就是我们的一个登录成功,而且中文也没问题了,来假如说我登录失败,789456来登录失败,你看是不是一个红的了,看明白了吧,OK,那么这就是我们啊响应中文的话呢,你就什么加上这样的一行代码就可以了,明白这个意思了吧,哎,加上这样的一行代码呢?哎,我们就没有什么问题了啊好,呃,那把这个说了以后呢,我们顺带的再来说一个东西吧,呃,就其实呢,我们将来在请求阶段呢,我们也可能会有一些编码的这个问题,那么我们在获取这个数据之前呢,我们最好也给谁呀?给这个请求对象request,给它设置一个,它不叫做content type了,它叫什么呀,它叫。
07:50
做site差actcoding,就是也给它设置一个编码,我们也给它统一成UTF杠八。能理解吗?也给他统一成UTF杠吧,这样的话呢,我们就敢确保它是没有这个乱码问题的,所以说现在我们也没也没有这个乱码问题,但是呢,诶有些同学你去运行的时候可能就会出现乱码了,那么你就把这个东西呢,也给它加上,这样的话呢,请求我也保证没有乱码响应呢,我把这个加上,那我也敢保证我的响应也是没有乱码的。
08:22
听懂这个意思了吧,OK,所以说呢,这两个配置呢,大家下去以后呢,加上注意加的时候呢,一定要注意啊,请求的这个呢,是一定要在获取数据之前加的,你要是数据都获取到了,你加上它有用吗?没用,那么响应呢,一定是在获取流之前去加的,如果说你流都获取到了,你再设置它,那就没用了,因为流本身就已经乱码了,流里面的数据就已经乱码,听懂这个意思了吧?OK,所以这两个东西我们需要给大家去说一下啊。
我来说两句