1.SpringMVC 概述
Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性
2.SpringMVC之HelloWorld
步骤:
– 加入 jar 包
– 在 web.xml 中配置 DispatcherServlet
– 加入 Spring MVC 的配置文件
– 编写处理请求的处理器,并标识为处理器
– 编写视图
?jar 包: –commons-logging-1.1.3.jar –spring-aop-4.0.0.RELEASE.jar –spring-beans-4.0.0.RELEASE.jar –spring-context-4.0.0.RELEASE.jar –spring-core-4.0.0.RELEASE.jar –spring-expression-4.0.0.RELEASE.jar –spring-web-4.0.0.RELEASE.jar –spring-webmvc-4.0.0.RELEASE.jar web.xml文件:
?配置 DispatcherServlet :DispatcherServlet 默认加载 /WEB- INF/<servletName-servlet>.xml 的 Spring 配置文件, 启动 WEB 层 的 Spring 容器。可以通过 contextConfigLocation 初始化参数自定 义配置文件的位置和名称
? 配置自动扫描的包
? 配置视图解析器:视图名称解析器:将视图逻辑名解析为: /WEB-INF/pages/<viewName>.jsp
3.使用 @RequestMapping 映射请求
?Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求
?在控制器的类定义及方法定义处都可标注 @RequestMapping – 类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录
– 方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若 类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于 WEB 应用的根目录
?DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。 映射请求参数、请求方法或请求头
[email protected] 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求
[email protected] 的 value、method、params 及 heads 分别表示请求 URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射 更加精确化。
?params 和 headers支持简单的表达式:
– param1: 表示请求必须包含名为 param1 的请求参数
– !param1: 表示请求不能包含名为 param1 的请求参数
– param1 != value1: 表示请求包含名为 param1 的请求参数,但其值 不能为 value1
–{“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1! 使用 @RequestMapping 映射请求
? Ant 风格资源地址支持 3 种匹配符:
– ?:匹配文件名中的一个字符
– *:匹配文件名中的任意字符
– **:** 匹配多层路径
[email protected] 还支持 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 @PathVariable 映射 URL 绑定的占位符
?带占位符的 URL 是 Spring3.0 新增的功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的 意义
?通过 @PathVariable 可以将 URL 中占位符参数绑定到控 制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
@PathVariable("xxx") 绑定到操作方法的入参中,需要注意的是:该注解的value属性值要与占位符保持一致。
4.REST:
即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。
它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用.
HTTP 协议里面,四个表示操作方式的动 词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:
GET 用来获 取资源,
POST 用来新建资源,
PUT 用来更新资源,
DELETE 用来删除资源。
示例: –/order/1 HTTP GET :得到 id = 1 的 order
–/order/1 HTTP DELETE:删除 id = 1的 order
–/order/1 HTTP PUT:更新id = 1的 order
–/order HTTP POST:新增 order
?HiddenHttpMethodFilter:浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支 持,Spring3.0 添加了一个过滤器,可以将这些请求转换 为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。