SpringMVC 概述
Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一。
Spring3.0后全面超越Struts2,成为最优秀的MVC框架
SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口。
支持REST风格的URL请求
采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。
项目搭建及配置过程看之前的博客servlet及springMVC项目搭建
链接:
https://lizhongzhen11.github.io/2017/09/19/Servlet/
https://lizhongzhen11.github.io/2017/09/14/springMVC/
觉得之前的配置仅仅是根据网上步骤来的,有的文字描述的我都不大理解,这次跟着尚硅谷的视频教程再来一遍,毕竟视频讲解的话想对通俗易懂点,正好复习巩固下,避免遗忘
使用@RequestMapping映射请求
1.除了修饰方法,还可以修饰类
2.
- 类定义处:提供初步请求映射信息,相对于WEB应用的根目录
- 方发处:提供进一步的分映射信息。相对于类定义处的URL。若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录
3.DispatcherServlet截获请求后,就通过控制器上的@RequestMapping提供的映射信息确定请求所对应的处理方法。
示例:
4.@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数及请求头映射请求。
@RequestMapping的value、method、params及heads分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可以让请求映射更加精确化。
新增的代码:
params和heads支持简单的表达式(加了s说明可以同时有多个参数):
- param1:表示请求必须包含名为param1的请求参数
- !param1:表示请求不能包含名为param1的请求参数
- param1 != value1:表示请求包含名为param1的请求参数,但是值不能为value1
- {“param1=value1”, “param2”}:表示请求必须包含名为param1和param2的请求参数,并且param1参数的值必须为value1
新增的代码:
5.Ant风格资源地址支持3种匹配符:
- ?:匹配文件名中的一个字符
- *:匹配文件名中的任意字符
- **:匹配多层路径
@RequestMapping还支持Ant风格的URL:
- /user/*/createUser:
匹配/user/aaa/createUser、/user/bbb/createUser等URL - /user/**/createUser:
匹配/user/createUser、/user/aaa/bbb/createUser等URL - /user/createUser??:
匹配/user/createUseraa、/user/createUserbb等URL