SpringMVC流程详细解答(已完结)

SpringMVC详细笔记~

基于web层的解决方案框架

入门开发步骤

1.1引入依赖

在这里插入图片描述

1.2、编写核心配置文件,定义包扫描

在这里插入图片描述

1.3、配置前端控制器

在这里插入图片描述

1.4、编写控制器(Controller)

在这里插入图片描述

1.5、启动访问测试

在这里插入图片描述

2、SpringMVC技术架构

在这里插入图片描述

2.1、springmvc控制器编写方式

在这里插入图片描述

3、SpringMVC的常见配置

3.1、静态资源处理

因为之前对DispatcherServlet的访问路径配置的是 / ,虽然访问.jsp资源,不会执行该Servlet,但是访问其他静态资源(.html/js/css/png/jpg…)时,会执行该Servlet,从而导致静态资源访问不成功。

3.1.1、放行静态资源方式一:配置资源处理器(不推荐)

这种方式要将所有静态资源挨个配置,麻烦
在这里插入图片描述

3.1.2、放行静态资源方式二:启用默认Servlet

当我们的DispatcherServlet处理不了请求时,交给默认的Servlet处理
在这里插入图片描述
3.1.3、放行静态资源方式三:修改DispatcherServlet的访问路径
当我们配置 / 时,静态资源的访问也会交给DispatcherServlet,此时无法处理,我们可以配置成基于后缀的匹配方式,那么对于不符合后缀的访问就不会交给DispatcherServlet
在这里插入图片描述

3.2、请求参数乱码解决

3.2.1、post请求乱码解决-配置字符过滤器

在这里插入图片描述

3.2.2、tomcat7插件,get请求乱码解决

在这里插入图片描述

SpringMVC纯注解开发(理解为主)

使用纯注解,主要替代xml的两个配置文件:spring-mvc.xml和web.xml

在这里插入图片描述
==注意:==之前spring-mvc.xml文件是在web.xml中读取的,我们知道,服务器启动时,会自动解析web.xml;那么当我们采用纯注解配置时,如何自动去解析该配置类呢。这里我们会用到之前咱们提到的spi机制。

4.2、替代web.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、SpringMVC请求

5.1、简单参数封装

在这里插入图片描述

5.2、复杂参数封装

在这里插入图片描述

5.2.1、集合/数组数据封装(了解)

在这里插入图片描述

5.3、时间类型的参数封装

之所以能进行参数封装,是因为内部有针对参数的转换器/格式化器,来完成数据类型的转换;如果源数据类型和要转换的目标数据类型不匹配时,就会导致封装失败;所以需要自定义转换器/格式化器

5.3.1 时间格式转化方式一

5.3.2时间转化方式二

在这里插入图片描述

5.4、获取其他请求数据

在这里插入图片描述

6、SpringMVC响应

6.1、资源跳转方式

资源跳转方式有转发和重定向两种,默认采用的是转发

6.1.1默认跳转

在这里插入图片描述

6.2.2、指定跳转方式

在这里插入图片描述

6.2、域对象响应数据方式(默认Request域)

6.2.1、返回资源路径

在这里插入图片描述

6.2.2、返回ModelAndView

在这里插入图片描述

6.2.3、指定session域存储

在这里插入图片描述

6.3、响应字符串/Bean对象

在这里插入图片描述

SpringMVC_day02

1、ajax和springmvc结合使用

1.1、@ReqeustBody的使用

在这里插入图片描述

1.2、跨域访问(@CrossOrigin)

浏览器基于安全考虑,当异步请求的请求源和请求的目标不满足同源策略(协议/ip或域名/端口都相同,称之为同源,否则不同源)时,浏览器会阻止响应数据到达请求源,此时需要目标资源设置响应头,实现跨域访问
在这里插入图片描述

1.2、springmvc拦截器使用

Filter,属于JavaEE技术,web组件之一,拦截请求,和响应

Interceptor,属于框架技术,拦截处理器方法

2.1、编写类拦截器

在这里插入图片描述

2.2、配置拦截器

在这里插入图片描述

2.3、拦截器链的执行效果

多个拦截器基于责任链设计模式关联在一起,按照某种顺序依次执行;

责任链设计模式对于这种顺序的维护常见的就两种形式:
​ ① 链表

​ ② 数组

2.3.1、多个拦截器执行效果代码理解

在这里插入图片描述

2.3.2、多个拦截器执行效果 图解

在这里插入图片描述

3、springmvc异常处理器使用

当处理器中出现异常时,可以由专门的异常处理器来完成统一的异常处理

3.1、方式一

在这里插入图片描述

3.2、方式二(注解形式)

在这里插入图片描述

3.3、异常通用处理

开发中,异常分为用户行为导致的,我们称之为业务异常, 这类异常只要提示用户对应信息即可,不需要后期修复程序;还有一类异常,需要后期修复程序来规避异常的产生,所以一般会记录异常信息到日志文件。
在这里插入图片描述
在这里插入图片描述

4、springmvc文件上传

springmvc内部,封装了fileupload的文件上传功能,直接引入组件,即可使用

4.1、引入FileUpload依赖

在这里插入图片描述

4.2、引入文件上传组件

在这里插入图片描述

4.3、编写Controller,实现文件上传(页面满足文件上传三要素)

在这里插入图片描述

5、restfull API使用

restfull是一种接口风格,请求的动作通过请求方式标识,请求参数隐藏在请求路径中

get请求,获取数据

post请求,提交数据

delete请求,删除数据

put请求,更新数据

5.1、添加restfull支持的过滤器

在这里插入图片描述

5.2、前台页面中,form内需要添加一个隐藏字段,定义请求方式

在这里插入图片描述

5.3、Controller中,通过@PathVariable获取路径中的参数

@RestController === @Controller + @ResponseBody

get请求
在这里插入图片描述
post请求
在这里插入图片描述
put请求
在这里插入图片描述
delete请求
在这里插入图片描述

SpringMVC_day03

1、后台校验(JSR303校验框架使用)

1.1、引入依赖

在这里插入图片描述

1.2、开启校验

在这里插入图片描述
在这里插入图片描述

1.3、编写校验器,实现合法性校验

在这里插入图片描述

2、ssm整合步骤(很详细,具体)

整合service和dao
添加依赖
基于三层结构,创建包结构
定义Dao接口
定义Servic层接口和实现类
添加spring的核心配置文件
包扫描(service&dao)
SqlSessionFactoryBean & MapperScannerConfigurer – 整合mybatis
DataSourceTransactionManager & tx:annotation-driven – 整合事务
aop:aspectj-autoproxy – 整合切面编程
定义dao接口的映射(xml配置/注解)
整合junit测试,完成业务层功能的测试
=====整合web + service和dao
添加springmvc核心配置文件
包扫描(controller)
mvc:annotation-driven
拦截器配置/静态资源放行/视图解析器(前后缀)/文件上传的解析器
配置web.xml
DispatcherServlet – 指定核心配置文件
POST请求乱码过滤器
实现PUT/DELETE请求的过滤器

配置ContextLoaderListener(ServeltContextListener)监听器 -- 在服务器启动时,加载业务层&dao层的ioc容器,并且实现父子容器的关联  -- 整合spring和springmvc

编写控制器
@RestController(@Controller+@ResponseBody)
@PathVariable
@GetMapper/@PostMapper/@PutMapper/@DeleteMapper**

以上是本人学习过程总结出来的一些笔记供大家参考,如有不对的地方诚恳的希望各位大佬指出
机会都是留给有准备的人,乾坤未定,你我皆是黑马

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 2

打赏作者

莜沫つ°

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值