你的位置:首页 > 软件开发 > Java > 深入浅出 SpringMVC

深入浅出 SpringMVC

发布时间:2017-10-19 11:00:08
前言:  本篇笔记是LZ在之前学习 SpringMVC 框架时所的记录,分两篇分享,此篇为基础篇,包括 SpringMVC 环境在 Eclipse 中的搭建,SpringMVC 的 HelloWorld,常用注解:@RequestMapping、@PathVariable、@Re ...

深入浅出 SpringMVC

前言:

  本篇笔记是LZ在之前学习 SpringMVC 框架时所的记录,分两篇分享,此篇为基础篇,包括 SpringMVC 环境在 Eclipse 中的搭建,SpringMVC 的 HelloWorld,常用注解:@RequestMapping、@PathVariable、@RequestParam、 @SessionAttributes、@ModelAttribute等,REST 风格的 URL 的使用、使用 POJO 对象绑定请求的参数、在 SpringMVC 的处理器的方法中使用原生的 Servlet 的 API、处理模型数据、@ModelAttribute 的源码分析、SpringMVC 的视图解析器及其流程的分析,最后还有一个 SpringMVC 的 CRUD 小案例。

  笔记中提供了大量的代码示例,需要说明的是,大部分代码示例都是以图片的形式展示的,所有的图片都是来自本人所敲代码的截图,不足之处,请大家指正~

 一、SpringMVC 的 HelloWorld 

1.加入 jar 包  spring-framework-4.0.0.RELEASE\libs 下的 spring 基本 jar 包和 apache-commons\commons-logging-1.1.1 下的日志包

深入浅出 SpringMVC

2.配置 web.Alt + / 选择 dispatcherservlet

深入浅出 SpringMVC

注:实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件,而是使用默认的,默认的配置文件的路径和名字为:/WEB-INF/<servlet-name>-servlet. 其中 <servlet-name> 为 web.

3.类路径下新建 Spring 的配置文件 springmvc. 选择 beans  context  mvc 约束

4.编写请求处理器类,在 springmvc.配置自动扫描的包,并为处理器类添加处理器标志注解

深入浅出 SpringMVC

深入浅出 SpringMVC

4.编写视图:index.jsp;在请求处理器类中通过 @RequestMapping(xxx) 的方式来映射请求的 URL;在 springmvc.配置视图解析器

深入浅出 SpringMVC

深入浅出 SpringMVC

深入浅出 SpringMVC

二、@RequestMapping 映射请求

1.@RequestMapping 既可以修饰类又可以修饰方法

深入浅出 SpringMVC

若在类上使用了 @RequestMapping("/springmvc"),则对应 view  层的请求为:

深入浅出 SpringMVC

2. @RequestMapping 的 value method 属性

① value 属性:指定映射的 URL

② method 属性: 指定映射的请求方式

深入浅出 SpringMVC

深入浅出 SpringMVC

3. @RequestMapping 的 params 和 headers 属性 (了解即可,不常用)

① params 属性:指定映射的请求参数

② headers 属性: 指定映射的请求头

 深入浅出 SpringMVC

深入浅出 SpringMVC

4. @RequestMapping 的 Ant 风格的路径,即使用通配符 (了解即可)

 深入浅出 SpringMVC

深入浅出 SpringMVC

5. 补充: @PathVariable(xxx) 注解可以来映射 URL 中的占位符到目标方法的参数中

 深入浅出 SpringMVC

深入浅出 SpringMVC

三、REST 

1.简介:即Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用

2.HTTP协议里面,四个表示操作方式的动 词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源

3.以 CRUD 为例,演示 REST 风格 URL 的使用

1)在 web.HiddenHttpMethodFilter 过滤器,此过滤器可以将 POST 请求转换为 DELETE 或 PUT 请求

深入浅出 SpringMVC

2)在 jsp 页面中模拟发送 GET POST DELETE PUT 请求

深入浅出 SpringMVC

3) 在请求处理器类中编写 GET POST DELETE PUT 请求各自对应的方法,通过 @PathVariable 注解获取请求的参数,即 id

 深入浅出 SpringMVC

四、 @RequestParam 注解 (重要,常用) 

1.@RequestParam 注解可以在请求方法中获取请求的参数

 深入浅出 SpringMVC

2.具体获取:

深入浅出 SpringMVC

五、@RequestHeader 注解 (了解)

1. 在请求方法中映射(获取)请求头的信息

2. 使用

深入浅出 SpringMVC

深入浅出 SpringMVC

六、@CookieValue 注解 (了解)

1.根据 Cookie 的 key 获取 Cookie 的 value

2.使用

深入浅出 SpringMVC

深入浅出 SpringMVC

七、使用 POJO 对象绑定请求的参数  (POJO:普通的 Java 类) (常用)

1.构建 User 类和 Address 类,其中 User 类中包含 Address 对象

2.在 view 层构建表单 (index.jsp 中)

深入浅出 SpringMVC

3.在请求控制器类中编写请求方法

深入浅出 SpringMVC

八、在处理器的方法中使用原生的 Servlet 的 API (常用)

深入浅出 SpringMVC

深入浅出 SpringMVC

九、处理模型数据

1. ModelAndView 作为处理器方法的返回值

深入浅出 SpringMVC

深入浅出 SpringMVC

深入浅出 SpringMVC

2. 向目标方法添加 Map 类型的参数

深入浅出 SpringMVC

深入浅出 SpringMVC

深入浅出 SpringMVC

3. @SessionAttributes 注解 (常用) 注:此注解只能放在类上,不能放在方法上

1)作用:① 通过属性名指定需要放到会话中的属性(使用 @SessionAttributes 注解的 value 属性)  ② 通过模型属性的对象类型指定哪些模型属性需要放到会话中(使用 @SessionAttributes 的 types 属性)

2)演示;

深入浅出 SpringMVC

深入浅出 SpringMVC

4. @ModelAttribute 注解 (类似于 Struts2 中的 Preparable)

1)应用场景:只对一个对象的部分属性进行修改,而不需要修改的属性需要保持原样不能为 null

2)具体使用及注意事项:

深入浅出 SpringMVC

3)使用 @ModelAttribute 注解在 SpringMVC 中的源码分析 (了解)

深入浅出 SpringMVC

4)结论,需要记住

深入浅出 SpringMVC

5)补充

深入浅出 SpringMVC

十、视图解析器及其流程的分析  (默认使用的是 InternalResourceView 视图解析器)

1、 InternalResourceViewResolver 视图解析流程

深入浅出 SpringMVC

2.、 JstlView 视图解析器 (若项目中使用了 JSTL,则 SpringMVC 会自动把视图由 InternalResourceView转为 JstlView

使用 JSTL 的 fmt 标签模拟国际化:

1)新建三个国际化资源文件

深入浅出 SpringMVC

深入浅出 SpringMVC

深入浅出 SpringMVC

2)在 jsp 页面中引入 jstl,使用 fmt 标签

 深入浅出 SpringMVC

深入浅出 SpringMVC

3)在 SpringMVC 的配置文件中配置国际化资源文件

 深入浅出 SpringMVC

3、mvc:view-controller 标签:配置直接转发的页面,配置的路径可以直接响转发的页面,而无需再经过 Handler 的目标方法

深入浅出 SpringMVC

测试:在 url 中输入 将 Tomcat 的端口号修改为了 8888)

注:使用此注解必须配置另一个注解:mvc:annotation-driven

深入浅出 SpringMVC

4、 自定义视图

1)创建视图类,实现 View 接口,实现两个方法

深入浅出 SpringMVC

2)SpringMVC 配置文件中配置 BeanNameViewResolver 视图解析器

深入浅出 SpringMVC

3)测试:

深入浅出 SpringMVC

深入浅出 SpringMVC

5、重定向到目标页面

 深入浅出 SpringMVC

深入浅出 SpringMVC

十一、SpringMVC 的 CRUD 小案例

1.按照之前的步骤搭建 SpringMVC 的环境

2.注意点:

1)在 jsp 页面中使用 SpringMVC 的 form 表单标签:

jsp 页面:

深入浅出 SpringMVC

深入浅出 SpringMVC

更正:上图中应该是 form:radiobuttons 而不是 form:checkboxes

请求处理器类中:

深入浅出 SpringMVC

2)SpringMVC 处理静态资源文件

 深入浅出 SpringMVC

解决:

深入浅出 SpringMVC

3)如何将 GET 请求转换为 POST 请求,再转化为 DELETE 请求

GET 请求:

深入浅出 SpringMVC

GET ---> POST:

深入浅出 SpringMVC

4)关于 _method ,将 POST 请求转为 PUT 或 DELETE 请求

深入浅出 SpringMVC

 

原标题:深入浅出 SpringMVC

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录