java web项目绝对路径

相对路径貌似逼格很高,不建议使用;

任何时候都建议使用绝对路径;

绝对路径以/开头;

在javaweb项目中,绝对路径的根/是什么?分以下情况:

1 主机根目录,即http://localhost:8080/,体现在客户端行为,如

1.1.  src、url;

1.2.  表单action;

1.3.  超链接href;

1.4.  重定向sendRedirect;


2 项目根目录,即http://localhost:8080/projectname/,体现在服务器端行为,如

2.1.  <url-pattern>这个必须使用“/”开头;

2.2.  转发request.getRequestDispatcher("/BServlet").forward(request, response);

2.3.  ServletContext获取资源

必须是相对路径,可以“/”开头,也可以不使用“/”开头,但无论是否使用“/”开头都是相对当前应用路径

String path1 =this.getServletContext().getRealPath("a.txt");

String path2 =this.getServletContext().getRealPath("/a.txt");

path1和path2都是http://localhost:8080/projectname/a.txt


3 classes目录,即http://localhost:8080/projectname/WEB-INF/classes/

3.1.  Class获取资源,必须是相对路径,可以“/”开头,也可以不使用“/”开头,

InputStream in1 = Demo.class.getResourceAsStream("/a.txt");

InputStream in2 = Demo.class.getResourceAsStream("a.txt");

假如Demo类位于WEB-INF/classes/cn/test,则in1的路径是WEB-INF/classes/a.txt,in2的路径是WEB-INF/classes/cn/test/a.txt(相对于当前Demo.classes的位置)

3.2.  ClassLoader获取资源

必须是相对路径,可以“/”开头,也可以不使用“/”开头。但无论是否以“/”开头,资源都是相对当前类路径。

InputStream in1 = Demo.class.getClassLoader().getResourceAsStream("/a.txt");

InputStream in2 = Demo.class.getClassLoader().getResourceAsStream("a.txt");

in1和in2的路径都是http://localhost:8080/projectname/WEB-INF/classes/a.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值