SpringMVCDay01

先来一段最近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

相关推荐
冰冰菜的扣jio2 小时前
InnoDB对于MVCC的实现
java·数据库·sql
Macbethad2 小时前
SpringMVC RESTful API开发技术报告
java·spring boot·后端
AC赳赳老秦2 小时前
农业智能化:DeepSeek赋能土壤与气象数据分析,精准预测病虫害,守护丰收希望
java·前端·mongodb·elasticsearch·html·memcache·deepseek
代码游侠2 小时前
复习——网络测试工具
linux·开发语言·网络·笔记·学习·测试工具
纟 冬2 小时前
Flutter & OpenHarmony 运动App运动提醒组件开发
android·java·flutter
Felven2 小时前
C. Contrast Value
c语言·开发语言·算法
雪花desu2 小时前
【Hot100-Java简单】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
java·数据结构·算法·leetcode·哈希表
leaves falling2 小时前
c语言打印闰年
java·c语言·算法
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 37--测试报告 Allure 前置步骤-配置安装 JDK 详细图文教程
java·开发语言·学习·测试工具