系列文章目录
前言
因为现在的路径都不是绝对路径会有安全隐患404,即找不到资源文件
一、绝对路径
由于相对路径会有问题,隐患404
现在我们把一整套的相对路径改成绝对路径
服务器解析 :/ 代表的是当前项目
浏览器解析:/ 代表的 是8080
因为这样写,一个两个还好,如果很多的话,并不方便,我们有没有简单的办法?有,加个base标签
特别需要注意的是如下,千万注意!!!
所以不能加 /
项目名动态获取在jsp的时候会讲,这里暂时不管
跳转的地方也要变成绝对路径,都加上 /
浏览器解析的 / 代表的 就是 8080
8080 下 还得加个项目名 才能找到我们想要的路径
当然后面真实项目中我们肯定会动态获取项目名
动态获取项目名其实就是前面文章所讲的 获取虚拟路径
/ + 项目名 = 虚拟路径
可以回首页,就说明绝对路径是完全没有问题的
二、乱码问题
现象
如果前面代码都敲了一遍,应该已经发现这个问题了,直接教你乱码了
好了不开玩笑,这个页面应该很熟悉
然后前台打印出来的效果:
虽然平时不建议使用中文,如果万一我们的项目中就是有中文呢,不可避免的有中文怎么办?
怎么解决乱码问题?首先我们要先知道为什么会出现乱码问题
乱码实际上就是编码与解码不一致,就会出现乱码
那么什么叫编码,什么叫解码呢?
计算机底层是二进制的,计算机还有个名字叫电脑,
为什么叫电脑,因为计算机是计算是用通电状态来表示数据的
用 1和 0 来表示 1 代表 通电 0 代表不通电
所以编码就是将字符转化为二进制的过程
解码则相反
这里又涉及了请求乱码和响应乱码
-
服务器的默认编码不支持中文
所以我们需要去了解一下支持中文的
GBK 和 UTF-8
我们中国大陆用的较多的是 UTF-8,因为它比GBK支持的字符多一些 -
客户端(浏览器)的编码 其实是我们设置的,解码默认为 GBK
不知道大家 是否还有印象,我们新建一个html(HTML5)页面的时候
所以我们发现一个很严重的问题
无论是 请求还是响应 在默认情况下 都是乱码
所以默认情况下,无论是请求还是响应,一定是乱码的
解决乱码问题
解决请求乱码
只说问题不说解决办法就是耍流氓,所以我们不耍流氓,我们来讲讲解决方案
在哪去解决问题?在servlet中去解决,我们去设置编码
我们写完之后测试一下,看看控制台,发现并没有什么用
继续看看还有啥没有处理
原因如下,我们解决的是post请求
还得解决get请求
改成post 就可以了
post请求一行代码就解决了
那么问题我们解决一半了,下面还剩下 get ,get请求怎么处理呢?
修改了服务器的配置,一定要重启一下服务器,
然后测试一下
解决响应乱码
怎么解决,有两种方式
1、直接将服务器编码设置为GBK(不推荐)——原理:因为浏览器默认解码就是GBK
2、将服务器编码与浏览器编码统一设置为UTF-8
这就有一个痛点,我们怎么用服务器端的代码 去改变 浏览器的编码格式 呢?
总结
1、
相对路径改绝对路径会更稳定,更靠谱,可以杜绝出现404
绝对路径需要加标签或者自己加上项目名,加标签要灵活使用,样板如下:
** **
2、
解决乱码问题 三行代码,最终留下一行最精简的代码:
response.setContentType(“text/html;charset=UTF-8”);
3、获取虚拟路径 request.getContextPath()
最终得到的是 /BookStore04