• 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包

  • 相关阅读:
    php获取http请求原文
    windows下安装MongoDB服务
    微服务RESTful 接口设计规范
    mysql主从复制原理及步骤
    nodejs主要框架
    redis事务机制和分布式锁
    计算机专业学生一定要学好这几门课
    redis常见7种使用场景
    js类型判断
    SQL语句:case when then的用法
  • 原文地址:https://www.cnblogs.com/ys-wuhan/p/6029587.html
Copyright © 2020-2023  润新知