转发时使用的路径(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地址端口号,
举个例子:
作为字符串当你把他作为请求转发的参数他其实会变成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入口