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

来源:互联网 发布:linux换成windows系统 编辑:程序博客网 时间:2024/06/16 04:39

先看需求:同一个项目需要给不同的客户部署,有的客户使用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的页面中就可以直接使用。

这样就解决了集成问题。

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

原创粉丝点击