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,我们再也不用为一个个检查../纠结了。
页面跳转同理。
==========================================================================================================================================
思想收获:
知识在于积累,不怕不知道,就怕不知道。
相关文章推荐
- eclipseRCP深入浅出(学习总结)2015.08.25
- ACdream 1420 High Speed Trains【Java大数高精度 + 递推】
- 超快安卓模拟器Genymotion在eclipse里面的安装方式
- 对于java跨平台的理解
- MyEclipse的内存问题
- Struts中的拦截器学习笔记
- lesson2-java虚拟机之jvm结构
- 大分享-hibernate,springmvc,easyui简要介绍
- spring boot实战(第一篇)第一个案例
- Spring MVC中的DispatcherServlet作用
- 【java关键字-Thread】Thread.Join()的用法,及其实现线程顺序执行的原理
- java新手笔记34 连接数据库
- Java中加载图片方法
- Java弱点
- Java中的Atomic包使用指南
- Java Exception异常介绍
- Java对象、Json、Xml转换工具Jackson使用
- Java对象、Json、Xml转换工具Jackson使用
- Java对象、Json、Xml转换工具Jackson使用
- Java IO流->处理流->缓冲流->字节流&字符流