web应用中路径调转问题-相对路径、绝对路径(/代表的是服务器的根目录(ip+port)还是项目的根目录?)
路径分为绝对路径和相对路径,相对路径是指目标相对于当前文件的路径,网页结构设计中多采用这种方法来表示目标的路径。
绝对路径是指完整的网址,假设下图中的项目路径为http://localhost:8080/vi_tmall。index.jsp的绝对地址就是:http://localhost:8080/vi_tmall/index.jsp。
在写代码的过程中,绝对路径是我们以"/"开头的路径,那么这个"/"究竟代表的是服务器根目录还是项目根目录呢?
1.jsp页面中的超链接中的href属性和表单中的action属性中的/表示的是服务器的根目录,如果想要获取项目的根目录可以使用request.getContextPath()方法获取。
2.请求重定向中的/表示的是服务器的根目录。
3.配置文件中的路径中的/表示的是项目的根目录。
4.请求转发中的/表示的是项目的根目录。
总结一下:
在服务器端处理的(配置文件,请求转发)/代表的就是项目的根目录。在客户端处理的(jsp页面中的超链接和表单、请求重定向)/代表的就是服务器的根目录
需要看站在什么角度考虑问题。
注意:
如果在href属性中以"?"开头的路径,表示访问当前页面的路径,当然"?"后面是携带的参数。
JSP中href的相对路径和html中的相对路径不一样,jsp中的是相对项目地址,html中的相对自身路径。