在Spring MVC中,url-pattern是一个非常重要的配置项,它用于指定控制器类和方法之间的映射关系,本文将详细介绍Spring MVC中url-pattern的写法。
1、基本概念
在Spring MVC中,url-pattern是用来匹配请求路径的,它可以是一个字符串,也可以是一个正则表达式,当一个请求到达DispatcherServlet时,它会遍历所有的HandlerMapping,找到与请求路径匹配的HandlerMapping,然后将请求交给对应的Controller进行处理。
2、url-pattern的写法
在Spring MVC中,url-pattern有两种写法:一种是使用Ant风格的路径,另一种是使用regex风格的路径。
2、1 Ant风格的路径
Ant风格的路径是以“/”为分隔符的路径,
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <multipart-config> <location>/tmp</location> <max-file-size>5242880</max-file-size> <max-request-size>5242880</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
在这个例子中,url-pattern为“/”,表示所有请求都会被DispatcherServlet处理,当然,你也可以指定具体的路径,
<servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
这个例子中,只有以“/hello”开头的请求才会被DispatcherServlet处理。
2、2 regex风格的路径
regex风格的路径是以“*”为通配符的路径,
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <multipart-config> <location>/tmp</location> <max-file-size>5242880</max-file-size> <max-request-size>5242880</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/*.html</url-pattern> </servlet-mapping>
在这个例子中,url-pattern为“/*.html”,表示所有以“.html”结尾的请求都会被DispatcherServlet处理,当然,你也可以指定具体的路径,
<servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/user/*</url-pattern> </servlet-mapping>
这个例子中,只有以“/user/”开头的请求才会被DispatcherServlet处理,需要注意的是,regex风格的路径不支持“/”字符作为路径的一部分,如果你需要匹配以“/”开头的路径,你需要使用Ant风格的路径。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/338137.html