关于jsp文件中的路径问题

关于jsp文件中的路径问题

我查看了源码的目录结构,关于css文件和js文件的导入问一个路径问题

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

既然所有的jsp文件都在同级目录中,为什么有的文件导入方式为../css/reset.css,比如department_list.jsp

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

而有的文件导入方式为css/reset.css,比如login.jsp

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

我之前相对路径和绝对路径那里掌握的不太好,麻烦解释一下

正在回答

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

2回答

同学你好,

1、这里../ 是相对路径,可以表示上一层目录

2、相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。

      绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径

以/开头的是绝对路径,以../或者当前代码中直接写xxx.do  是相对路径。

相对路径相对的是当前的访问路径

重定向的时候用相对路径和绝对路径都可以的。

如果用相对路径,就会在当前访问路径下去访问xxx.do

如果用绝对路径,则要写全访问的路径。

转发的时候用相对路径。

祝学习愉快~


  • 看看就跑 提问者 #1
    谢谢您的问题,我在继续追问几个问题: 1、您主要给我解释了相对路径和绝对路径的区别,但我给您的截图中,所有.jsp文件都在同一个目录下,为什么在引用css等文件的时候写成同一种方式是错误的呢? 2、刚开始学Servlet的时候,每个控制器都由一个Servlet构成,每个Servlet都需要配置一个资源路径,所以访问每个控制器直接跳转到对应的资源路径即可。 现在采用了*Controller控制器这种写法,每个控制器就是一个普通的类而不是Servlet,我怎么知道每个控制器对应的路径呢。我知道核心控制器是一个Servlet,可以解析转发过来的url,但是每个控制器自身的路径或者说是当前目录是什么呢。比如Staff对象,转发到../department_list.jsp,这里的..是哪个目录;又比如重定向到 list.do,到了核心控制器那里怎么就变成了department/list.do呢
    2020-06-01 16:55:45
好帮手慕小脸 2020-06-01 19:00:16

同学你好,很抱歉,在上个问答中没有回复完全,望谅解。

1、上述两个href的地址不一样是因为,它是根据当前所在路径来写css和js的相对路径。

    访问department_list.jsp的时候,请求路径为department/list.do
而login的访问则是直接访问的login.do,“../”是返回上一级目录,对浏览器来说,就是从当前的localhost:8080/sm/department/list.do,返回上一级,到sm,也就是项目根目录再去寻找css等文件。

2、在Servlet中对路径进行了截取,就会匹配对对应的xxx.do。然后在web.xml中拦截.do的请求,然后交给核心控制器进行处理,接着在核心控制器中解析请求,最后再转发给对应的controller执行

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

这里以department_list.jsp中的删除功能为例

http://img1.sycdn.imooc.com//climg/5ed4d09109d1253c06110192.jpg然后去DepartmentController找对应的remove.do,执行完操作后

http://img1.sycdn.imooc.com//climg/5ed4d0a50944c0f510760131.jpg重定向到list.do

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

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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