• Spring MVC 相关资料整理


    来源于:http://www.cnblogs.com/ylhssn/p/4062757.html

    1、概述

          Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。

         Spring MVC框架就是一种MVC框架。其前端控制器是DispatcherServlet主要用于控制流程;应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Resolver-视图解析器进行视图的解析;页面控制器/动作跳转处理器为Controller接口;支持本地化解析、文件上传等;提供了十分灵活的数据校验、格式化和数据绑定机制;采用约定优于配置的契约式编程方式。

          Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet的作用是截获请求并组织一系列组件共同完成请求的处理工作。

    2、Spring MVC的特点

    l  容易设计清爽干净的web层。

    l  与Spring框架集成(IOC容器、AOP等)。

    l  提供约定优于配置的契约式编程支持。

    l  更加快捷、简单的单元测试。

    l  灵活的URL到控制器的映射。

    l  支持Rest风格。

    l  ...........................

    3、Spring MVC体系结构

          Spring MVC框架也是一个基于驱动的MVC框架,通过实现Model-View-Controller模式很好的将数据、业务、展现进行分离。Spring Web MVC的设计是围绕前端控制器DispatcherServlet来展开的,DispatcherSerlvet负责将请求根据映射规则分发给相应控制器 (Controller),根据可配置的Handler mappings处理请求并转到相应的视图。Spring MVC的整体处理流程如下:

     

    图3-1 Spring MVC处理流程

     

    由上图可知,Spring MVC大致的执行流程如下:

    1、首先浏览器发送请求给前端控制器DispatcherServlet,DispatcherSerlvet根据请求信息,基于一定的原则选择合适的控制器进行处理并把 请求委托给它。

    2、页面控制器接收到请求之后进行功能处理,首先需要收集、绑定请求参数到一个对象(命令对象),并进行验证,然后将该对象委托给业务对象进行处理(service层);业务对象处理之后控制器将返回一个ModelAndView(模型数据和逻辑视图名);

     3、DispatcherServlet根据返回的逻辑视图名,选择合适的视图进行渲染(界面展示、资源加载),并把模型数据传入以便视图渲染。

    4、前端控制器将响应返回个客户端浏览器。

    4、Spring MVC版本的helloworld

    1)准备jar包

     

    2)文件结构

     

    3)web.xml

    在web.xml文件中配置DispatcherServlet,在web.xml文件中添加如下片段:

     

    4)Spring配置文件 hello-servlet.xml

    在这个文件中可以定义各种各样的Spring MVC需要使用的Bean。

    5)控制器类HelloController

     

    首先通过@Controller注解标示这个类是一个控制器,接下来通过@RequestMapping注解为制定方法sayHello处理哪些请求,在这个例子中,sayHello方法仅仅处理GET类型的/hello请求。

    sayHello方法接收一个org.springframework.ui.Model类型的参数model,SpringMVC会自动将请求参数封装进model中,我们可以简单的把model理解为一个Map。我们在方法中从model中取出参数person的值并且打印出来,接下来往 model中添加一个属性msg,值为"Hello,World!",然后返回视图名称hello。

    6)在Spring MVC配置文件中配置一个视图解析器

     

    添加了mvc名称空间,接下来启用了spring的自动扫描,并且设置了默认的注解映射支持。

    这里需要重点解释的是配置文件中的那个bean。它的类型是是Spring MVC中最常用的一种视图解析器,当然还有很多其他的类型。

     其中prefix属性是指视图前缀,suffix是视图后缀,这里配置的是.jsp,我们在控制器的方法 sayHello中返回的是hello,再结合这里的配置,对应的完整的视图是:/WEB-INF/jsp/hello.jsp。

    7)hello.jsp

     

    8)演示

     

    5、SSH:Spring MVC+Spring+hibernate

    1)准备jar包

    此处略

    2)文件结构

     

    3)web.xml

     

    配置字符集略

     

    4)spring-bean.xml


    5)spring-common.xml

     

    6)后台实现

    Dao、entity、manager包下的类实现略。

    UserController.java代码实现如下:

       

       

    7)index.jsp

     

    8)通过注解实现实体类和数据库表的绑定

    1. User Bean

     

    2、spring-common.xml


    6、Spring MVC 配置详解

     

     

    以上4个方法示例,是一个Controller里含有不同的请求url,也可以采用一个url访问,通过url参数来区分访问不同的方法

     

     其实RequestMapping在Class上,可看做是父Request请求url,而RequestMapping在方法上的可看做是子Request请求url,父子请求url最终会拼起来与页面请求url进行匹配,因此RequestMapping也可以这么写:

     

          在SpringMVC中常用的注解还有@PathVariable,@RequestParam,@PathVariable标记在方法的参数上,利用它标记的参数可以利用请求路径传值,看下面一个例子

     

    7、AJAX+JSON

    a) 页面显示

     

    b) 响应事件

     

    c) 效果演示

     

    d) 后台实现

     

    e)         所需jar包

  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/yanzi-meng/p/10401159.html
Copyright © 2020-2023  润新知