您的位置:首页 > 编程语言 > Java开发

JAVA集锦(二)--相对路径与绝对路径之间的转换

2015-08-25 23:49 561 查看
       

    最近在做的Java项目中,页面之间的跳转和图片的加载都涉及到了路径的问题。这里再次拿出来整理一下。

 

    开发过项目的都知道,项目中路径如果使用绝对路径那么就等于项目自杀。举个最简单的例子:打开同一张图片

 

          开发环境:http://localhost:8080/test/common/img/test01.img

          测试环境:http://10.0.3.240:8080/test/common/img/test01.img

          生产环境:http://10.0.4.233:8080/test/common/img/test01.img

        

    如果使用绝对路径,在测试环境和生产环境拿http://localhost:8080/test/common/img/test01.img环境下的

 

图片是肯定拿不到的。所以我们就需要使用相对路径。其中../表示上一级,../../表示上一级的上一级,依次类

 

推。在test项目下表单访问图片的相对路径即为../common/img/test01.img.

 

    今天使用一种新的表示方法

   

<span style="font-family:SimSun;font-size:18px;">
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
</span>

 

<span style="font-family:SimSun;font-size:18px;">
<head>
<base href="<%=basePath %>">
... ...
<img src="common/image/test01.img">

</head>
</span>


其中,

request.getContextPath(),取得当前应用项目名称,这里为test

request.getScheme(),返回当前协议名称,http

request.getServerName(),获取的是服务器的名称,

                    开发环境为localhost或127.0.0.1,测试环境为10.0.3.240,生产环境就为10.0.4.23了。

request.getServerPort(),返回的是端口号,这里为8080。

 

所以得到的

basePath=http://localhost:8080/test/(开发环境)

basePath=http://10.0.3.240:8080/test/(测试环境)

basePath=http://10.0.4.233:8080/test/(生产环境)

 

这样,得到图片的绝对路径即为src=basePath&&common/image/test01.img,我们再也不用为一个个检查../纠结了。

 

页面跳转同理。

 

==========================================================================================================================================

 

思想收获:

 

          知识在于积累,不怕不知道,就怕不知道。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: