先来一段最近java的复习内容
接口是要把方法的定义和实现区分开,在接口 中定义抽象方法,在子类 中实现方法
程序 是一段静态的代码,是应用软件执行的蓝本。进程 是程序一次动态执行的过程,对应从代码加载,执行到执行完毕的一个完整过程。 线程 是比进程更小的执行单位
通过接口可以实现不相关 子类 的相同方法
子类不能从父类继承 构造 方法
如子类构造方法体中没有显式调用父类构造方法,则系统在执行子类的构造方法时会______自动____(自动/显式)调用父类的____默认______构造方法(即无参的构造方法)
一个线程可以理解为由以下三个部分组成:(1)虚拟的___CPU______,专门用于执行该线程的任务;(2)代码:在程序中表现为特定的__方法_______;(3)数据:在程序中表现为__变量_______。
异常处理:
异常是特殊的运行错误对象,java语言有其特定的异常处理机制。java中引用异常和异常类来进行错误处理,通过面向对象的方法来处理异常
抛出异常:
生成异常对象
在一个方法的运行过程中,如果发生异常,则这个方法会生成代表该异常的一个对象
把异常对象交给运行时系统
产生异常对象的方法会把该异常对象交给运行时系统
处理异常
捕获异常
运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含响应异常处理的方法为止
异常类:
java的异常类都是 java.lang.Throwable类的子类
java的每一个异常类都包含了该运行错误的信息和处理错误的方法
RuntimeException异常 可以通过恰当的编程去避免,Java不要求捕获这类异常
非RuntimeException异常 是由环境原因造成的异常,必须由程序进行处理,否则编译不能通过
Throwable类分为 Error类 和Exception 类
用户自定义的异常:由Exception类或其子类派生出来的类,用于处理与具体应用相关的异常
用户程序自定义的异常必须借助throw语句来定义何种情况下算是产生了对应的错误,并抛出这个异常类的对象
catch语句块:异常处理语句块,用来捕获和处理异常
多异常处理机制
一个try块可能产生多种不同的异常,如果希望能采用不同的方法来处理,就需要使用多异常处理机制,即在try块后定义多个catch块,每个catch块用来接收和处理一种特定的异常对象
当异常对象和catch的参数类型相匹配时,直接跳转转到这个catch块
何为相匹配:
异常对象与参数属于相同的异常类
异常对象属于参数异常类的子类
异常对象实现了参数所定义的接口
如果所有的catch块都不能与当前的异常对象相匹配,则说明当前方法不能处理这个异常对象,程序将返回到调用该方法的上层方法,以此类推,直到返回Java运行系统
finally语句
不论在try代码块中是否发生了异常,finally块中的语句都会被执行
finally语句块中经常要做一些资源清理工作,如闭关文件等。
try语句块后至少要有一个catch语句块或一个finally语句块 finally语句块是可以没有的
接下来就是正片
SpringMVC简介

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
优点
使用简单,开发便捷
灵活性强
使用SpringMVC技术需要导入SpringMVC坐标 与Servlet坐标
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10RELEASE </version>
</dependency>





启动服务器这段代码是固定的
首先执行create.. 里的代码,创建web对象,同时 register加载了SpringMvcConfig,加载到哪,一定是ServletContext,因为它是web容器中最大的容器,执行@ComponentScan加载对应的bean,加载UserController,每个@RequestMapping的名称对应一个具体的方法

请求与响应
团队多人开发,每人设置不同的请求路径,冲突问题如何解决-设置模块名作为请求路径前缀




@EnableWebMvc可以开启接收JSON格式的请求体
另外要加入坐标
<dependency>
<groupId>com.fasterxml.jackson.core <groupId>
<artifactId>jackson-databind</artifactId>
<version></version>
</dependency>
处理JSON请求的步骤
1.添加json数据转换相关坐标
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
2.设置发送json请求体

3.开启自动转换json数据的支持
@EnableWebMvc

日期类型参数传递
日期类型数据基于系统不同格式也不尽相同
转化日期格式的注释 @DataTimeFormat(pattern="yyyy-MM-dd")


响应:
对于返回值,就是返回字符串,跳到字符串的页面
@ResponseBody 将返回值自动转为JSON





