我的 DispatcherServlet:
<servlet>
<servlet-name>users</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>users</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>get</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>get</servlet-name>
<url-pattern>/get/</url-pattern>
</servlet-mapping>
所有请求都委托(delegate)给第一个 Controller 。我想创建两个 servlet,
- 请求类似于
localhost:8080/myapp/myrequest
- 请求类似于
localhost:8080/myapp/get/something
我必须设置什么模式?
最佳答案
模式
<url-pattern>/get/</url-pattern>
仅处理请求
.../get/
无法处理
.../get/something/else
它会寻找完全匹配的内容。
模式
<url-pattern>/</url-pattern>
很特殊,匹配所有未匹配的内容。
换句话说,如果您希望第二个 servlet 匹配以 /get
开头的所有内容,请将其更改为
<url-pattern>/get/*</url-pattern>
在我看来,这没有多大意义,因为 DispatcherServlet
应该是应用程序的单一入口点。您应该适本地修改您的 Controller 。
关于java - Servlet 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206234/