base标签和JSP声明变量解决文件相对路径和绝对路径问题

先看需求:同一个项目需要给不同的客户部署,有的客户使用windows,有的客户使用Linux。使用windows的客户,其用户文件是保存在tomcat的相对路径下;使用Linux的客户,其用户文件是保存在一个绝对路径下。
问题:同一个文件的显示,相对路径能够显示,绝对路径也可以显示。
解决方案:采用html的base标签

<base href="http://****/**/" />
.......
.......
<img src="test.gif" /><!-- windows-->
<img src="http://****/**/test.gif" /><!-- linux-->

标签为页面上的所有链接规定默认地址或默认目标。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。使用 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 、、、 标签中的 URL。
如果url是绝对的,就不会提取。这样就解决了相对路劲和绝对路劲的问题。

问题:有许多jsp页面,每个页面的base需要统一,但是客户不同,base的href通常不一样,就需要集成。
解决方案:采用jsp的声明变量。

<%@ include file="/views/BasePath.jsp"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <base href="<%=basePath%>">
</head>
</html>

BasePath.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath=path+"/";
%>

变量basePath在basePath.jsp中声明,其在include了basePath.jsp的页面中就可以直接使用。

这样就解决了集成问题。

最后,我是一枚棒棒的程序猿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值