Spring Web MVC⼊⻔

一、Web 开发的基础概念介绍

1.socket
  • 定义:Socket 是网络编程的一个基础概念,代表了两个程序(通常是网络上的不同计算机上的程序)之间的一个通信端点。
  • 用途:Sockets 主要用于实现低级的网络通信功能。在 Java 中,java.net.Socket 类用于创建一个客户端,而 java.net.ServerSocket 类用于创建服务器端。通过这些类,可以实现两个应用程序之间的双向通信。
  • 特点:Socket 编程通常涉及到更多的细节处理,如连接管理、数据格式定义、协议选择等,为开发者提供了更高的控制灵活性。
2. Servlet API

  • 定义:Servlet API 是一套 Java 规范,定义了 Servlet 编程的各种类和接口,比如 Servlet, HttpServletRequest, HttpServletResponse 等。这些接口和类为 Web 应用提供了编写响应 HTTP 请求的方法。
  • 作用:开发者使用 Servlet API 来创建 Servlet、过滤器、监听器等组件,这些组件可以处理 Web 请求、响应以及监听 Web 应用中发生的事件。
3.Servlet 容器
  • 定义:Servlet 容器(例如 Tomcat, Jetty)是一个 Web 服务器或应用服务器,它提供了一个运行环境,用于部署和运行基于 Servlet API 的 Web 应用。
  • 作用:Servlet 容器负责管理 Servlet 的生命周期,包括加载和实例化 Servlet、初始化它们以及调用它们的方法来处理进来的请求。它还负责确保 API 定义的所有规范被遵守,比如会话管理、安全性、并发处理等。

二、Spring MVC 与 Servlet 的交互

在 Spring MVC 中编写的代码(控制器、服务等)最终是通过 DispatcherServlet 这样的 Servlet,与底层的 Servlet 容器及其提供的 Servlet API 进行交互。Servlet 容器负责执行 Servlet API 定义的操作,同时也封装了这些 API 的实现细节,使得开发者可以专注于编写业务逻辑代码,而不需要关心底层的网络通信和协议细节。这样的架构层次划分,让整个 Web 应用的开发更加模块化和清晰。

当你在 Spring MVC 中编写控制器(controllers)、过滤器(filters)等组件时,这些组件在底层实际上是通过 Servlet API 与 Servlet 容器进行交互的。例如,Spring MVC 的 DispatcherServlet 是一个实际的 Servlet,它扩展自 HttpServlet,是 Spring MVC 框架的核心。

  • 调用流程
    1. 请求接收:Servlet 容器接收到 HTTP 请求后,根据部署描述符(web.xml)或通过 Servlet 3.0+ 的注解配置,确定应该将请求交给哪个 Servlet(例如 Spring 的 DispatcherServlet)。
    2. 请求处理DispatcherServlet 接收请求后,根据 Spring MVC 的配置(例如控制器 mappings)将请求分发到相应的控制器方法。
    3. 生成响应:控制器处理请求后生成数据模型和视图名,DispatcherServlet 使用视图解析器(View Resolver)和视图模板(例如 JSP)来生成响应。

三、MVC 定义

MVC(模型-视图-控制器)是一种用于设计和构建软件应用程序的架构模式,特别是图形用户界面(GUI)应用程序和Web应用程序。MVC模式通过将应用程序划分为三个主要组件来实现关注点分离,提高了应用程序的可维护性、扩展性和灵活性。

  1. 模型(Model)
    • 定义:模型组件表示应用程序的数据结构和业务逻辑。它直接管理数据、逻辑和规则,并提供对数据的访问和管理方法。
    • 职责:维护数据和定义操作数据的规则。模型不依赖于具体的输出表示形式或者用户界面,只负责数据本身的管理。
  2. 视图(View)
    • 定义:视图是用户看到并与之交互的部分。视图组件负责数据的展示和用户界面的构造。
    • 职责:接收来自用户的输入并将其显示给用户。视图通常依赖于模型,使用模型提供的数据来生成用户界面。
  3. 控制器(Controller)
    • 定义:控制器是模型和视图之间的协调者。控制器接收用户的输入,并决定如何处理这些输入,包括可能对模型数据进行更新或者触发视图的变化。
    • 职责:处理用户输入,操作模型对象,返回输出显示数据。控制器解释用户输入,通过模型来获取数据,再选择一个视图进行显示。

四、Spring MVC 与 Spring boot 的关系

Spring MVC Spring Boot 只是实现Spring MVC的其中⼀种⽅式⽽已. Spring Boot 可以添加很多依赖, 借助这些依赖实现不同的功能. Spring Boot 通过添加Spring Web MVC框架, 来实现web功能。

Spring Web MVC 从一开始就包含在 Spring 框架中,是 Spring 框架最初版本的一部分,自 Spring 框架问世以来,MVC 模块就已经被包含其中,只是springboot 简化了这个过程。

  • Spring 框架的组成:Spring 框架是一个模块化的框架,包含了多个模块,如核心容器、数据访问/集成、Web、AOP等。Spring Web MVC 是这个框架中专门用于开发 Web 应用的模块。
  • 集成和兼容性:Spring 的设计使得它不仅可以用来开发小到中等规模的应用,而且可以很容易地集成到企业级应用中。Spring Web MVC 与 Spring 的其他模块如安全、数据访问等无缝集成,提供了一个一站式的解决方案。

总结来说,这句话强调了 Spring Web MVC 是一个成熟的、与 Servlet API 密切相关的 Web 框架,它从 Spring 框架的早期版本开始就是一个重要组成部分,为 Java 开发者提供了一个强大的工具来创建动态网站和应用。这种设计也确保了 Spring MVC 可以与 Java 的标准 Web 技术无缝集成,同时利用 Spring 框架提供的其他强大功能,如依赖注入和事务管理

你可能感兴趣的:(Spring,组件,mvc,服务器,java,spring,intellij-idea,java-ee,spring,boot)