我最近使用的是春季3。 我想使用REST。 问题是,我想使用许多不同的路径。如通知/ *,用户/ *等。 我知道如何配置一个。
<servlet>
<servlet-name>notice</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>notice</servlet-name>
<url-pattern>/notice/*</url-pattern>
</servlet-mapping>
所以,如果我想在web.xml中添加/ user / *,我该怎么办?如何配置? 感谢
答案 0 :(得分:5)
只需在web.xml中为用户servlet创建新的servlet
和servlet-mapping
元素:
<!-- notice servlet and servlet-mapping ... -->
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
然后创建所需的user-servlet.xml Spring配置文件并将其放在与现有notice-servlet.xml相同的位置,以便用户DispatcherServlet可以加载其配置。
答案 1 :(得分:3)
你真的想拥有几个调度程序servlet吗?我建议将调度程序映射到/
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然后在您的控制器中,您将映射到不同的“子网址”。例如@RequestMapping(value =“/ users”,method = RequestMethod.GET)来映射您的用户。 reference manual很好地解释了如何映射网址。
答案 2 :(得分:0)
不建议拥有多个servlet。一旦创建的servlet将不会消失,并且将保留在内存中,直到重新启动应用程序。这将导致已完成其目的的servlet使用内存。
因此,建议仅使用一个称为前端控制器的servlet。它应该控制所有请求。有关其他网址,请使用NA的答案中提到的@RequestMapping映射它们。