• Spring MVC起步


     

    第1章 MVC简介

    MVC的演进,概念及优点
    1-1 Spring MVC起步课程简介

     1-2 前端控制器

    MVC不仅仅是java社区所独有的概念,早在java诞生之前的SmallTalk以及Python之中都有MVC的概念。

    MVC实际上是一种我们开发web应用程序的通用架构方式。

    前端控制器(Front Controller)

     

     1-3 MVC概念

    Controller和视图之间并不耦合,它们之间可以没有任何联系,但是因为Controller需要根据页面的要求产生合适的数据,而我们的页面呈现又不能脱离业务逻辑凭空展开,一定是基于我们的业务逻辑,所以他们之间是既独立,又协同的。

    例:前端页面开发

          后端逻辑开发

    第2章 Spring MVC中的基本概念

    抽茧剥丝,将Spring MVC中重要类及作用做概要说明
    2-1 Spring MVC的静态概念

    Spring MVC作为一种前端控制器的实现形式,DispatcherServlet就是它的前端控制器

    MVC将我们的数据业务逻辑和我们页面实现的分离其实核心就是通过DispatcherServlet实现的。

    Controller:它就是调用业务逻辑生成Model的地方。

    Handler是在DispatcherServlet内部使用的类,它其实就是Controller的表现形式。

    在我们的DispatcherServlet当中其实最终调用的Controller是以Handler形式出现的。

    HandlerAdapter适配器模式,就是将各种不同类型的Handler适配成我们DispatcherServlet可以使用的Handler。

    这样,我们的DispatcherServlet就可以很轻松的去调用我们的控制器。

    Handler是DispatcherServlet调用Ctroller的一种中间过渡对象。

    Interceptor(拦截器)

    Mapping,前端控制器DispatcherServlet与Ctroller之间映射关系的一种类。

    HandlerMapping的作用:就是告诉我们的DispatcherServlet这个请求到来之后由哪一个Ctroller来响应我们这个请求。

     在我们HandlerMapping工作完毕之后,它可以给我们的DispacherSevlet一个HandlerAdaptor,这个HandlerAdaptor里面就包括了核心的内容是某个具体的Ctroller实例

    第二方面就是这个Ctroller需要包裹的HandlerInterceptor,它们会构成一个执行的链条往下走。

      ModelAndView:Model的具体表现

     ViewResolver(视图解析器),它会告诉DispacherSevlet你需要用哪一个视图来进行视图的呈现(哪个视图是用来解析当前这种场景的)。因此,它的作用就是根据我们的配置找出那一个我们需要的视图对象,比如我们的JSTL,JSP等等。

    View:负责呈现页面

    2-2 Spring MVC的动态概念
    Ctroller是必须要自己写的
    去掉黑色字体,斜体的字体隐藏,只有粗体是必须要写的,剩下的一些仅仅是配置

    第3章 配置Maven环境

    针对初学者,step by step安装配置Maven, 搭建Spring MVC开发环境
     3-1 Maven介绍

    Maven:构建与依赖管理工具

    POM

    依赖管理

    坐标

     POM文件的样例

    有时候你只是想使用spring、titles的功能,但是spring、titles需要依赖一些其它jar包,而这些所依赖的对象又可能还会再依赖,这样传递关系也许会很长,层次会很深,导致我们这个/WEB-INF/lib下的jar包数量非常之多,容易导致缺失依赖的包

    Maven的依赖管理,仅仅是在我们的POM之中配置一些依赖项,比如dependency

     通过以上四个属性可以唯一标识一个我们所需要的产品以及包,这里面packaging属性是可以缺省的,它的缺省值是jar,表示我们依赖的是一个jar包,其他值还可能是war包,也可能是一个pom对象,pom对象其实就是用来处理传递依赖的事情。

    用xml文件就可以管理我们整个项目的依赖管理,包括直接依赖与传递依赖。

    3-2 Maven的安装

    下载apache-maven-3.3.1-bin.zip

    环境变量配置:

    命令行输入mvn -version可以查看是否安装成功以及安装的相应版本。

    3-3 Maven的配置

    Mirror在计算机的世界里通常都是指中心或者核心东西的一个副本

    maven核心仓库的一个副本就称之为一个mirror

    对镜像配置之后,每次对maven的访问都将去这个库来进行下载我们所需要的软件包,这样就降低了中心仓库的负载。

    自己总结:经过测试,配置成 <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 的镜像库,速度更快!

    <mirror>
          <id>alimaven</id>
          <mirrorOf>central</mirrorOf>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

    3-4 用Maven创建项目

    下载eclipse(kepler 4.3的版本)

    maven插件 m2e

    mvn命令的典型格式,通过mvn调用maven的运行环境,后面紧接着一个是调用某种插件,并且将插件上的某种目标运用,后面是一连串的这个插件所需要的参数。

    artifactId:它的值会成为我们所创建的目录结构的根目录的名称。archetypeArtifactId指明了我们创建目录类型的一个类型。

    第4章 Spring MVC实操

    基于课程管理的业务需求,用Spring MVC开发一个模块
    4-1 从配置文件开始
    这个标准之下,我们的jsp页面会默认的将我们的EL表达式语言关闭

     改成以下的样式,我们的web应用就可以默认的支持EL

    
    

    Model(模型类):业务需求

    4-2 Controller-基础代码
    4-3 Controller-现代方式
    Ctrl+c停掉jetty

     cls清屏

    4-4 Controller-传统方式

    
    

    通过@Controller声明了一个Controller;

    通过@RequestMapping来映射了我们的URL和我们的方法,RequestMapping标记通常出现在我们的类级别和我们的方法级别,二者共同组合完成了我们对一个URL映射请求的拦截;

    通过URL template结合使用@RequestParam and @PathVariable两个标记可以将URL路径之中的参数绑定到我们Controller Method中的入参;

    同时也可以通过使用HttpServletRequest或者HttpSession之类的对象来获取我们想要的结果。

    4-5 Binding


    我们的页面是由一些html标签所代表的各种页面控件所组成的,它们都是一个平坦的对象,比如说,一个input字段是有一个名字的,页面上所有的这些字段共同构成了我们的表单数据,
    而在我们的后台,则是由我们的模型对象来代表我们的现实世界,如何将二者进行关联呢?这就是我们绑定。名称匹配:页面上的控件的名称要和我们模型对象中的属性名称一致

    4-6 FileUpload--单文件上传
    快捷键F3 查看源代码
    4-7 JSON(上)
    JSON:轻量级的数据交换格式

     4-8 JSON(中)

     4-9 JSON(下)

    SpringMVC中通过使用ContentNegotiatingViewResolver这么一个特殊的类来将我们不同的数据呈现请求转化到不同的View,注意这里,是将相同格式的数据,分发的不同的数据呈现请求。这其中就包含我们的JSON,这是一个通用的处理方式。

    其次在我们服务端代码中,我们使用了ResponseEntity这么一个泛型的类,来处理我们的返回结果,将返回的数据模型包裹在这个类之中,就可以将泛型数据转化为JSON格式。

    使用@ResponseBody/@ResquestBody来处理我们的返回数据。

    
    

    第5章 总结

     

  • 相关阅读:
    hadoop20---代理另一种方式
    hadoop19---动态代理
    hadoop18---socket实现rpc
    JAVA发送HttpClient
    使用Socket&反射&Java流操作进行方法的远程调用(模拟RPC远程调用)
    hadoop17---RPC和Socket的区别
    hadoop16---反射
    hadoop15---activemq
    Struts2标签实现for循环
    struts2的标签中得到JSP脚本的变量值
  • 原文地址:https://www.cnblogs.com/songsongblue/p/9748664.html
Copyright © 2020-2023  润新知