J2EE常见路径处理

来源:互联网 发布:php redis 扩展 编辑:程序博客网 时间:2024/04/29 01:06

资源路径

File(path)

  • 对于UNIX操作系统,绝对路径总是以”/”开头,相对路径没有前缀;
  • 对于Windows操作系统,绝对路径格式是”盘符:\\path”,Windows UNC绝对路径的的前缀是”\\\\”。

如果path是相对路径,文件的绝对路径部分从user.dir系统属性获取。比如如果user.dir的值是:c:/Users/workspace/projectDemo,那么File("path.properties")指向的文件是c:/Users/workspace/projectDemo/path.properties。

MyClass.class.getResource(path)

MyClass是你自己定义的类,假设MyClass加上包名的全称是"com.demo.MyClass"。

  • path不以"/"开头时,则是相对从"com/demo/"目录下取资源,如果没有找到返回null;
  • path  以"/"开头时,则是从ClassPath根目录下获取,如果没有找到返回null;

ClassLoader.getResource(path)

  • path不以"/"开头,从ClassPath根目录下查找资源,如果没有找到返回null;
  • path  以"/"开头时,返回null;

即MyClass.class.getResource("/") == ClassLoader().getResource("")

WEB请求或文件路径

  • 请求的URL:request.getRequestURL()。
  • 请求去除协议部分后的路径:request.getRequestURI(),比如请求为http://localhost:8080/J2EEProject/path?hello=world,返回的是"/J2EEProject/path"。
  • Web应用根目录的在硬盘上的真实路径:ServletContext.getRealPath(""),比如返回"c:\tomcat\webapps\J2EEProject"。如果是调用ServletContext.getRealPath("/"),则返回"c:\tomcat\webapps\J2EEProject\"。
  • 文件路径:ServletContext.getRealPath("readme.txt"),如果文件在Web根目录真实存在,则返回"c:\tomcat\webapps\J2EEProject\readme.txt"。

 

0 0