看黑马程序员ssm框架
但是不懂为什么该方法要用的是/而不是/*
原因:
使用"/"
映射可以使得那些不被应用中定义的特定Servlet映射捕获的请求,回落到Tomcat(或任何其他容器)的默认Servlet处理。默认Servlet通常负责处理静态资源,如图片、CSS和JavaScript文件。这意味着,当使用"/"
作为映射时,对静态资源的请求能够被容器默认的机制处理,从而提高了静态内容的访问效率。
相反,当使用"/*"
作为Servlet映射时,所有到达应用的请求,包括对静态资源的请求,都会被指定的Servlet处理。这种情况下,静态资源的请求不会被容器的默认Servlet处理,而是需要你在自定义的Servlet中手动处理这些请求或者显式地将它们转发到默认Servlet。这通常会增加配置的复杂性,并可能影响静态资源的访问效率。
因此,"/"
映射和"/*"
映射在处理静态资源时表现出明显的不同:
"/"
:允许容器使用默认Servlet来处理静态资源,适合大多数应用,尤其是那些使用前端控制器模式的应用。"/*"
:所有请求都由自定义的Servlet处理,包括静态资源,这要求开发者在Servlet中实现对静态资源的处理逻辑,或者通过其他方式确保这些资源可以被正确处理。
/:大概理解就是如果/pages这个路径你设置了归tomcat的servlet管理,那么就归于tomcat的servlet管理
/*:全部都归于设置的servlet管理即DispatcherServlet管理。
/*配置的则是
非静态资源也会归DispatcherServlet
管理
列如:/xx.css /xx.jsp
而/配置的则是
非静态资源以外的会拦截下来归DispatcherServlet
管理
列如:/books ,/users