重定向与转发关于路径的迷思

1.转发

转发是服务器接收到浏览器的请求后,调用服务器内部的其他Servlet解决浏览器所请求的问题,既然是服务器调用服务器内部的资源(Servlet),所以转发的时候,使用绝对路径和相对路径都可以实现转发到其他Servlet的效果,因为是在服务器调用其本身内部的Servlet,所以肯定自带虚拟路径(contextPath)。

2.重定向

重定向是服务器通过response,该Servlet无法解决的问题,服务器告诉浏览器,有个更牛逼的Servlet能解决你的问题,然后这个时候相当于浏览器会去重新向那个更牛逼的Servlet发送请求。所以当第一个Servlet回复浏览器的时候,就要把更牛逼的Servlet的地址说清楚,毕竟不是服务器直接访问内部资源,而是让外部的浏览器重新访问其他Servlet,所以这个时候要么用绝对地址,如:response.sendRedirect(request.getContextPath()+"/Servlet_pro"),要么使用相对地址,如:response.sendRedirect(“Servlet_pro”)。使用相对地址,相当于让浏览器再刚才访问的虚拟地址的基础之上,访问其中的Servlet_pro。

注意,如果想要重定向到不在本服务器的页面或Servlet,需要使用绝对地址,理由同上,因为在你当前的虚拟目录下,没有这个页面啊!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值