SSM编程---Day 07

news/2024/10/17 22:27:33/

目录

SpringMVC

一、概念

二、springMVC的请求处理流程

三、mvc:annotation-driven 标签的作用

四、HandlerMapping、Handler和HandlerAdapter的介绍

五、SpringMVC 体系结构

六、SpringMVC的常用注解

七、view和controller之间的传值

SpringMVC

一、概念

        1、 SpringMVC spring 提供的一种基于 MVC 架构模式的轻量级 web 开发框架,其本质相当于 Servlet
        2、mvc介绍:
        model、 view controller 的缩写,是一种软件设计规范
        是将业务逻辑、数据、显示分离的方法来组织代码
        MVC主要作用降低视图与业务之间数据的双向耦合
        MVC不是一种设计模式, MVC 是一种架构模式,当然不同的 MVC 存在差异。

        3、为什么要学习springMVC

        轻量级、简单易学
        约定优于配置 --------- springboot 约定优于配置
        高效!基于请求响应的mvc 框架。
        4、Servlet 和 SpringMVC 的区别
        SpringMVC其实就是 Servlet ,只不过对 Servlet 进行的封装
        (1) Servlet 一个请求 URL 映射为一个类
        (2) SpringMVC 一个请求 URL 映射为一个方法。

二、springMVC的请求处理流程

        1、用户发送请求到 springMVC 的前端控制器( DispatcherServlet
        2、前端控制器会将我们的请求,委托给我们的处理器( HanlderMapping , 根据请求的路径,来映射哪一个方法来执行。(@RequestMapping("/")
        3、会执行到我们写的处理器,控制器( Handler,Controller
        4、然后调用对应的 model 或者直接返回对应的结果(逻辑视图名)

三、mvc:annotation-driven 标签的作用

        1、这个注解会帮助我们自动注册两个 bean
        HandlerMapping :映射(请求地址,映射到具体的方法上面)
        HandlerAdapter :适配器()
        2、@Controller
        当配置该文件之后,spring 就知道我们使用注解的方式,来完成 springmvc 的创建,他就会扫描带有 controller 的注解。
        HadlerMappering实现类的主要作用,就是将请求映射到带有 RequestMapping 注解的控制器( controller )方法中,将URL 路径映射到控制器的 bean
        HandlerAdapter实现类的主要作用,实现类 RequestMappingHandlerAdapter ,处理请求的适配器,确定调用哪个类的哪个方法,构造方法,参数,返回值。

四、HandlerMappingHandlerHandlerAdapter的介绍

        1、Handler (对应的方法, @RequestMappering
        Handler,也就是处理器,它直接对应着 MVC 中的 C 层,即 Controller 层,它可以表现为多种形式,可以是类,也可以是方法或者是其他的形式,它的类型是Object 。我们用的最多的就是用 @RequestMapping 注解标注的方法,它就对应着一个Handler
        2、HandlerMapping
        HandlerMapping,是用来查找 Handler 的,在 spingmvc 中会处理很多请求,每一个请求都需要一个 Handler 进行处理,具体接受到一个请求后使用哪个Handler 来处理,就是 HandlerMapping 需要做的事情
        3、HandlerAdapter
        HandlerAdapter,即 Handler 的适配器,也是这 3 个概念中理解起来比较模糊的一个概念。上面说 Handler 的时候,我们说Handler 是有多种的表现形式,只要能处理请求就可以,而 dispatchServlet 处理请求的方式却是固定的 ——doService(request,response),那么怎么让固定的 doService 调用灵活的 Handler 来进行处理呢,这就是HandlerAdapter需要做的事情。
        适配器模式, 有很多种控制器(Controller) 一种是带 @Controller 注解的, 还可以写一个 servlet 当做 controller, 所以用适配器做适配,你看看HandlerAdapter 有几个子类,每个子类都是适配某一种类型的控制器,有了HandlerAdapter,你只需要调用 handle 方法,屏蔽了不一致的细节,否则在 DispatcherServlet 里面要 if else if else了。

五、SpringMVC 体系结构

 

 

六、SpringMVC的常用注解

        1、 @Controller 注解
        标识在类上面,表示当前这个类,可以用于处理我们的用户请求。
        2、 @RequestMapping 注解
        可以标识在类上面、也可以标识在方法上面,他的主要作用就是配置我们的请求路径和方法之间的关系。标识在类上面的作用,主要用于模块之间的区分。

七、viewcontroller之间的传值

        1、 view 传值给 controller
        @RequestParam
        如果参数的前面添加这个注解,默认当前参数就是必填项,你请求该方法上面url 的时候,必须要携带当前参数,如果不携带该参数,就会显示400 错误,因为 requestParam 的注解的默认值是 true。
        总的来说,有三种方式:简单数据类型(参数少的时候,直接入参) 、对象(参数多的时候,对象入参) 、json格式 
        2、controller传值给view
        (1)通过 modelAndView 来传值
        (2)Model 来传参数
        (3)Map集合的方式,需要用到 jstl el 表达式
        一个类中,我们需要做到的就是 @RequestParam("") 路径全局唯一: 类上面+ 方法上面 +get/post 请求,三个加起来唯一就行。因此你会看到在一个类中存在相同的请求路径,但是请求方式是不一样的。
        如果jsp 页面中通过 el 表达式无法获取值的时候,可以在 jsp 页面添加如下代码解决:
<%@ page isELIgnored="false" %>

 


http://www.ppmy.cn/news/150177.html

相关文章

华硕天选FA506IU(R7 4600h)电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板华硕天选FA506IU 处理器AMD Ryzen 7 4600h已驱动 内存8GB DDR4 3200MHz已驱动 硬盘东芝 KXG5AZNV256G Windows 10已驱动 显卡集成显卡…

LS1028手册

LS1028手册 github&#xff1a; https://github.com/zgq1211267519/datasheet 百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/18tJ7_m52lI0qeMFel1Gbig 提取码&#xff1a;qrwl

2108

2108 转载于:https://www.cnblogs.com/Yinku/p/10737162.html

281

论文阅读备份

-0228

计算机2班邓家达

20-TSX

安装依赖&#xff1a; npm install vitejs/plugin-vue-jsx -D vite.config.ts <template><renderDom title"标题" on-click"getNum"></renderDom> </template><script setup lang"ts"> //npm install vitejs/plu…

SM16208

大神有没有SM16208S驱动程序和使用规格书&#xff0c;有重谢

20230117/18

昨天是0117&#xff0c;是我师傅在科技的最后一个夜晚。他在搞薪资那块&#xff0c;没交接给我&#xff0c;应该是我的给人的印象还不够靠谱。我之所以等他&#xff0c;不是要请他吃饭&#xff0c;而是他要交代我今天要做伙伴的一封信。 他说他以前跟人沟通也是随机发挥&#…