Spring mvc SpringMVC URL映射
今天,我已经成功地在AmazonEC2上部署了我的TomcatWar。 在我的本地机器上,下面的链接:localhost:8080/login完全正常 但在我的EC2实例中,链接中始终必须有.war名称: 现在,我正在努力在我的Spring MVC项目中添加“/战争名称/”的方式和地点 它是否在水里Spring mvc SpringMVC URL映射,spring-mvc,url-mapping,Spring Mvc,Url Mapping,今天,我已经成功地在AmazonEC2上部署了我的TomcatWar。 在我的本地机器上,下面的链接:localhost:8080/login完全正常 但在我的EC2实例中,链接中始终必须有.war名称: 现在,我正在努力在我的Spring MVC项目中添加“/战争名称/”的方式和地点 它是否在水里 web.xml 观点 控制器 使用下面的代码,我可以通过以下链接访问登录: 本地主机:8080/登录 但我希望是这样 localhost:8080/某些战争名称/登录 我尝试将/some wa
- web.xml
- 观点
- 控制器
登录验证
${errorMessage}
贝努特泽名称
密码
My web.xml
待办事项清单
调度员
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/todo-servlet.xml
1.
调度员
/
我的登录控制器
package com.mschm.login;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.ui.ModelMap;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入org.springframework.web.bind.annotation.RequestParam;
导入org.springframework.web.bind.annotation.SessionAttributes;
导入com.mschm.login.LoginService;
@控制器
@会期贡献(“名称”)
公共类登录控制器{
@自动连线
后勤服务;
@RequestMapping(value=“/login”,method=RequestMethod.GET)
公共字符串showLoginPage(){
返回“登录”;
}
@RequestMapping(value=“/login”,method=RequestMethod.POST)
公共字符串handleLoginRequest(@RequestParam字符串名称,@RequestParam字符串密码,ModelMap模型){
if(!service.validateUser(名称、密码)){
model.put(“错误消息”,“无效凭据”);
返回“登录”;
}否则{
型号。放置(“名称”,名称);
型号。输入(“密码”,密码);
返回“欢迎”;
}
}
}
那个“/战争名称/”
被称为应用程序的上下文路径
您需要将tomcat
配置为在您的案例中使用空上下文路径有几种方法可以实现这一点
其中之一是将以下内容添加到$CATALINA_BASE/conf/server.xml
:
<Host name="your.host.name" >
<Context path="" docBase="/path/to/the-war-name.war"/>
</Host>
进一步阅读:
那个“/战争名称/”
被称为应用程序的上下文路径
您需要将tomcat
配置为在您的案例中使用空上下文路径有几种方法可以实现这一点
其中之一是将以下内容添加到$CATALINA_BASE/conf/server.xml
:
<Host name="your.host.name" >
<Context path="" docBase="/path/to/the-war-name.war"/>
</Host>
进一步阅读:
欢迎!这让您很困惑,但我认为您希望在本地主机上添加war名称。如果是这样,请将其添加到web.xmlHi中的这一行/
,好的,我尝试使用我的localhost链接再次解释它,现在使用上面显示的代码,我可以使用“/login”:localhost:8080/login访问我的login.jsp,我必须更改什么,要使用以下url访问链接:localhost:8080/foobar/login如果您将/
更改为/foobar
,您应该会得到该链接。遗憾的是,当我这样做时,我得到一个404错误:HTTP Status 404-/foobar/login type Status report message/foobar/login description请求的资源不可用。我是否也必须将目录更改为WEB-INF/views/foobar?欢迎!这让您很困惑,但我认为您希望在本地主机上添加war名称。如果是这样,请将其添加到web.xmlHi中的这一行/
,好的,我尝试使用我的localhost链接再次解释它,现在使用上面显示的代码,我可以使用“/login”:localhost:8080/login访问我的login.jsp,我必须更改什么,要使用以下url访问链接:localhost:8080/foobar/login如果您将/
更改为/foobar
,您应该会得到该链接。遗憾的是,当我这样做时,我得到一个404错误:HTTP Status 404-/foobar/login type Status report message/foobar/login description请求的资源不可用。我是否还必须将目录更改为WEB-INF/views/foobar?