首页 > 编程语言 >8:Spring MVC-Java Spring

8:Spring MVC-Java Spring

时间:2022-11-11 10:31:37浏览次数:58  
标签:Java Spring 视图 MVC JSP Handler View


目录

  • ​​8.1 WEB开发模式一​​
  • ​​8.2 WEB开发模式二​​
  • ​​8.3 Spring MVC介绍​​
  • ​​8.4 Spring MVC主要组件​​
  • ​​8.5 Spring MVC处理流程​​
  • ​​8.6 Spring MVC的HTTP请求方法​​

在Web开发中有两种主要的结构,称为模式一(ModeI)和模式二(Mode II)

8.1 WEB开发模式一

Mode I是指在开发中将显示层、控制层、数据层的操作统一交给JSP或者是JavaBean来进行处理,

优点

  • 架构简单

缺点

  • JSP职责过重,不利于维护


Mode I的处理情况分为两种

完全JSP模式

  • 用户发出的请求(request),交给JSP页面进行处理,为了开发快速与便利,通常都会将显示层(PresentationLayer)和逻辑运算层(Business Logic Layer)全部都写在JSP页面中

使用JSP + JavaBean模式

  • 将显示操作都写入JSP页中,而业务层都写成JavaBean形式,将程序代码封装成组件,这样JavaBean将负责大部分的数据处理。例如执行数据库操作等(类似于DAO),再将数据处理后的结果,返回至JSP页上显示
Model 1 模型图

8:Spring MVC-Java Spring_spring

8.2 WEB开发模式二

Mode II中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,之后根据请求调用相应的JavaBean,并将所有的显示结果交给JSP完成,最典型的就是JSP + Servlet + Javabean的模式,也就是俗称的MVC设计模式,

优点

  • 提高的代码的复用率与项目的扩展性

缺点

  • 增加了系统结构和实现的复杂性


Model 2 模型图

8:Spring MVC-Java Spring_java_02

8.3 Spring MVC介绍

Spring MVC是Spring框架的一个模块,MVC是一种设计模式,将应用程序的输入、处理和输出分为三个核心层:模型层、视图层、控制层

  • 封装数据处理数据的模型(Model)

模型所表示的是具体做工作的部分,并对应用所要解决的实际问题进行建模,即保存数据的状态

  • 负责展示数据的视图(View)

视图是模型的表示,用户可以看到视图并与之交互,即显示页面

  • 控制程序流转的控制器(Controller)

控制器是应用中对用户命令做出响应的部分,即取得表单数据、调用业务逻辑、转向指定的页面等

8.4 Spring MVC主要组件

1.前端控制器 (DispatcherServlet)

本质上是一个Servlet中转站,接收请求后根据配置到相应的Handler中进行处理,调用处理器映射器获取数据和视图后响应结果

2.处理器映射器(HandlerMapping)

根据请求的URL来查找Handler,将访问路径和对应的Handler存储为映射关系

3.处理器适配器(HandlerAdapter)

让固定的Servlet处理方法调用灵活的Handler来进行处理,找到真正的Handler执行请求响应和对应的Handler信息,将结果即Model和View返回给前端控制器

5.视图解析器(ViewResolver)

将视图名称映射到真正的视图地址,即进行视图的解析,将View信息解析成真正的视图(View)

6.视图(View)

View接口的实现类支持不同的视图类型(JSP,Freemarker,PDF等),即将返回的Model数据填充到视图(View)中,渲染后的页面会呈现给用户


8.5 Spring MVC处理流程

在MVC设计模式中,最关键的部分就是要使用RequestDispatcher接口,因为显示内容都是通过此接口保存到JSP页面上进行显示的

简化流程

  • 将URL映射到Java类或方法
  • 封装用户提交的数据
  • 处理用户请求,调用相关的业务处理,封装响应数据
  • 将响应的数据进行渲染和呈现

具体流程

1.客户端浏览器向前端控制器(DispatcherServlet)发出请求

2.前端控制器(DispatcherServlet)接收请求后根据配置到相应的Handler中进行处理,调用处理器映射器(HandlerMapping)获取数据和视图后响应结果

3.理器映射器(HandlerMapping),根据请求的URL来查找后端处理器(Handler),将访问路径和对应的Handler存储为映射关系,返回处理器对象(Handler)和处理器拦截器对象(HandlerInterceptor)给前端控制器(DispatcherServlet)

4.前端控制器(DispatcherServlet)拿到信息后调用处理器适配器(HandlerAdapter),找到真正的Handler执行请求响应和对应的Handler信息,将结果即Model和View返回给处理器适配器(HandlerAdapter)

5.处理器适配器(HandlerAdapter)将Model和View对象返回给前端控制器(DispatcherServlet)

6.前端控制器(DispatcherServlet)在拿到Model和View对象之后发给视图解析器(ViewResolver)

7.视图解析器(ViewResolver)将Model和View对象进行解析,生成成真正的视图对象(View),将View对象返回给前端控制器(DispatcherServlet)

8.前端控制器(DispatcherServlet)拿到View对象后,根据解析结果调用具体的视图,即将返回的Model数据填充到视图(View)中,渲染好的JSP页面会呈现给用户


8.6 Spring MVC的HTTP请求方法

注解

HTTP请求方法

@GetMapping

POST

@PostMapping

GET

@PutMapping

PUT

@PatchMapping

PATCH

@DeleteMapping D

ELETE

@RequestMapping

可用于以上五种请求,需在method属性中指定


标签:Java,Spring,视图,MVC,JSP,Handler,View
From: https://blog.51cto.com/u_15872973/5843061

相关文章

  • Java Web项目中使用RSA加密数据
    在Web项目中有些时候需要对传输的数据加密后再传输到服务端进行解密使用,这里采用RSA进行公钥加密私钥解密的模式会有较高的安全性。这里选用的工具库是 JSEncrypt.js ......
  • 硬核剖析Java锁底层AQS源码,深入理解底层架构设计
    我们常见的并发锁ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁。上篇文章讲了AQS的加锁流程,这......
  • Java并发编程——基础知识(一)
    1.进程与线程1.1基本概念进程:对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发线程:进程的子任务,是CPU调度和分派的基本单位,用于保证程序......
  • spring-boot-maven-plugin插件指定打包目录
    插件配置<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>......
  • MVC和MVVM
    MVC、MVVM模式的概念与区别1.MVC框架MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显......
  • Java组合异步编程(2)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 多数码农在开发的时候,要么处理同步应用,要么处理异步。但是如果能学会使用CompletableFuture,就会具备一种神奇的能力:将同......
  • 定位java程序中占用cpu最高的线程堆栈信息
    找出占用cpu最高的线程堆栈信息在java编码中,有时会因为粗心导致cpu占用较高的情况,为了避免影响程序的正常运行,需要找到问题并解决。这里模拟一个cpu占用较高的场景,并尝试......
  • Java MAC环境Intellij2022配置Servlet和Tomcat
    1、下载安装Tomcat官网:https://tomcat.apache.org/download-90.cgi ->download 下载完放入自定义路径,需要记住!这样算下载好了,详细-> https://blog.csdn.net/qq_44......
  • java学习
    Mardown学习标题:#空格+标题名字几级标题几个#字体Hello,word!Hello,word!Hello,word!Hello,word!Hello,word!引用12345>直接输入引用内容分割线___三个......
  • 【Java】Java基础知识点之集合类型基础概念
    Java常用集合有哪些?Java集合类主要由两个接口Collection和Map派生出来的。Collection有三个子接口:List、Set、Queue。List代表了有序可重复集合,可直接根据元素的索引来访......