SpringMVC工作原理详解

article/2025/9/14 1:36:32

SpringMVC工作原理详解

在学习之前,先来两张神图镇楼

在这里插入图片描述

在这里插入图片描述

什么是MVC

经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。

什么是SpringMVC

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

官方文档:https://docs.spring.io/spring/docs/5.2.0.RELEASE/spring-framework-reference/web.html#spring-web

Spring MVC的特点:

轻量级,简单易学

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

与Spring兼容性好,无缝结合

约定优于配置

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

简洁灵活

Spring的web框架围绕DispatcherServlet [ 调度Servlet ] 设计

中心控制器

SpringMVC是围绕核心DispatcherServlet设计的,它的作用是将不同的请求分发到不同的处理器

在这里插入图片描述

SpringMVC的原理

在这里插入图片描述

当客户发起请求的时候,请求被前置的控制器拦截,控制器处理请求

控制器处理请求,创建数据模型,访问数据库,将模型响应返回给中心控制器

控制器将响应返回给视图,并将视图一块返回给客户

Spring的执行原理

DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。
假设请求的url为 : http://localhost:8080/SpringMVC/hello
如上url拆分成三部分:
http://localhost:8080服务器域名

SpringMVC部署在服务器上的web站点

hello表示控制器

通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。

HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler

HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。

HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。

Handler让具体的Controller执行。

Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。

HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。

DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。

视图解析器将解析的逻辑视图名传给DispatcherServlet。

DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。

最终视图呈现给用户。

如何使用配置实现

在完成环境搭建后

1.配置web.xml文件

  <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name>//这里选择要进行配置的springMVC的文件地址<param-value>classpath:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

此处是配置DispatcherServlet

2.配置springmvc的配置文件


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

添加处理映射器对象


<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

添加处理适配器对象


<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

添加视图适配器对象


<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver"><!--前缀--><property name="prefix" value="/WEB-INF/jsp/"/><!--后缀--><property name="suffix" value=".jsp"/>
</bean>

编写操作业务层

public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {//ModelAndView 模型和视图ModelAndView mv = new ModelAndView();//封装对象,放在ModelAndView中。Modelmv.addObject("msg","HelloSpringMVC!");//封装要跳转的视图,放在ModelAndView中mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jspreturn mv;}}

注意需要实现Controller接口

要将这个类托管到springzhong

<bean id="/hello" class="com.kuang.controller.HelloController"/>

启动tomcat,配置成功


http://chatgpt.dhexx.cn/article/XqtufGdu.shtml

相关文章

springMVC工作原理(含图)

SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dis…

理清SpringMVC工作原理

一、首先&#xff0c;我们先来认识一下SpringMVC的主要组件 前端控制器&#xff08;DisatcherServlet&#xff09;:接收请求&#xff0c;响应结果&#xff0c;返回可以是json,String等数据类型&#xff0c;也可以是页面&#xff08;Model&#xff09;。 处理器映射器&#xff0…

SpringMVC工作原理及源码解析

SpringMVC工作原理及源码解析 一&#xff1a;SpringMVC原理图二&#xff1a;SpringMVC的主要组件1、前端控制器DispatcherServlet&#xff1a;2、处理器映射器HandlerMapping&#xff1a;3、处理器适配器HandlerAdapter&#xff1a;4、处理器Handler&#xff1a;5、控制器Contr…

SpringMVC工作原理和工作流程

在博客看见一编写的非常清晰的博客&#xff0c;对现在的注重开发层面不注重底层原理的还是有用处的。 原文出处&#xff1a;https://www.cnblogs.com/xiaoxi/p/6164383.html SpringMVC工作原理 SpringMVC的工作原理图&#xff1a; SpringMVC流程 1、 用户发送请求至前端控制…

SpringMVC的简介概述、工作原理

SpringMVC简述概括 SpringMVC的工作原理

SpringMVC工作原理之参数解析

前面分析到 SpringMVC工作原理之处理映射[HandlerMapping] &#xff0c;由映射处理器(HandlerMapping) 解析出对应的 handler。接着 SpringMVC工作原理之适配器[HandlerAdapter] 描述了 handler 是怎么匹配到合适的适配器&#xff0c;进行 handler 对应方法的执行。其他几种适配…

16.springmvc工作原理分析

springmvc 如何做URL映射关系 1.SpringIOC容器加载时开始遍历所有的bean对象 判断 bean对象 类上是否有加上 Controller注解,如果类上有加该注解的话 则该类就是为我们控制类&#xff1b; 2.在容器初始化时会建立所有url和controller的对应关系&#xff0c;利用java反射机制…

SpringMVC工作原理及其流程

本文介绍SpringMVC的基本原理,对于一个浏览器请求,SpringMVC的处理流程。 SpringMVC主要包含一下组件 DispatcherServlet-前端控制器HandlerMapping-处理器映射Controller-控制器ViewResolver-视图解析器View-视图Spring的请求流程 SpringMVC的核心在于其请求流程,这是使用…

阿里云YUM源配置

文章目录 阿里云YUM源配置1.备份原有yum源2.根据自己系统下载yum源3.重新加载yum0x00. 阿里云YUM源配置 今天&#xff0c;打开我的Centos7系统&#xff0c;美滋滋要搭建一波LAMP环境。一把梭哈。 yum -y install httpd mariadb mariadb-server php php-mysql 奈何&#xff0c;…

Linux学习-20-yum介绍,yum源配置

7.8 yum介绍&#xff0c;yum源配置 使用 SRPM 源码包和 RPM 二进制包安装软件&#xff0c;这两种方法都比较繁琐&#xff0c;需要手动解决包之间具有依赖性的问题&#xff0c;尤其是库文件依赖&#xff0c;需要自行去 http://www.rpmfind.net 网站上查找相关的 RPM 包。 7.8.…

yum源配置及相关命令

1.yum概述 yum是软件管理仓库&#xff0c;可以完成安装&#xff0c;卸载&#xff0c;自动升级rpm包等任务&#xff0c;能够自动查找并解决rpm包之间的依赖关系&#xff0c;而无需管理员手工安装每个rpm包 2.本地源和网络源 本地源:比如说光盘里面一般会附带一些软件&#xff0c…

redhat yum源配置-已成功

提示&#xff1a;几分钟就搞定&#xff0c;替大家避坑了。 yum源配置 redhat使用yum源时不成功&#xff0c;这是因为使用 redhat 自带的 yum源要付费&#xff0c;所以需要自己重新生成 yum源&#xff0c;Redhat7 和Centos7是完全一样的&#xff0c;可是安装完Redhat7以后&#…

Openstack实验之yum源配置

1.实验目的 对于企业的Openstack私有云&#xff0c;出于对安全和某些因素的安全考虑&#xff0c;有些服务器无法访问公网&#xff0c;导致服务器无法更新某些RPM包&#xff0c;同时内部常有Openstack新特性开发需求&#xff0c;版本的维护与升级&#xff0c;因此非常有必要构建…

CentOS6.5 yum源配置

编辑配置文件 vim /etc/yum.repos.d/CentOS-Base.repo将以下内容复制到配置文件中 [base] nameCentOS-6 failovermethodpriority baseurlhttp://mirrors.aliyun.com/centos-vault/6.5/os/x86_64/ gpgcheck0生成缓存 yum clean all#清除全部 yum makecache#生成缓存也可以 c…

阿里云的yum源配置

首先&#xff0c;将目录切换至/etc/yum.repos.d&#xff0c;这个是需要更换的yum源&#xff0c;一般系统都自带有yum源&#xff0c;但是下载速度很慢&#xff0c;所以需要将yum源换为国内的yum源&#xff0c; 这里一般有两种方法&#xff1a; 1、首先使用wget 下载阿里云的yum源…

FTP - YUM 源配置

** Ftp yum源配置 一、 环境需要 1、2台centos A和B 2、配置两台主机的ip 3、关闭防火墙(2台) [rootlocalhost ~]# systemctl stop firewalld[rootlocalhost ~]# systemctl disable firewalld关闭selinux [rootlocalhost ~]# vim /etc/sysconfig/selinux把SELINUXenforcing改…

yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)

服务器yum源配置 文章目录 1. 引言1.1 什么是yum源1.2 为什么要搭建内网yum源1.3 准备工作 2. yum源搭建2.1 网络yum源配置2.1.1 yum仓库配置2.1.2 更新yum源2.1.3centos yum源一键配置命令2.1.4 其他yum源参考 2.2 本机单机yum源配置2.2.1 iso镜像获取并上传到服务器2.2.2 rep…

Linux下局域网yum源配置

文章目录 一 需求二 搭建环境准备三 服务端1 创建镜像存放目录与挂载目录2 上传centos7镜像3 对镜像文件进行挂载4 配置本地yum源5 对挂载点建立软链接6 安装http服务7 浏览器验证http服务是否正常启动 四 客户端1 修改yum配置文件2 查看yum源 一 需求 企业内部服务器出于安全…

yum源配置教程

环境&#xff1a;Centos7系统、Centos7镜像文件&#xff08;下文中提到的光盘&#xff09;、能连接互联网 yum是Linux平台下的一个包管理工具&#xff0c;全称叫做Yellow dog Updater,Modified&#xff0c;Shell前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器…

本地Yum源配置

Yum源访问方式有三种&#xff0c;分别是互联网yum源、局域网yum源、本地yum源 yum可以自动处理依赖关系&#xff0c;并且一次安装所有依赖包&#xff0c;无须繁琐地一次次下载、安装。 配置本地yum源之前需要通过Xftp连接上传操作系统的CentOS-7-x86_64-DVD-2009.iso镜像文件…