jsp中绝对路径和相对路径

大体上的路径划分:

1,绝对路径 "/" 如 /hello/hello.jsp


1.1  客户端的绝对路径 主要存在于:超链接,form表单的action动作,rediret网页重定向,

例如:a.jsp中有超链接b.jsp <a href="/b.jsp">b.jsp</a>    

先打开http://localhost:8080/hello/a.jsp

然后连接b.jsp  IE栏显示  http://localhost:8080/b.jsp   而不是http://localhost:8080/hello/b.jsp

以上是这种情况除此在客户端行为的还有html语言中的<form action="/a.jsp"> 显示的也是  http://localhost:8080/b.jsp  还有重定向 response.sendrRedirect("/b.jsp")显示的也是  http://localhost:8080/b.jsp  以上的三种都是客户端的

1.2   服务端的绝对路径  是存在jsp/servlet中的转发 例如:在a.jsp中转发  request.getRequestDispatcher(" /b .jsp").forward(request, , response);

先打开 http://localhost:8080/hello/a.jsp 如果没问题的话则也面不跳转还是显示该网址,如果b.jsp找不到网页提示404错误,显示没有/hello/b.jsp 也就是http://localhost:8080/hello/b.jsp,而不是b.jsp 既  http://localhost:8080/b.jsp  服务端的还有<jsp:forward>标签 以上都是服务端的,属于转发;


1.3   这时我们就好奇啦!为甚么产生这的原因?原因:参照的根目录 不同造成的。服务端的参照的根目录是我们的web 应用程序发布目录 通俗的说就是(我的是tomcat)位于webapps/hello/..看到了吧!就是hello目录。你在webapps下创建的目录就是应用程序根目录 ,在1.2的例子中你的b.jsp和a.jsp都在hello目录下可以写成/b.jsp,如果不在此目录 比如 b.jsp在 根目录/jsp/b.jsp中。那么你必须修改为/jsp/b.jsp。现在明白了吧!1.2的例子说完啦再说1.1例子客户端的。虽然b.jsp和a.jsp同样在hello目录下。但客户端参照的根目录就不是hello目录了,而是http://localhost:8080/ 因为是客户端么 !你超链接<a href="/b.jsp">可不就是连接到客户端根目录下啦! 也就是http://localhost:8080/b.jsp 现在的你对互联网的绝对路径有些领悟了吧?能起到拨千斤的作用么?还不完善,你再结合实际仔细领悟一下吧;


2,相对路径 也就是没"/"的 如 hello/b.jsp

相对路径在服务端和客户端的情况没有差别的;这次就举一个例子吧


2.1   还用1.1的例子吧 这里吧超链接改正为 <a href='"b.jsp">b.jsp</a>

先打开http://localhost:8080/hello/a.jsp

然后连接b.jsp  IE栏显示  http://localhost:8080/hello/b.jsp  而不是1.1中的http://localhost:8080/b.jsp  

<a href="b.jsp">b.jsp</a> 这里的就是相对路径 那么相对的是那个路径呢?就是相对

http://localhost:8080/hello/  这个路径 然后再加上b.jsp就是啦!其他的<form action="url">

重定向的url 还有转发的url都是一样的;

 

以上是本人的个人见解,希望抛砖引玉,不对的地方请指教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值