可能是重复问题:
Servlet映射/ vs /*
servlet url映射中'/'和'/*'有什么不同?
我正在阅读《Spring实战》这本书,并发现了这些词:
根据上述文字,似乎'/'和'/*'都可以处理所有请求。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.
它们有什么区别?
/
)和everything/*
之间的确切区别是什么? - hguser