关于路径的问题和简写的问题

关于路径的问题和简写的问题

http://img1.sycdn.imooc.com//climg/5f3f3ed609ee5b6d08530092.jpg

http://img1.sycdn.imooc.com//climg/5f3f3ed7091ac88e08590134.jpg

1.我不太理解相对路径是什么意思:就是到底是谁相对谁?

为什么上面这个toLogin.do就可以直接“login.jsp”而下面这个需要“../department_list.jsp”,我看了一些答案说这是/toLogin.do是一个一级目录,/department/list.do是一个二级目录,那问题在于,/toLogin.do是因为前面只有一个“/”所以叫一级目录?/department/list.do有两个“/”叫二级目录?为什么/toLogin.do相对于login.jsp是同一级的目录,而/department_list.jsp相对于/department/list.do是上一级目录?.do的目录怎么和jsp的目录有不同层的关系,他们不是在不同地方吗?

http://img1.sycdn.imooc.com//climg/5f3f40a6094949bc06370201.jpg

http://img1.sycdn.imooc.com//climg/5f3f40a809a95e9205190265.jpg

2.还有一个问题就是在jsp这里,像之前是说的都是二级目录的情况下,为什么log这里的就要写成log/*****.do,而department和staff就可以直接写add.do,不用再add.do前面加上department?

http://img1.sycdn.imooc.com//climg/5f3f415a091170c104350038.jpg

http://img1.sycdn.imooc.com//climg/5f3f415b09226b4a05490083.jpg

3.最后一个问题,就是老师说type=“Staff”是简写的,那完整的写是type=“com.imooc.dao.Staff”吗?

type=“Staff”可以简写是因为typeAliasesPackage的配置吗?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,是的,log/xx.do当前路径是localhost:8080/log/。

关于left.jsp,是在index.jsp文件中,frameset标签中直接调用的left.jsp,如:

http://img1.sycdn.imooc.com//climg/5f40f46b09b1785712030446.jpg

而index.jsp的访问路径是localhost:8080/main.do,如:

http://img1.sycdn.imooc.com//climg/5f40f48d0979baf811550120.jpg

所以相当于left.jsp的访问路径是localhost:8080/left.jsp。

祝:学习愉快~

好帮手慕阿满 2020-08-22 12:09:21

同学你好,举个例子:

http://img1.sycdn.imooc.com//climg/5f40942809c9a82411180325.jpg

如果想要访问DepartmentController类中的list()方法,访问路径应该是localhost:8080/department/list.do,通过该路径访问,web.xml中的配置会拦截到该访问路径,跳转到DispatchServlet类中进行路径解析,如:

http://img1.sycdn.imooc.com//climg/5f4096850934b9f711420464.jpg

获取beanName和methodName,最后通过反射调用DepartmentController类中的list()方法。

这里的访问路径是根据解析具体设置,比如想访问DepartmentController中的list方法,访问路径就应该是localhost:8080/department/list.do。在list()方法中,会转发到department_list.jsp页面中,如果在department_list.jsp页面中进行一步跳转时,是在当前localhost:8080/department/list.do路径上进行的跳转,这里会去掉list.do,添加上要执行的方法名,例如toAdd.do。拼接后的地址就是localhost:8080/department/toAdd.do.

祝:学习愉快~

  • 提问者 慕标0359786 #1
    那log/xx.do,不也是当前路径是localhost:8080/log/吗,为什么在left.jsp中就是localhost:8080/?
    2020-08-22 16:59:16
好帮手慕阿满 2020-08-21 17:20:21

同学你好,根据访问路径判断的,例如访问路径是localhost:8080/toLogin.do,当前路径就是localhost:8080/,访问路径是localhost:8080/department/list.do,当前路径是localhost:8080/department/。

祝:学习愉快~

  • 提问者 慕标0359786 #1
    为什么访问left.jsp的当前路径是localhost:8080/,而department_list或者staff_list的当前路径是localhost:8080/department/,和localhost:8080/staff/,能告诉我怎么判断的吗?
    2020-08-22 09:43:18
好帮手慕阿满 2020-08-21 16:05:42

同学你好,关于同学的问题:

1、相对路径是相对于当前访问路径。

比如说,如果访问路径是localhost:8080/toLogin.do,在当前路径,也就是localhost:8080/加上login.jsp即可访问login.jsp页面。

如果访问路径是localhost:8080/department/list.do,当前访问路径localhost:8080/department/,需要先使用../返回上一级目录localhost:8080/,再加上department_list.jsp才能正确访问页面。

.do和jsp的目录没有关系。

2、如下日志管理的代码是在left.jsp,访问left.jsp时,当前访问路径是localhost:8080/,所以在访问日志的操作时,需要写上log/xx.do,否则会跳转SelfController中执行,没找到对应的方法报错。

http://img1.sycdn.imooc.com//climg/5f3f7d76091874f705900201.jpg

left.jsp中,其他跳转路径,比如员工管理,部门管理的前边也要加上对应的Staff,department等。如:

http://img1.sycdn.imooc.com//climg/5f3f7f3a0956b4eb08430225.jpg

同学说的部门department和staff的add.do不用加前缀department和staff,是因为当前访问路径中已经用了,比如说部门类的添加页面,是通过/department/toAdd.do进行访问的,当前路径是localhost:8080/department/,已经有department,所以不需要再加。

3、type="Staff"完整的写法是type="com.imooc.sm.entity.Staff",Staff类在entity实体类包下,不是dao包下。是因为typeAliasePackage的设置。

祝:学习愉快~


  • 提问者 慕标0359786 #1
    那怎么判断当前路径是localhost:8080/还是localhost:8080/department/或者localhost:8080/staff/
    2020-08-21 16:14:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师