getServletContext.getContextPath()和request.getContextPath()可能不同吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getServletContext.getContextPath()和request.getContextPath()可能不同吗?相关的知识,希望对你有一定的参考价值。

我不知道当getServletContext.getContextPath()request.getContextPath()返回不同的字符串时的情况。

[HttpServletRequest.getContextpath() javadoc:

在这种情况下,此方法将返回请求使用的实际上下文路径 并且可能与ServletContext.getContextPath()方法返回的路径。的ServletContext.getContextPath()返回的上下文路径应为被视为应用程序的主要或首选上下文路径。

[ServletContext.getContextPath() javadoc:

[[servlet容器可能通过多个上下文路径匹配上下文。在这种情况下,HttpServletRequest.getContextPath()将返回

实际上下文请求使用的路径[>,并且可能与返回的路径不同此方法

。此方法返回的上下文路径应为被视为应用程序的主要或首选上下文路径。当我的应用程序位于Tomcat的webapps/ROOT文件夹中时,两个方法都返回“”(空字符串)。 [在所有其他情况下,如果我的应用程序位于myapp.war中(放入Tomcat的webapps文件夹中,则这两个方法均按预期返回“ / myapp”。 [当我将my.warmymy.war放入Tomcat的webapps文件夹时,Tomcat看到了两个不同的Web应用程序,因此我无法对此

“ servlet容器可能通过多个上下文路径与上下文匹配的情况进行建模]]]。 >

我无法将我的WAR称为my.warmy/my.war,因为Windows和Unix上的文件名均不允许使用“ /”。

我无法弄清楚getServletContext.getContextPath()和request.getContextPath()返回不同的字符串的情况。 HttpServletRequest.getContextpath()javadoc:...

答案

Tomcat: two context paths for one webapp

以上是关于getServletContext.getContextPath()和request.getContextPath()可能不同吗?的主要内容,如果未能解决你的问题,请参考以下文章