1.关于包和转发的路径:
都是用的相对路径。包和源码的文件夹是以类路径为基准(无'/'),转发和请求访问路径是以WebRoot下的路径为基准(有'/')
eg: <mapper resource="sql-mapper/UserMapper.xml" />
request.getDispatcher("/WEB-INF/jsps/hello.jsp").forward(request,response) 或者 @RequestMapping("/register.do")
2.在JSP页面中引用css和js文件,以及表单提交后的action="" src=""等
可以用相对路径和绝对路径,但是保险起见,个人习惯也是用的绝对路径,不然文件夹或者资源更改位置后需要花精力去改动相对路径。如果对相对路径理解不到位,用绝对路径的全路径是最安全的
绝对路径:(全路径)本站内:${pageContext.request.contextPath}/ + WebRoot下的路径
外部网站: http://ip地址。。。(url)
(省略路径,只适用于本站内) "/" + WebRoot下的路径
注意:省略路径这种用法也会有人理解成是以WebRoot为根的相对路径,但于新手来说着实是误导
相对路径: 是相对于当前资源的位置。
前面不可以加'/' ,例如:action="index.do"使用相对路径的话前面是不能有斜杠的。或者你也可以尝试使用"./index.do"
如果要返回上一级路径,则使用"../"
*****在请求中的相对路径问题******
如果资源请求是从浏览器开始转发,则相对路径的根是:http地址栏的上一级。
如果是已经从浏览器转发请求到A.jsp页面,而A.jsp页面中通过<frame/>或者<jsp:include/><jsp:forward/>再去请求其他资源,由于这属于服务器行为,相对路径的根是:请求A.jsp页面的url的上一级。
window.location.href属于服务器行为,不从地址栏判断相对路径,href则属于浏览器行为。