如何在java web中将项目名称添加到url

时间:2017-04-18 08:47:07

标签: java spring tomcat

我使用IDEA开发了一个spring mvc应用程序。我将应用程序上下文设置为“/”,这样我就可以在不输入项目名称的情况下访问项目。但是,当我通过将.war放在tomcat / webapps下来部署它时,我必须添加项目名称来访问它。问题是我的网址设计是这样的:

JS:

$http.post('/validate', $scope.account)

控制器:

@RequestMapping(value = "/validate", method = RequestMethod.POST)

当我点击按钮时,我会得到这个:

 Request URL:http://localhost:8080/validate
 Request Method:POST
 Status Code:404 Not Found

但我希望有一个类似http://localhost:8080/ {project name} / validate的网址。我怎样才能使它工作?有没有办法自动将项目名称添加到url,以便在以不同方式部署项目时不必进行任何更改?

4 个答案:

答案 0 :(得分:0)

您可能希望使用当前上下文路径作为前缀来构建URL。 HttpServletRequest.getContextPath()

相关文件: http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#getContextPath

答案 1 :(得分:0)

如果您有application.properties(如果没有在src / main / resources下创建一个),您可以添加:

server.contextPath={project name} 

硬编码或从你的pom中获取它作为maven变量。

这样就会产生localhost:8080 / {project name} / validate。

答案 2 :(得分:0)

对于spring boot应用程序,如果您有application.properties(如果未在src / main / resources下创建一个),则可以添加:

server.servlet.context-path = / put_your_desired_pa​​th_name

示例: 如果以前的网址是http:// locahost:8080 / client / all 和server.servlet.context-path = / InvoiceSystem 然后新的网址将为http:// locahost:8080 / InvoiceSystem / client / all

相关文件: https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#server-properties

答案 3 :(得分:0)

ServerProperties.java外,我没有找到关于上下文路径的任何官方文档。

enter image description here