17-request路径区分
1. request 中的路径分类
项目名称:/demo
(IDEA中修改了当前Tomcat配置项目访问根目录为 /demo)
当前资源:/path
访问路径:http://127.0.0.1:8080/demo/path
1.1 资源路径
- request.getServletPath();
毋庸置疑为 Servlet 资源路径:
/path
1.2 部署路径
- request.getRealPath(“index.jsp”); // 过时了
- request.getServletContext().getRealPath(“index.jsp”);
- request.getSession().getServletContext().getRealPath(“index.jsp”);
getRealPath(String path) 统一是部署路径:
磁盘路径\out\artifacts\demo_job_war_exploded\index.jsp
应用:- 上传文件路径:xxx.getRealPath(“uploadDir”) + File.separator + uploadFilename
1.3 项目路径
- this.getServletContext().getContextPath();
- request.getContextPath();
- request.getServletContext().getContextPath();
- request.getSession().getServletContext().getContextPath();
getContextPath() 统一是项目路径:
/demo
应用:- 重定向路径: request.getContextPath() + servletPath或htmlPath
- 下载文件路径:request.getContextPath() + File.separator + “uploadDir” + File.separator + uploadFilename
1.4 URI 与 URL
- request.getRequestURI();
- request.getRequestURL();
访问http://127.0.0.1:8080/demo/path 验证结果:
- URI 路径为:
/demo/path
(当前 Servlet 在项目的绝对路径) - URL 路径为:
http://127.0.0.1:8080/demo/path
(当前 Servlet 在项目中带协议和地址端口的绝对路径)
总结:
URL = 协议 + ip:port + URI
- URI 路径为:
2. 源码验证 + 输出截图
1 |
|
输出截图:
17-request路径区分
https://janycode.github.io/2017/03/22/04_网页技术/04_Servlet/17-request路径区分/