【问题标题】:Context path is not setting in tomcat 5上下文路径未在 tomcat 5 中设置
【发布时间】:2024-05-23 06:05:01
【问题描述】:

我们在 tomcat 5.5 中部署的一个项目。我们的代码不是战争文件。部署为 jar。 而且我们没有直接部署在 webapps 下。我们创建了新文件夹并将所有内容放在那里。 我们在上下文标签下的 server.xml 中配置了该路径

<code>
< Context path="/ABC" docBase="/app/apache-tomcat-5.5.26/webapps/ABC/"
                 debug="1" reloadable="true" crossContext="true">

  < /Context>
</code> 

问题是。 我们能够登陆主页,但图像未加载且所有链接均无效 主页链接; //ip:port/ABC/home.jsp

当我们单击任何链接时,上下文路径将被删除,如下所示 其中一个链接://ip:port/firstlink.jsp

请帮我配置上下文路径

提前致谢

【问题讨论】:

  • 链接是如何生成的?他们是亲戚吗?或者绝对像&lt;a href="/home.jsp"&gt;。一些示例代码可能会有所帮助。

标签: java linux tomcat tomcat5.5


【解决方案1】:

您的链接 &lt;a href="/home.jsp"&gt; 对您的域来说是绝对的,您需要在 URL 中包含上下文。要获取当前上下文,请使用request.getContextPath

getContextPath

字符串 getContextPath()

返回请求 URI 中指示上下文的部分 请求。上下文路径始终位于请求 URI 的首位。 路径以“/”字符开头,但不以“/”结尾 特点。对于默认(根)上下文中的 servlet,此方法 返回“”。

...

返回: 一个字符串,指定请求 URI 中指示请求上下文的部分

HttpServletRequest#getContextPath()

您可以在 JSP 中使用${pageContext.request.contextPath} 检索此值。您的链接应该是:

<a href="${pageContext.request.contextPath}/home.jsp">Home</a>

【讨论】:

  • 感谢您的回复。实际上我删除了上下文标签中的 /ABC 。之后,我们可以导航到其作品的所有页面,但问题是图像、javascripts 和 css 根本没有加载。但我们只放在 ABC 下的每个文件夹。当我们直接尝试访问如下 /ip:host/css/menuscrip.css 的脚本或 css 文件时。它抛出 404 expextion。但是我们可以访问页面 /ip:port/home.jsp 一些不同的页面 /ip:port/search/simpleSearch.jsp 为什么脚本、图像和 css 没有加载?请提出原因提前谢谢