我正在尝试使用以下代码在本地计算机上找到应用程序根路径(在tomcat 6中部署)。
${pageContext.servletContext.contextPath}
在本地系统,它返回"/ProjectName" eg:- "/Hello"
。
但是,当我将相同的代码放在我的应用程序部署在生产模式的远程服务器中时,它不返回任何内容。
请帮我在生产模式下获取应用程序根路径.thnks
本地网址为lenovo:7777/BharatWellness/showallpartners.do
,生产网址为bharatwellness.com/showallpartners.do
答案 0 :(得分:4)
请查看生产URL的DNS映射,并在server.xml文件中检查DNS指向的webapps目录。
另一方面,你问 - 你只需要从jsp调用一个servlet然后你需要提供上下文路径,只需指定web.xml中为该Servlet定义的URL模式,这应该对你有用。 / p>
欢呼声
答案 1 :(得分:1)
看起来您正在试验 root 上下文路径。
在servlet容器上部署Web应用程序时,它通常具有上下文路径,完整的URL为:
scheme://host.domain/contextPath/url_inside_app
(方案为http
或https
)
但是有一个特殊的根上下文(在tomcat中它是ROOT
)允许Web应用程序具有空 servlet上下文路径。在这种情况下,完整的URL是:
scheme://host.domain/url_inside_app
和Request.getContextPath()
或${pageContext.servletContext.contextPath}
都返回一个空字符串。
但是没关系,因为当您使用
构建网址时${pageContext.servletContext.contextPath}{$localpart}
它有效。
[参考:HttpServletRequest.getContextPath()
javadoc:对于默认(根)上下文中的servlet,此方法返回“”]