Reputation: 751
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>
All request are delegate to first Controller. I want to create two servlets,
localhost:8080/myapp/myrequest
localhost:8080/myapp/get/something
What patterns i must set?
Upvotes: 0
Views: 117
Reputation: 107
<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>
for this block of code you need to give the request as,
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>
for this block of code you need to give the request as,
localhost:8080/myapp/get
only
Upvotes: 0
Reputation: 279960
The pattern
<url-pattern>/get/</url-pattern>
handles only requests to
.../get/
it won't handle
.../get/something/else
It looks for an exact match.
The pattern
<url-pattern>/</url-pattern>
is special and matches everything that hasn't been matched.
In other words, if you want the second servlet to match everything starting with /get
, change it to
<url-pattern>/get/*</url-pattern>
In my opinion, this doesn't make much sense as a DispatcherServlet
should be the single point of entry into an app. You should instead modify your controllers appropriately.
Upvotes: 3