zoukankan      html  css  js  c++  java
  • 深入浅出 SpringMVC 1

     原创播客,如需转载请注明出处。原文地址:http://www.cnblogs.com/crawl/p/7690973.html  

    前言:

      本篇笔记是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 下的日志包

    2.配置 web.xml 文件 Alt + / 选择 dispatcherservlet

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

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

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

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

    二、@RequestMapping 映射请求

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

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

    2. @RequestMapping 的 value method 属性

    value 属性:指定映射的 URL

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

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

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

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

     

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

     

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

     

    三、REST 

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

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

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

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

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

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

     

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

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

     

    2.具体获取:

    五、@RequestHeader 注解 (了解)

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

    2. 使用

    六、@CookieValue 注解 (了解)

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

    2.使用

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

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

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

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

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

    九、处理模型数据

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

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

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

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

    2)演示;

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

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

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

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

    4)结论,需要记住

    5)补充

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

    1、 InternalResourceViewResolver 视图解析流程

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

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

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

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

     

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

     

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

    测试:在 url 中输入:http://localhost:8888/springmvc-1/success (LZ 将 Tomcat 的端口号修改为了 8888)

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

    4、 自定义视图

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

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

    3)测试:

    5、重定向到目标页面

     

    十一、SpringMVC 的 CRUD 小案例

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

    2.注意点:

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

    jsp 页面:

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

    请求处理器类中:

    2)SpringMVC 处理静态资源文件

     

    解决:

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

    GET 请求:

    GET ---> POST:

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

    -------------------------------------------------- Written by crawl~ Crawling on the way of programming. -------------------------------------------
  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/crawl/p/7690973.html
Copyright © 2011-2022 走看看