My DispatcherServlets:
<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>
所有请求都委托给第一个Controller。我想创建两个servlet,
localhost:8080/myapp/myrequest
localhost:8080/myapp/get/something
我必须设置哪些模式?
答案 0 :(得分:3)
模式
<url-pattern>/get/</url-pattern>
仅处理对
的请求.../get/
它不会处理
.../get/something/else
它寻找完全匹配。
模式
<url-pattern>/</url-pattern>
是特殊的,匹配未匹配的所有内容。
换句话说,如果您希望第二个servlet匹配以/get
开头的所有内容,请将其更改为
<url-pattern>/get/*</url-pattern>
在我看来,这并没有多大意义,因为DispatcherServlet
应该是进入应用程序的单一点。您应该适当地修改控制器。
答案 1 :(得分:0)
<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>
对于此代码块,您需要将请求作为,
localhost:8080/myapp/myrequest<br>
localhost:8080/myapp/orWhatever
<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>
对于这段代码,您需要将请求作为,
localhost:8080/myapp/get
只有