Possible Duplicate:
Servlet mapping / vs /*
What is the difference of '/' and '/*' in servlet url mapping?
Since I am reading the book spring in action,and I found these words:
Next we must indicate what URLs will be handled by the DispatcherServlet. It’s common to find DispatcherServlet mapped to URL patterns such as .htm, /, or /app. But these URL patterns have a few problems:
- The *.htm pattern implies that the response will always be in HTML form (which, as we’ll learn in chapter 11, isn’t necessarily the case).
- Mapping it to /* doesn’t imply any specify type of response, but indicates that DispatcherServlet will serve all requests. That makes serving static content such as images and stylesheets more difficult than necessary.
- The /app pattern (or something similar) helps us distinguish Dispatcher-Servlet-served content from other types of content. But then we have an implementation detail (specifically, the /app path) exposed in our URLs. That leads to complicated URL rewriting tactics to hide the /app path.
Rather than use any of those flawed servlet-mapping schemes, I prefer mapping DispatcherServlet like this:
<servlet-mapping> <servlet-name>spitter</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
By mapping DispatcherServlet to /, I’m saying that it’s the default servlet and that it’ll be responsible for handling all requests, including requests for static content.
According the above words, it seems that both '/' and '/*' will server all the request.
What is the difference?