SpringMVC:认识MVC了解URL映射到页面文件全过程

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: SpringMVC:认识MVC了解URL映射到页面文件全过程

SpringMVC

前言:MVC模式

什么是MVC???

首先什么是mvc?其实在javaweb的时候我们就了解过有关mvc这种开发模式

mvc是一种软件设计规范,是一种架构模式

它是业务逻辑,数据,显示分离的方法

5.png


m = model(模型)

我个人对模型的理解,基于javaweb的dao层,service层,以及servlet的架构模式转变的,

我认为模型就是将dao层,service层合并在了一起,他负责数据行为,数据(dao),行为(service)

把状态判断和数据返回形成一个模型,最终将处理好的数据交给控制器(controller来分发)


v = view (视图)

视图,见名知意,他就是负责将控制器分发来的数据展示给用户(客户端)


c = controller(控制器)

控制器,负责接受客户端发来的请求,将接受到需要处理的数据发给模型来处理;模型处理完毕后,将返回的数据,分发给视图,由视图展示,他主要负责任务分发和承接的工作


常见问题回答

Q:为什么要用MVC???

A:没有好的架构模式,代码会出现高耦合的情况,这是我们开发人员不想看到的,使用mvc可以是提高代码复用,并且清晰的结构也降低了排错和维护的困难性


Q:mvc这种架构模式需要做什么事情?

A:


将url映射到java类或java类的方法

与数据库交互 – 封装用户提交的数据-

处理请求—调用相关的业务处理—封装响应数据-提交控制进行分发

将响应的数据进行渲染 在 jsp / html 等表示层数据

以上便是个人对mvc的理解和结合狂神视频中将的内容得出的思路


回顾完MVC,就要来看看这篇博客的主角了

SpringMVC

在学习Spring的视频里狂神讲过,Spring把你能想到的基本都便捷化了,那对于mvc呢,Spring也有相对的框架


SpringMVC是???

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。

1.png



为什么要学习SpringMvc?

Spring MVC的特点:


轻量级,简单易学

高效 , 基于请求响应的MVC框架

与Spring兼容性好,无缝结合

约定优于配置

功能强大:RESTful、数据验证、格式化、本地化、主题等

简洁灵活


中心控制器

SpringMVC框架围绕中心控制器设计:DispatcherServlet

这就是上面mvc提到的负责分发工作的好兄弟,他负责将收到的请求分发到不同的处理器上

DispatcherServlet这个好兄弟呢,本质也是一个Servlet,为什么是也呢 -->_–> JSP

他以请求为驱动,围绕中心的Servlet来提供分派请求和其他功能(DispatcherServlet他继承自HttpServlet的基类)

2.png


接下来简单的解析一下SpringMVC的执行原理

很多人第一次看执行原理呢会很蒙,冷某人建议,针对性会看javaweb中Servlet和MVC相关的视频

接下来我们根据一张图来解析他的执行原理

3.png

我们假设请求的url为 : http://localhost:8080/SpringMVC/hello

第一区域:根据请求url找到handler,handler找到控制器:hello

第二区域:负责执行handler,找到对应控制器,控制器执行控制器中的代码并且将执行信息返回给handler(例如:modelview)(实现controller接口的hello类中实现方法返回一个对象,可以携带参数)

第三区域:负责调用视图解析器解析第二区域handleradapter返回的视图逻辑名,解析之后交给中央控制器,最终由视图展示


执行分为如下几个步骤:

一二区域负责找到解析名,hello并且返回对象,

第三区域视频解析器有设置前缀,后缀,前缀这是需要展示内容jsp的路径,后缀可以理解为文件后缀名 例如:.jsp

最后在视图解析中拼接处要展示的对应jsp比如返回的对象为test,

前缀为:/WEB-INF/jsp/

后缀为:.jsp

执行之后会将数据送到路径为:/WEB-INF/jsp/test.jsp这个页面,由视图展示。


相关文章
|
3月前
|
数据安全/隐私保护 开发者 Ruby
【深度揭秘】Rails高手都不说的秘密:玩转URL映射,让你的Web应用瞬间高大上!
【8月更文挑战第31天】Rails中的路由机制负责将HTTP请求映射到应用内部逻辑。本文通过问答形式,结合示例代码详细解释了路由的作用、定义及使用方法。在`config/routes.rb`中定义的`resources :articles`会自动生成CRUD操作所需的标准RESTful路由。此外,还介绍了如何自定义非标准路由以及命名路由的生成与使用,帮助开发者更灵活地管理URL与应用逻辑间的映射关系,提升Rails应用的健壮性和可维护性。
39 0
|
4月前
|
存储 前端开发 Java
SpringBoot使用云端资源url下载文件的接口写法
在Spring Boot中实现从云端资源URL下载文件的功能可通过定义REST接口完成。示例代码展示了一个`FileDownloadController`,它包含使用`@GetMapping`注解的方法`downloadFile`,此方法接收URL参数,利用`RestTemplate`下载文件,并将文件字节数组封装为`ByteArrayResource`返回给客户端。此外,通过设置HTTP响应头,确保文件以附件形式下载。这种方法适用于从AWS S3或Google Cloud Storage等云服务下载文件。
466 7
|
18天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
20天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
2月前
|
安全 Java API
Java根据URL获取文件内容的实现方法
此示例展示了如何安全、有效地根据URL获取文件内容。它不仅展现了处理网络资源的基本技巧,还体现了良好的异常处理实践。在实际开发中,根据项目需求,你可能还需要添加额外的功能,如设置连接超时、处理HTTP响应码等。
301 4
|
3月前
|
网络协议 前端开发 JavaScript
浏览器加载网页的幕后之旅:从URL到页面展示详解
【8月更文挑战第31天】当在浏览器地址栏输入URL并回车后,一系列复杂过程随即启动,包括DNS解析、TCP连接建立、HTTP请求发送、服务器请求处理及响应返回,最后是浏览器页面渲染。这一流程涉及网络通信、服务器处理和客户端渲染等多个环节。通过示例代码,本文详细解释了每个步骤,帮助读者深入理解Web应用程序的工作机制,从而在开发过程中作出更优决策。
62 5
|
3月前
|
缓存 前端开发 JavaScript
输入URL到页面渲染的全过程
输入URL到页面渲染的全过程
34 1
|
3月前
|
JavaScript Linux 应用服务中间件
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
|
3月前
|
机器学习/深度学习 JavaScript
node.js实现遍历所有文件夹里面的js文件,提取所有的url
node.js实现遍历所有文件夹里面的js文件,提取所有的url
|
3月前
|
API UED 开发者
Vaadin路由魔法:导航之舟,带你穿越页面迷宫!驾驭神奇URL,解锁无限可能!
【8月更文挑战第31天】Vaadin是一款现代Java Web开发框架,其路由机制结合前后端路由,确保流畅的用户体验和高效服务器资源利用。通过`@Route`注解和`Router`类,开发者可以轻松定义和管理页面路径。例如,`@Route("home")`可指定视图路径,而参数化路由如`@Route("user/:userId")`则允许URL传参。此外,Vaadin还提供了丰富的导航API和自定义路由事件监听器,助力开发者构建结构清晰且体验优秀的Web应用。
47 0

热门文章

最新文章

下一篇
无影云桌面