转发和重定向的url路径到底怎么算

转发时使用的路径(forward)

简单概括,转发时使用的路径,是把你的URL字符串("/xxx/xxx/xx")中的"/"解释成你当前web应用的url入口加上IP地址端口号

这个web应用url入口你可以按照以下的步骤得到:

 

 

 看到这里你应该明白了,所谓web应用的url入口,其实就是应用程序上下文,

而应用程序上下文则是tomcat的context.xml配置文件中<context>元素的path属性,只不过idea集成开发自动按照你在上图输入框填写的内容帮你在context.xml配置好了.关于context的详细解释可以参考我的博文JavaWeb中servletContext路径到底在哪里(idea集成开发环境下)_痛!太痛了!!!耶稣尔德,你为何!?的博客-CSDN博客servletContext路径到底指哪里,如何通过代码获得这个路径https://blog.csdn.net/m0_60358315/article/details/123487337?spm=1001.2014.3001.5502

重定向时候使用的路径(redirect)

重定向时候使用的路径其实是将url字符串中的第一个"/"解析成一个普通的分隔符加上IP地址端口号,

举个例子:

同样的一个/static/jsp/login.jsp

作为字符串当你把他作为请求转发的参数他其实会变成http://localhost:8080/MyBlog/static/jsp/login.jsp

其中/MyBlog是我的web应用url入口

而如果是请求重定向这个字符串就会被解析成

http://localhost:8080/static/jsp/login.jsp

仔细观察就会发现区别.

为什么两者不遵从一致的url映射规范呢?

这是因为一个tomcat虚拟主机上可能运行多个web应用程序,web应用和tomcat虚拟主机之间是多对一的关系

请求的转发只能在同一个应用内进行,所以请求转发的url规则会直接将"/"解释为你当前的web应用url入口

当主机上一个web应用某些原因暂时停用时,我们希望可以将请求在应用之间进行发送,

所以重定向的url规则不把"/"解释成具体的某个web应用,而是根据你的需求,自己添加你希望转发的web应用url入口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值