SSM笔记
发布日期:2022-02-28 20:48:42 浏览次数:30 分类:技术文章

本文共 3056 字,大约阅读时间需要 10 分钟。

SpringMVC基本应用

MVC模式

  • MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。

请添加图片描述

SpringMVC概述

  • SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,属于SpringFrameWork 的
    后续产品,已经融合在 Spring Web Flow 中。
  • SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。
  • SpringMVC的框架就是封装了原来Servlet中的共有行为;例如:参数封装,视图转发等。
  • SpringMVC的开发步骤:
  • 1.创建web项目,导入SpringMVC相关坐标
  • 2.配置SpringMVC前端控制器 DispathcerServlet
  • 3.编写Controller类和视图页面
  • 4.使用注解配置Controller类中业务方法的映射地址
  • 5.配置SpringMVC核心文件 spring-mvc.xml

SpringMVC的执行流程

请添加图片描述

请添加图片描述

SpringMVC组件解析

请添加图片描述

SpringMVC注解解析

@Controller

SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将Controller存储到Spring容器

中,如果使用@Controller注解标注的话,就需要使用
<!--配置注解扫描--> <context:component-scan base-package="com.lagou.controller"/>

@RequestMapping

请添加图片描述

  • SpringMVC的三大组件
    处理器映射器:HandlerMapping
    处理器适配器:HandlerAdapter
    视图解析器:View Resolver
  • 开发者编写
    处理器:Handler
    视图:View

SpringMVC的请求

SpringMVC可以接收如下类型的参数:

  • 基本类型参数
  • 对象类型参数
  • 数组类型参数
  • 集合类型参数

获取基本类型参数

  • Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。并且能自
    动做类型转换;自动的类型转换是指从String向其他类型的转换。

请添加图片描述

获取对象类型参数

  • Controller中的业务方法参数的POJO属性名与请求参数的name一致,参数值会自动映射匹配。

请添加图片描述

中文乱码过滤器

  • 当post请求时,数据会出现乱码,我们可以设置一个过滤器来进行编码的过滤。

请添加图片描述

获取数组类型参数

  • Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配。

请添加图片描述

获取集合(复杂)类型参数

  • 获得集合参数时,要将集合参数包装到一个POJO中才可以。

请添加图片描述

请添加图片描述

自定义类型转换器

请添加图片描述

相关注解

@RequestParam

  • 当请求的参数name名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定

请添加图片描述

@RequestHeader

请添加图片描述

@CookieValue

请添加图片描述

获取Servlet相关API

请添加图片描述

SpringMVC的响应

SpringMVC响应方式介绍

页面跳转

  1. 返回字符串逻辑视图
  2. void原始ServletAPI
  3. ModelAndView

返回数据

4. 直接返回字符串数据
5. 将对象或集合转为json返回

返回字符串逻辑视图

请添加图片描述

void原始ServletAPI

请添加图片描述

转发和重定向

请添加图片描述

ModelAndView

方式一

请添加图片描述

方式二

请添加图片描述

@SessionAttributes

请添加图片描述

静态资源访问的开启

请添加图片描述

请添加图片描述

springmvc进阶

@RequestBody

  • 该注解用于Controller的方法的形参声明,当使用ajax提交并指定contentType为json形式时,通过
    HttpMessageConverter接口转换为对应的POJO对象。

@ResponseBody

  • 该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数
    据如:json,xml等,通过Response响应给客户端。

RESTful

  • Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和
    服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。
  • GET:读取(Read)
  • POST:新建(Create)
  • PUT:更新(Update)
  • DELETE:删除(Delete)

请添加图片描述

@PathVariable

  • 用来接收RESTful风格请求地址中占位符的值
  • @RestController
  • RESTful风格多用于前后端分离项目开发,前端通过ajax与服务器进行异步交互,我们处理器通常返
    回的是json数据所以使用@RestController来替代@Controller和@ResponseBody两个注解。

文件上传三要素

  • 表单项 type=“file”
  • 表单的提交方式 method=“POST”
  • 表单的enctype属性是多部分表单形式 enctype=“multipart/form-data"
    请添加图片描述

文件上传原理

  • 当form表单修改为多部分表单时,request.getParameter()将失效。
  • 当form表单的enctype取值为 application/x-www-form-urlencoded 时,
  • form表单的正文内容格式是: name=value&name=value 当form表单的enctype取值为 mutilpart/form-data 时,请求正文内容就变成多部分形式:

异常处理

请添加图片描述

拦截器

拦截器(interceptor)的作用

  • Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。
  • 将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截
    的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。

拦截器和过滤器区别

请添加图片描述

  • 请添加图片描述

SSM整合

spring整合mybatis

1)整合思想

  • 将mybatis接口代理对象的创建权交给spring管理,我们就可以把dao的代理对象注入到service中,
    此时也就完成了spring与mybatis的整合了。

导入整合包

org.mybatis
mybatis-spring
1.3.1

spring整合springMVC

1)整合思想

  • spring和springMVC其实根本就不用整合,本来就是一家。
  • 但是我们需要做到spring和web容器整合,让web容器启动的时候自动加载spring配置文件,web容
    器销毁的时候spring的ioc容器也销毁。

spring和web容器整合

  • 可以使用spring-web包中的ContextLoaderListener监听器,可以监听servletContext容器的创建和
    销毁,来同时创建或销毁IOC容器。

转载地址:https://blog.csdn.net/weixin_53381980/article/details/119153278 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:我来告诉你哪款项目管理工具简单又高效!
下一篇:6-2Spring

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月14日 03时27分54秒