java 静态文件分离_在JavaWeb项目中处理静态文件或动态链接拼接网站地址的最优处理方案...

在开发网站时候我们会遇到下面问题?

- 在引用网页中引用js和css或者动态的Servlet的时候我们是写绝对路径还是相对路径?

- 如果写相对路径吧,上线偶尔会报404,还要手动去拼接绝对路径

- 如果写绝对路径吧,你在本地写的时候肯定的是localhost:8080/xxx/xxx,项目上线的时候你又要把网页中的这个替换为你的上线域名,体验很糟糕

我们怎么解决这样的问题呢?

我们可以在网页中使用Request对象来获取网页中的各种地址信息。

-request.getServletPath(); 获取当前网页的地址-request.getScheme(); 获取协议-request.getServerName(); 获取域名-request.getServerPort(); 获取端口号- request.getContextPath(); 获取项目名称

下面我们来拼接成一个通用的获取项目地址的变量,让在jsp网页中随处都可以使用它啦

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

获取到的就是下面这样的地址

basePath:http://localhost:8080/WebDemo/

我们可以在jsp页面写入下面代码

在引用Js和css或者需要拼接路径的时候我们可以直接使用basePath这个变量,例如

当然我们每一次都需要在jsp文件编写下面的代码吗?那可真的是太复杂了,我们可以直接在web.xml中稍微配置一下,就可以啦,下面看看怎么来操作。

创建一个commons.jsp文件,文件写入下面代码

String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>

在web.xml进行配置,使所有的jsp网页都能自动的引用commons.jsp这个网页(ps:引入这个网页当然就能使用basePath这个变量喽~~直接就能使用啦)

*.jsp

/commons.jsp

注意:/commons.jsp标签中的jsp文件改成你的commons.jsp文件的存放地址

不适用这种方案的情况

-前后端分离的项目-Html网页中- 。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值