SpringMVC中url-pattern /和/* 的区别

	<servlet>
		<servlet-name>springmvc-servlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:applicationContext.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Map all requests to the DispatcherServlet for handling -->
	<servlet-mapping>
		<servlet-name>springmvc-servlet</servlet-name>
		<url-pattern>/</url-pattern>
       <-- <url-pattern>/*</url-pattern>  -->
	</servlet-mapping>

/ 会拦截所有的请求(不包含.jsp)

/* 会拦截所有的请求(包含.jsp)

原因:

在tomcat容器的web.xml中,已经默认配置 <url-pattern>/</url-pattern>和 <url-pattern>*.jsp</url-pattern>

如果我们对自己的项目中的web.xml进行配置<url-pattern>/</url-pattern>,则会使得原本tomcat的配置被覆盖,从而造成我们访问(.html,.js.png)等静态文件出现异常,而jsp页面之所以还能正常访问,则是因为tomcat对.jsp进行了精确配置,

所以我们使用<url-pattern>/</url-pattern>并不影响我们j对sp页面的访问,所以在日常的springmvc的web.xml配置中,使用/*是十分愚蠢的行为,使用/进行开发的话是为了迎合rest模式开发,所以正常行为下,我们都会配置精确的访问*.action

rest介绍:https://blog.csdn.net/qq_21383435/article/details/80032375

猜你喜欢

转载自blog.csdn.net/Chen_RuiMin/article/details/88884354