Servlet中一些路径问题(客户端路径和服务端路径)

路径问题分为两种一种是客户端路径,一种是服务端路径,下面分别来介绍

1.客户端

在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,

如果这个路径以“”开始。在客户端跳转当中“”代表的是应用服务器根目录,即“http://localhost:8080/”, 

response.sendRedirect("")

以上这些属于客户端路径,其中“/”为http://localhost:8080,“/”后面需跟项目名以及资源路径

2.服务器端

而在服务器端跳转当中代表的是应用程序根目录,即“http://localhost:8080/项目名/”

request.getRequestDispatcher("/xxx").forward()

其中“/”为项目根目录,比如http://loaclhost:8080/projectName,“/”后面只需要跟项目根目录下资源路径即可

两者区别

1.redirect 方式可以跨应用访问,forward 只能在同一个应用中跳转。

2.forward 客户端访问服务器,服务器找到要跳转的相应URL并执行返回给客户端。客户端的地址栏显示的是原始URL

   redirect 客户端访问服务器,服务器找到要跳转的URL并将URL发给客户端,再由客户端对新的URL重新发送请求。客

   户端的地址栏显示的是第二次请求的URL

3.数据的传输:在request中的数据,forward可以访问,redirect不行,因为redirect已经是一个新的请求。

相对路径的理解:

forward中"/"相对于web应用.
http://localhost:8080/Test/gw/page.jsp中转发
  <jsp:forward page="OtherPage.jsp"/>在JSP页面被解析后转换成pageContext.forward("OtherPage.jsp");
  "/OtherPage.jsp"提交到http://localhost:8080/Test/OtherPage.jsp
  "OtherPage.jsp"提交到http://localhost:8080/Test/gw/OtherPage.jsp
  
  <form action="/ddd"> 和 response.sendRedirect("/ddd"); 相对于服务器根路径.
  假设转发代码包含于注册的servlet-url为/ggg/tt;jsp为/ggg/tt.jsp:
  绝对路径:response.sendRedirect("http://www.brainysoftware.com")发送http://www.brainysoftware.com
  根路径:response.sendRedirect("/ooo")发送至http://localhost:8080/ooo
  相对路径:response.sendRedirect("ooo")发送至http://localhost:8080/Test/ggg/ooo,



  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值