北京网站建设要多少钱,html网站标签,受欢迎的免费建站,配资网站开发是什么意思作者#xff1a;Insist-- 个人主页#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识#xff0c;期待你的关注 前言
本文将讲解Spring MVC是什么#xff0c;它的优缺点与九大组件#xff0c;以及它的请求流程与常用的注解。
目录 一、Spring MVC是什… 作者Insist-- 个人主页insist--个人主页 作者会持续更新网络知识和python基础知识期待你的关注 前言
本文将讲解Spring MVC是什么它的优缺点与九大组件以及它的请求流程与常用的注解。
目录 一、Spring MVC是什么
二、Spring MVC的优缺点
1、优点
2、缺点
三、Spring MVC的九大组件
1、HandlerMapping
2、HandlerAdapter
3、HandlerExceptionResolver
4、ViewResolver
5、RequestToViewNameTranslator
6、LocaleResolver
7、ThemeResolver
8、MultipartResolver
9、FlashMapManager
四、Spring MVC请求流程
五、Spring MVC常用的注解有哪些
1、RequestMapping
2、RequestBody
3、ResponseBody 一、Spring MVC是什么 Spring MVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架即使用了MVC架构模式的思想将web层进行职责解耦基于请求驱动指的就是使用请求-响应模型框架的目的就是帮助我们简化开发Spring Web MVC也是要简化我们日常Web开发的。
二、Spring MVC的优缺点 SpringMVC是一个典型的轻量级MVC框架在整个MVC架构中充当控制器框架相对于之前的struts2框架SpringMVC运行更快其注解式开发更高效灵活。
1、优点
①拥有强大的模块化功能代码可读性高
②可以通过 POJO Plain Ordinary Java Object简单的Java对象对测试数据进行简单的注入
③可以灵活使用DI(DependencyInjection依赖注入或者叫控制反转)
④不同模块间是低耦合的上面四点优点归根结底还是耦合度低。
2、缺点
①对于新手来说实现的难度比较大
②学习曲线比较陡峭即入门比较难。
三、Spring MVC的九大组件
1、HandlerMapping
根据Request找到相应的处理器。因为HandlerController有两种形式一种是基于类的Handler另一种是基于Method的Handler也就是我们常用的。
2、HandlerAdapter
调用Handler的适配器。如果把HandlerController当做工具的话那么HandlerAdapter就相当于干活的工人。
3、HandlerExceptionResolver
对异常的处理。
4、ViewResolver
用来将String类型的视图名和Locale解析为View类型的视图。
5、RequestToViewNameTranslator
有的HandlerController处理完后没有设置返回类型比如是void方法这是就需要从request中获取viewName。
6、LocaleResolver
从request中解析出Locale。Locale表示一个区域比如zh-cn对不同的区域的用户显示不同的结果这就是i18nSpringMVC中有具体的拦截器LocaleChangeInterceptor。
7、ThemeResolver
主题解析这种类似于我们手机更换主题不同的UIcss等。
8、MultipartResolver
处理上传请求将普通的request封装成
MultipartHttpServletRequest。
9、FlashMapManager
用于管理FlashMapFlashMap用于在redirect重定向中传递参数。
四、Spring MVC请求流程
在Web应用程序中请求是必不可少的每次请求由用户(客户端)发起到用户(客户端)接收到响应结束下图展示了一个请求在Spring MVC中所经历的每个流程 下面我将对图中的每个流程做个讲解
1、请求离开浏览器时上图①会带有用户所请求内容的信息比如请求的URL和提交的表单信息。
2、然后进入到请求的第一站即Spring的DispatcherServlet它的任务是将请求发送给Spring MVC控制器。
3、因为在应用程序中会有多个控制器因此DispatcherServlet会查询一个或多个处理器映射(handler mapping)处理器映射会根据请求所携带的URL来确定应该将请求发送给哪个控制器上图②。
4、确定好控制器后DispatcherServlet会将请求发送给确定好的控制器然后等待控制器处理用户提交的信息不过一般情况下控制器本身几乎不处理工作而是将业务逻辑委托给一个或多个服务对象进行处理图中的③。
5、控制器完成业务逻辑处理后通常会产生一些模型(Model)信息这些信息需要返回给用户并在浏览器上显示为了更友好的展示这些信息比如以html形式展示我们需要将信息发送给一个视图(View)比如JSP。
6、控制器所做的最后一件事就是将模型数据打包并且标示出用于渲染输出的视图名。它会将请求连同模型和视图名发送回DispatcherServlet上图④不过控制器只会返回一个视图的逻辑名称而不是返回具体的某个特定视图这个逻辑名称将会用来查找产生结果的真正视图。DispatcherServlet会使用视图解析器(view resolver)来将逻辑视图名匹配为某个特定视图上图⑤比如JSP或者Thymeleaf。
7、请求的最后一站是视图的实现上图⑥在这里视图将使用模型数据渲染输出这个输出会通过响应对象传递给用户/客户端上图⑦。
五、Spring MVC常用的注解有哪些
1、RequestMapping
用于处理请求 url 映射的注解可用于类或方法上。用于类上则表示类中的所有响应请求的方法都是以该地址作为父路径。
2、RequestBody
注解实现接收http请求的json数据将json转换为java对象。
3、ResponseBody
注解实现将conreoller方法返回对象转化为json对象响应给客户。