try catch:处理异常

throw/throws:不处理 抛出

jvm中断程序运行 打印错误信息

web:经典三层模型

dao(mapper)

service

web

异常抛给web层Controller类的方法每个方法可能处理异常,可能处理异常代码相似,造成重复代码重复编写

web层再往上抛     -&gt前端控制

SpringMVC处理异常机制如下

异常处理器实现

第一种方式

1.异常处理

1.异常分类:

1)系统异常(jdk自带异常),程序问题

2)业务异常(自定义异常),用户不正当操作导致。

我们编写的类的方法中  使用throw new自定义一查各类

判断异常类型 -> instanceof

model添加不同数据

把这个类交给spring管理

第二种方式

去掉上面这个

MyBookException.java

异常的advice异常通知类 对controller类的方法的增强

@ControlleAdvice

public class BookExceptionController{

@ResponseBody
public Map handleException(BookBaseException){

}

}

throw throws throwable

在处理异常的方法上使用@ExceptionHandler表示这个方法处理那种异常

如果响应json数据给前端,在方法上添加@ResponseBody注解

登录

这个实现需要注入mapper

异常类

2.文件上传组件

SpringMVC对commitsfileupload封装
提供文件上传组件: CommonsMultipartResolver 使用的时候,只需要springmvc配置文件配置

提供了接收文件类型数据类型: MultipartFile

前端要求:

  1. 提交方式: post
  2. 如果是ajax请求contenttype: multipart/formdata 
  3. 表单提交: enctype= multipart/formdata  

controller 进行参数绑定

后台要求

common-fileUpload

3.拦截器(Springmvc  过滤器javaweb的)

Interceptor

filter

1.过滤器是Javaweb技术,只要是javaWeb项目可以使用,拦截器是SpringMVc框架的,项目添加SpringMVC依赖,才可以使用

2.过滤器配置/*,拦截所有资源请求拦截器,/** 拦截的经过前端控制器的请求

3.执行时间,过滤器执行,拦截器是否执行

没有经过前端控制器不会拦截


拦截器实现

1.编写一个实现拦截器接口Handlerlnterceptor

亦可以是作为异常处理器使用

排除请求 那些url(自定义)

拦截器里面的方法一定都执行吗?它们的顺序是什么?

一个拦截器执行流程

客户端请求先经过拦截器的PreHandler()->返回true放行请求可以继续请求返回false请求结束

一个就是执行处理器当中的方法->再进入拦截器PostHandle()->再走到拦截器的AfterCompletion

->如果上一步都完成了,说明请求完成

多个浏览器

谁先配谁先执行 -Ainterceptor ->Binterceptor  此时A  B都放行 都会到目标资源

规律:

1. preHandle()执行顺序mvc:interceptor顺序一致, postHandl
afterCompletion()与
mvc:interceptor顺序相反

2.处理器能不能执行,要求所有的拦截器的preHandle()返回true才执行

3.只要某个拦截器的preHandle()方法返回true,这个拦截器的afterCompletion()一定执行

拦截器中Prehandle()用的比较

 

原文地址:https://blog.csdn.net/weixin_53415999/article/details/134636951

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15203.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注