由于servlet 3 及之前版本只接受4种url-pattern形式,在这里需要注意:在使用SpringMVC时url-pattern设置的形式切记不要与view解析器返回的URI的形式相同,如果相同,则该URI会被dispatcher再次不会处理该,而不会使框架根据该URI找到相对应的view
1、 “/” 该形式为默认的形式,全部请求都通过该形式予以接受,例如应用名为forexample,域名为xxxx.xxxx.xxx,端口号为80,则如下形式的url都会通过该形式被捕获:
1)xxxx.xxxx.xxx:80/forexample
2) xxxx.xxxx.xxx:80/forexample/
3) xxxx.xxxx.xxx:80/forexample/*
2、 以“/”开头,并以“/*”结尾的,以上例假设,url-pattern设置为
<servlet-mapping>
<servlet-name>for-example</servlet-name>
<url-pattern>/scene2/*</url-pattern>
</servlet-mapping>
则如下形式的url将将被该配置方式被捕获:
1) xxxx.xxxx.xxx:80/forexample/scene2
2) xxxx.xxxx.xxx:80/forexample/scene2/
2) xxxx.xxxx.xxx:80/forexample/scene2/*
3、 直接以“*.”开头,以上例假设,url-pattern设置为
<servlet-mapping>
<servlet-name>for-example</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
则如下形式的url将将被该配置方式被捕获:
1) xxxx.xxxx.xxx:80/forexample/m.htm
2) xxxx.xxxx.xxx:80/forexample/.../m.htm
4、 直接将url写死的情况,以上例假设,url-pattern设置为
<servlet-mapping>
<servlet-name>for-example</servlet-name>
<url-pattern>/daa</url-pattern>
</servlet-mapping>
则只有如下形式的url将将被该配置方式被捕获:
xxxx.xxxx.xxx:80/forexample/daa
Spring框架,@RequestMapping中设置的value为除去可以在url-pattern中确定的部分所剩余的部分,
以上例假设,url-pattern设置为
<servlet-mapping>
<servlet-name>for-example</servlet-name>
<url-pattern>/scene2/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>for-example</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
则如果请求的url为 xxxx.xxxx.xxx:80/forexample/.../m.htm,则对应的@RequestMapping(“/.../m.htm”),
如果请求的url为 xxxx.xxxx.xxx:80/forexample//scene2/m.htm,则对应的@RequestMapping(“/m.htm”)