在JavaWeb开发的前端界面,我们一般采用绝对路径。
这里简单聊一下绝对路径的好处。
当一个html里面含有a链接标签、form表单、iframe框架时,如果href属性或者action属性采用相对路径,并且其中带着ServletPath。
形如 如果这个html文件的文件路径很深,形如
context root/aaa/bbb/ccc/ddd/xx.html
因为a标签和此html处在同级目录,则它的href指向的完整路径则是
context root/aaa/bbb/ccc/ddd/user.do?
这样无论是在web.xml中的url-pattern或者servlet类的注释配置会变得很长,非常不方便。
在编程过程中,我发现有几个地方是不用加斜杠,采用绝对路径的。
第一个是服务器的内部转发,目标资源地址由服务器解析,如果转发前的servletPath已经是在根目录下(根目录为context root),则
getRequestDispatcher(“/index”)和getRequestDispatcher(“index”)是一样的。
第二个是重定向,第三个是js的全局变量。目标资源地址由浏览器解析,在浏览器端完成的。因此此时的根目录是ServerIP:port
所以sendRedirect(“/index”)或window.location.href="/index"是绝对不可取的,它实际效果是形如 http://localhost:8080/index 直接把context root跳过了!!!
上一篇:Lombok常见用法总结
下一篇:流量分类与标记