关于url路径问题
来源:6-4 项目作业
shady_jin
2018-08-10 14:10:13
例如:
路径1:http://localhost:8080/test/sm/main.do
路径2:http://localhost:8080/test/add.do
首先,以上经两个路径getRequestDispatcher.forward转发之后的同一jsp页面中,访问相同的静态资源文件(例如:CSS文件和JS文件)所使用的相对路径截然不同(href:"../css/xx.css" 和href:"css/xx.css"),请问这是为什么?
此外,在Java工程中和最后的容器中运行的war包中是没有“test/sm/”这样的真实路径存在,如果不在存在这样的路径,那么所谓的“test/sm/”又怎样一种指代含义?如果不存在这样的路径,那么又需要用到上面相对路径的方式来找资源呢?在本套教学视频中老师也多次提到“为避免路径跳来跳去,我们访问静态资源使用pageContext.request.contextPath方法”,这又是为什么?
最后,为了这个问题在网上搜了好久,可能是搜的关键字不对,怎么也找不到答案,特此在此向老师咨询,谢谢。
1回答
1、根据同学的这个路径分析来看,test应该是IDEA配置的项目名称,路径1比路径2多了一级路径sm,虽然说返回的是同一个页面,但是实际页面中请求静态页是也是多一级目录的,所以当路径1访问时需要增加../返回test根目录下~~
2、路径的解析和跳转是在DispatcherServlet中完成:

在进行页面路径的跳转时,假设是访问localhost:8080/department/list.do ,那么根据上面的代码被解析到departmentController类的list方法中来完成业务的操作;
同学可以参考一下这个问答下关于访问路径的回答:
http://class.imooc.com/course/qadetail/63014
祝学习愉快!
相似问题