J2EE常见路径处理

Posted 清箫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了J2EE常见路径处理相关的知识,希望对你有一定的参考价值。

资源路径

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"。

 

以上是关于J2EE常见路径处理的主要内容,如果未能解决你的问题,请参考以下文章

J2EE中常见易混淆概念

J2EE web项目中解决所有路径问题

J2EE常见的五种模式是啥

在 Eclipse 中哪里可以找到我的 J2EE 应用程序的类路径 [重复]

J2EE的JSP文件中,$.get()提交路径失败,没有进行请求路径的跳转

J2EE项目异常处理(转)