我不确定如何设置上下文路径.
当我在autodeploy中重命名tomcat中的.war文件时,网页会按预期转到localhost:8080 / newDirectory,但是出于某种原因,在基于Spring的页面中调用pageContext.request.contextPath时,它仍会返回旧的上下文路径.
我试图通过设置覆盖上下文路径:
在server.xml中,但它不起作用.
我的问题是,Spring从哪里读取它的上下文路径?我用了Maven,我确实看到了
在pom.xml中,这是否意味着我需要将artifactId重命名为newDirectory?
我还尝试添加< context path =“/ newDirectory”...>在/Meta-INF/context.xml中(由于我的server.xml更改,现在我知道它将被忽略).
提前感谢您的回答.
最佳答案
每个PageRequest都将获取当前的HttpServletRequest对象并获取当前请求的上下文路径并附加您的.jsp(即使在更改时访问此资源的上下文路径,它也会起作用).
例如,
如果你有一个war文件作为MyCompany.war并且有一个带有${pageContext.request.contextPath} /MyJspPage.jsp的页面.
Then your context path is http://abc/MyCompany and it works as http://abc/MyCompany/MyJspPage.jsp.
假设您将war文件更改为OurCompany.war,
then your context path changes to http://abc/OurCompany and Jsp will work as http://abc/OurCompany/MyJspPage.jsp.
这意味着上下文路径将自动更改为应用程序的名称(War文件名),而不会发生任何更改.
在您的情况下,在使用newDirectory重命名war文件名后,您的Web服务器将部署newDirectory应用程序,但Web服务器中仍然存在newDirectory应用程序.我认为您应该从webapp删除旧应用程序,然后通过重新加载newDirectory应用程序进行检查.