在web中,"/"表示的是绝对路径,在实际开发中只使用绝对路径,可以避免很多不必要的问题,本文配合idea中Java Web项目的访问路径问题 、Maven项目在部署到Tomcat之后,各种资源请求路径理解分析(彻底搞懂javaweb项目路径问题)食用更加
"/"被服务器解析的时候,表示的地址是
http:ip:port/工程路径/
"/"被浏览器解析的时候,表示的地址是
http:ip:port/
被浏览器解析的情况:
(1)html中的路径
① img 标签和script标签的 src 的属性;
② a标签和link标签的 href 属性;
③ form标签的 action属性;
(2)重定向
response.sendRediect(“/”);
虽然写在servlet中,但是表示的意思是把"/"
发送给浏览器解析,得到 http://ip:port/
被服务器解析的情况:
(1)web.xml 中的url-pattern
,如 /helloServlet,表示的实际访问地址是"http:ip:port/工程路径/helloServlet"
(2)servletContext.getRealPath(“/”); 得到当前项目的真实路径
(3)request.getRequestDispatcher(“/”); 请求转发
总结:
-
如果路径
开头
不是"/",那这个路径是相对路径,参照的路径就是当前文件的路径(浏览器地址栏中的路径),比如./(在当前目录查找) [只有文件名]或[直接以某路径名开头](在当前目录查找) ../ (在上一层目录查找)
等 -
如果路径
开头
是"/",则表示当前的地址是绝对路径,"/“表示的实际路径要看请求是由浏览器发起还是服务器发起,如果是浏览器发起,则”/“只能被解析到端口号
,如果被服务器发起,则”/"会被解析到工程路径