Java全栈课程之SpringMVC详解——什么是SpringMVC

本文介绍了SpringMVC,Spring框架的一部分,强调了其轻量、高效、与Spring集成、约定配置和功能强大的特点。讲解了中心控制器和执行原理,展示了SpringMVC如何通过DispatcherServlet分发请求和处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是SpringMVC

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

查看官方文档:Web on Servlet Stack

二、SpringMVC的特点

        1.轻量级,简单易学

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

        3.与Spring兼容性好,无缝结合

        4.约定优于配置

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

        6.简洁灵活

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

        DispatcherServlet的作用是将请求分发到不同的处理器。从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解形式进行开发,十分简洁;

        正因为SpringMVC好,简单,便捷,易学,天生和Spring无缝集成(使用SpringloC和Aop),使用约定优于配置.能够进行简单的junit测试.支持Restful风格.异常处理,本地化,国际化,数据验证,类型转换,拦截器 等等... 所以我们要学习

        最重要的一点还是用的人多,使用的公司多。

三、中心控制器

        Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器。从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解的controller声明方式。

        Spring MVC框架像许多其他MVC框架一样,以请求为驱动,围绕一个中心Servlet分派请求及提
供其他功能,DispatcherServlet是一个实际的Servlet(它继承自HttpServlet基类)。

        Spring MVC的原理如下图所示:

        当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。

四、SpringMVC执行原理

简要分析执行流程

1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。

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

如上url拆分成三部分:

        http://localhost:8080服务器域名

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

        hello表示控制器

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

2. HandlerMapping为处理器映射。DispatcherServlet调用

        HandlerMapping,HandlerMapping根据请求url查找Handler。

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

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

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

6. Handler让具体的Controller执行。

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小孙同学1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值