1. 绝对路径

以根部件开始的路径是绝对路径,比如/(Linux系统中)或者C:\(Windows系统中)。

默认文件系统的路径分隔符,类Unix文件系统是/,Windows是\

其实就是在硬盘上真正的路径,(URL和物理路径)例如:

C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。

2. 相对路径

相对路径:相对于某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,”/”代表Web应用的根目录,”./” 代表当前目录,“../”代表上级目录。

3. java中的应用

归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是API在底层帮助我们构建了绝对路径,从而找到资源的!

3.1 request.getContextPath()

是为了解决相对路径的问题,可返回站点的根路径或者叫根目录,分为两种情况:

将web项目中的webRoot下的文件直接拷贝到webapps/ROOT下(删除ROOT下的原有文件);

在Tomcat下的webapps中创建以项目名称命名(当然也可以用其他的名称)的文件夹,并将webRoot下的文件直接拷贝到该文件夹下。

对于第一部署方法,request.getContextPath()的返回值为空(即:"",中间无空格,注意区分null)。

对于第二部署方法,其返回值为:/创建的文件夹的名称。

对于第1种方法,当你直接在浏览器中输入你的服务器ip+端口号,就会到你的jsp页面,而不是tomcat的默认页面,所以你通过request.getContextPath()得到的字符串是为空字符串;

如果你想得到工程文件的实际物理路径,可通过:。

效果:

String path = request.getContextPath();

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

%>

path: /jspSmartUpLoad

basePath: http://yangm1203.oicp.net:8080/jspSmartUpLoad/

request.getScheme(): http

request.getServerName(): yangm1203.oicp.net

request.getServerPort(): 8080

实际应用中,一般用来解决jsp测试和生产环境路径不同的问题

request.getScheme();

返回的协议名称,默认是http。对于ssl则返回"https"

request.getServerName()

返回的是服务器域名,如果是在本地的话就是localhost

getServerPort()

获取服务器端口号

比如,但当这两个文件是在同一个目录下时,也可以直接用。

比如你要生成一个文件放在服务器上的一个目录下,可以使用request.getContextPath()+/dir,组成一个完整得目录结构!

注意在velocity中的写法可能要改为

$!{request.getContextPath()}

一些常用的获取项目根目录写法:

在jsp里去这就是项目的根路径了。

js的引入方法如下:

css的引入方法:

3.2 Classpath:

指定类搜索路径。即用来告诉编译器导入的包或者类所在路径。

比如我们安装JDK的配置:

Classpath:

.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;

分别表示当前目录,即自己的java类路径;jdk自带的标准类库路径。

JAVA_HOME

C:\Program Files\Java\jdk1.8._77

设置jdk的安装路径。

3.3 request.getRealPath()

用来获得绝对路径

request.getRealPath("/");//不推荐使用获取工程的根路径

request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用

this.getClass().getClassLoader().getResource("").getPath();//获取工程classes 下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个 class。所以它应该是一个通用的方法。

4. 相对路径的几种使用情况

1.若引用的资源和本身在同一路径下(既在同一目录下),直接:

2.要引用的文件在下一级文件夹下,文件名前加子文件夹名称

假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html

假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\html\tutorials\index.html

在info.html加入index.html超链接的href应该这样写:html/tutorials/index.html

3.要引用的文件在上一级文件夹下,文件名前加../

假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html

假设index.html路径是:c:\Inetpub\wwwroot\sites\index.html

在info.html加入index.html超链接的代码应该这样写:

index.html

举一反三: ../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推

4.更复杂的情况:

假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html

假设index.html路径是:c:\Inetpub\wwwroot\sites\html\index.html

在info.html加入index.html超链接的代码应该这样写:index.html

5.最后一个例子

假设路径:D:\例子\html\style\view\pop.css

D:\例子\html\images\view\tupian.gif

在css中引用这个图片:

在JSP/HTML等页面引用CSS,Javascript.Action等属性时,前面可以加上< %=request.getContextPath()%>,以确保所引用的文件都属于Web应用所在目录。因为当使用类似”.”,”./”,”../../”等相对路径时,文件移动很容易出问题,但对于目录结构不变的应用影响不大。

java配置d盘绝对路径_Java的绝对路径和相对路径相关推荐

  1. java 拦截所有路径_Java或Web中解决所有路径问题

    Java中使用的路径,分为两种:绝对路径和相对路径.归根结底,Java本质上只能使用绝对路径来寻找资源.所有的相对路径寻找资源的方法,都不过是一些便利方法.不过是API在底层帮助我们构建了绝对路径,从 ...

  2. java获取项目中的路径_java中几种获取项目路径方式

    转自http://caodaoxi.iteye.com/blog/1234805 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是Web ...

  3. java配置出现的问题解释_java SE问题总结(持续更新。。。)

    q:安装的jdk为什么没有javac.exe文件? a:JDK和JRE一定不能安装在同一文件夹中,(jdk自带的那个jre除外)否则运行的时候会找不到javac命令. 原因:JRE晚于JDK安装,而J ...

  4. java file的相对路径_JAVA File的建立及相对路径绝对路径

    File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象.注意j ...

  5. java安装路径_java环境变量和查看安装路径

    java环境变量和查看安装路径 一:先说windows查看安装路径和版本吧: set java_home:查看JDK安装路径 java -verbose java -version:查看JDK版本 l ...

  6. java当前类路径_java获取当前类的绝对路径

    另,Class类还有一个getResourceAsStream方法,记得以前有个项目要读取在同一个包内的一个xml,就用的这个. 1.如何获得当前文件路径 常用: (1).Test.class.get ...

  7. java资源文件路径_Java 中获取资源(文件)的路径问题总结

    Java 中获取资源(文件)的路径问题总结 首先,Java 中获取资源大体上可分为两种方式,基于 文件系统的 和 基于classpath的. 1. 基于文件系统的相对简单. 比如 构造一个File f ...

  8. java 输出文件到mac路径_Java 中几种获取文件路径的方式

    原标题:Java 中几种获取文件路径的方式 1. 前言 Java开发中我们经常要获取文件的路径,比如读取配置文件等等.今天我们就关于文件的路径和如何读取文件简单地探讨一下. 2. 文件的路径 文件的路 ...

  9. java resources 路径_Java工程读取resources中资源文件路径问题

    正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...

最新文章

  1. mysql导入sql文件限制,Mysql导入大容量SQL文件数据有关问题
  2. Getting Started with Node.js LoopBack Framework and IBM Cloudant
  3. cuda7.5 和cuda8共存
  4. java 仿百度文库源码_java开发_模仿百度文库_SWFTools_源码下载
  5. 相机电子快门和机械快门有什么区别
  6. php tp写构造函数,详细介绍ThinkPHP中类的构造函数_construct()与_initialize()的区别
  7. 如何把一个整数转化成数组_「leetcode891」给定一个整数数组 A,考虑 A 的所有非空子序列...
  8. 蓝桥杯 BASIC-14 基础练习 时间转换
  9. 【博客话题】技术之路上的人和事
  10. 浅谈操作系统是如何工作的及简单的进程调度的linux实现
  11. 「12」你们啊,naive!——朴素贝叶斯谈笑录
  12. 实验报告四201521460014
  13. PHP漏洞全解—————9、文件上传漏洞
  14. 加服务器虚拟机软件,服务器虚拟机软件
  15. NodeJs(尚硅谷视频学习笔记)
  16. 基于SSM的图书借阅管理系统的分析与设计(源码+文档+PPT)
  17. 统计学 参数估计 之 总体均值的估计
  18. 风潮唱片总目录及下载地址-2009年2月9日更新
  19. 矢量网络分析仪是什么 都有什么型号 TFN FMT800 矢量网络分析仪
  20. 【优秀毕设V2.0】基于树莓派的OpenCV-Python摄像头人脸追踪及手势识别、网络地址推流及远程控制系统(多功能系统、含演示视频)

热门文章

  1. python字符串定界符_python字符串
  2. 【Linux】进程概念——父子进程、僵尸进程和孤儿进程
  3. qcow2虚拟磁盘碎片整理方案一
  4. C++ 内存池介绍与经典内存池的实现
  5. 物流信息化领跑者 唯智信息助力制造业转型升级
  6. 连平县中信山水城_中信到连平县城多少公里
  7. 耐克:模仿与虚拟经营的典范(转)
  8. 基于 transformers 的 generate() 方法实现多样化文本生成:参数含义和算法原理解读
  9. 远程电源管理单元(智能PDU)的发展趋势论述
  10. 加载应用程序出现卡死、卡顿、报内存不足,软件闪退现象