在用于映射的servlet中,我使用@WebServlet("/path")
这意味着,我可以在表单的动作"/path"
中编写,按钮单击将由我的servlet处理。
在spring mvc中,我将控制器的方法映射为
@RequestMapping("/path")
这意味着,我必须在表单的动作"/webAppName/path"
中编写,按钮点击将由我的方法处理。但是,如果我的war文件的名称将被更改,我必须更改html / jsp上的映射。我认为非常糟糕。
你能帮帮我吗?
答案 0 :(得分:1)
首先,你是绝对错误的。其次,你提到的战争档案名称,实际上是与战争名称无关的上下文路径。
服务器使用上下文路径来引用在其上运行的webapp。您的服务器上可能部署了多个应用程序,因此服务器可以确定哪个请求与哪个Web应用程序上下文路径相关。
Web应用程序的上下文路径,它与每个请求URI的开头相匹配,以选择适当的Web应用程序进行处理。特定主机中的所有上下文路径必须是唯一的。如果指定空字符串(“”)的上下文路径,则为该主机定义默认Web应用程序,该应用程序将处理未分配给其他上下文的所有请求。
除非在server.xml中静态定义Context,否则不得设置此字段的值,因为它将从用于.xml上下文文件或docBase的文件名中推断出来。
而且,它与应用程序的体系结构无关,它与Spring MVC或Java Dyanamic Web Application同样适用。