SpringMVC:从入门到精通,7篇系列篇带你全面掌握 您所在的位置:网站首页 地磅员的工作流程图 SpringMVC:从入门到精通,7篇系列篇带你全面掌握

SpringMVC:从入门到精通,7篇系列篇带你全面掌握

2024-07-17 04:01| 来源: 网络整理| 查看: 265

目录

一.SpringMVC是什么

二.为什么要使用 SpringMVC

三. SpringMVC的工作流程【附有超详细流程图】

四. SpringMVC的入门小案例

配置pom.xml

创建spring-mvc.xml

配置web.xml

运用SpringMVC注解配置Web层

jsp页面

运行结果

小贴士:关于 SpringMVC中的注解

五.SpringMVC处理静态资源

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于SpringMVC的相关操作吧

一.SpringMVC是什么

        SpringMVC是Spring提供的一个强大而灵活的web框架,借助于注解,Spring MVC提供了几乎是POJO的开发模式【POJO是指简单Java对象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的Java对象。POJO让开发者可专注于业务逻辑和脱离框架的单元测试。可以把POJO看作是一个普通的Java类,它具有简单、灵活和可扩展的编程模型,使开发人员可以专注于业务逻辑的实现,而不需要过多考虑框架相关的规范和限制】,使得控制器的开发和测试更加简单。它是一个基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFramework的后续产品,已经融合在Spring Web Flow中 ,你可以把SpringMVC看作是一个控制器,它负责处理用户请求并返回响应。在SpringMVC中,控制器(Controller)、视图(View)和模型(Model)是分离的。控制器负责处理用户请求并返回响应,视图负责显示数据,模型负责存储数据

二.为什么要使用 SpringMVC

清晰的角色划分:SpringMVC将控制器(controller)、验证器(validator)、命令对象(command object)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、试图解析器(view resolver)等等。每一个角色都可以由一个或多个组件来实现,这样的设计使得开发人员可以更加专注于业务逻辑的实现

无需配置:SpringMVC是一个典型的轻量级MVC框架,相对于之前的struts2框架,SpringMVC运行更快,其注解式开发更高效灵活。可以和Spring框架无缝整合

代码可重用性高:SpringMVC支持RESTful风格的URL设计和参数传递,这使得代码具有很好的可读性和可维护性

易于测试:SpringMVC支持JUnit和Mockito等测试框架,这使得开发人员可以更加方便地进行单元测

三. SpringMVC的工作流程【附有超详细流程图】

关于流程图的详细说明

用户发送请求到前端控制器(DispatcherServlet)前端控制器(DispatcherServlet)根据请求信息调用处理器映射(HandlerMapping)处理器映射器(HandlerMapping)根据 URL/请求参数找到具体的处理(Handler)生成处理器对象及处理器拦截器(如果有则生成)一并返回给前端控制器(DispatcherServlet)前端控制器(DispatcherServlet)通过处理器适配器(HandlerAdapter)执行Handle处理器处理请求(调用方法处理业务逻辑)将结果封装成 ModelAndView 对象并且返回前端控制器(DispatcherServlet)将 ModelAndView 对象传给视图解析器(ViewResolver),之后返回视图ModelAndView视图解析器(ViewResolver)根据 ModelAndView 对象找到对应的视图(View)返回真正的视图对象将视图进行渲染返回渲染完毕的视图前端控制器(DispatcherServlet)将响应内容写到响应对象中,响应对象返回给客户端

        其实明白了流程之后,我们便可以很好的将其总结出来了,无非就是用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它。页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名)。前端控制器收回控制权,然后根据返回的逻辑视图名,把模型数据传入,选择相应的视图进行渲染

        更加通俗的话,可以举一个例子来熟知,当你在淘宝购物时,你打开了某个商品页面,这个页面是由淘宝的前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它。接着,该页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象(例如商品信息),然后将命令对象委托给业务对象(例如卖家)进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名)。最后,前端控制器收回控制权,并根据返回的逻辑视图名选择相应的视图进行渲染,并把模型数据传入以便视图渲染。

四. SpringMVC的入门小案例 配置pom.xml

首先需要再pom.xml中进行配置,导入相关依赖

1.2 1.1.2 5.0.2.RELEASE org.springframework spring-webmvc ${spring.version} jstl jstl ${jstl.version} taglibs standard ${standard.version} 创建spring-mvc.xml

配置web.xml Archetype Created Web Application contextConfigLocation classpath:Spring-context.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFilter true encoding UTF-8 encodingFilter /* SpringMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:Spring-mvc.xml 1 true SpringMVC / 运用SpringMVC注解配置Web层 package com.wh.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * @author 王辉 * @site www.shihuihuila.com * @create 2023-09-04 18:47 */ @Controller @RequestMapping("/smvc1") public class Springmvc1 { @RequestMapping("/print") public String test(){ return "hello_huihui"; } } jsp页面 SpringMVC测试 💗💗I LOVE YOU!!💗💗 运行结果

小贴士:关于 SpringMVC中的注解

下列都为SpringMVC中的常用注解

1. @Controller:用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象。分发处理器将会扫描使用了该注解的类,并将其注册为一个控制器 2. @RequestMapping:用于映射请求路径和处理请求的方法 3. @RequestParam:用于从请求参数中获取值,可以指定参数的名称、是否必须、默认值等4. @PathVariable:用于获取URL中的参数值,可以指定参数的名称5. @ModelAttribute:用于将请求参数绑定到模型对象上6. @RequestBody:用于将请求体中的数据绑定到方法参数上7. @ResponseBody:用于将方法返回值绑定到响应体上 五.SpringMVC处理静态资源

        如果访问不了静态资源,那或许是因为DispatcherServlet拦截了所有的请求,同时对静态资源的访问也被拦截了。如果你的DispatcherServlet拦截“/”,那么所有的请求都会被拦截,包括对静态资源的访问

那么我们只需要在Spring-mvc中添加一行代码,便可让静态资源成功被访问

如此便可以访问静态资源了

好啦,今天的分享就到这了,希望能够帮到你呢!😊😊  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有