今天完成的事情:
Java的基复习接口和继承
* 补充:
* 继承:
* 1.Java可以向上转型(子类可转成父类),但是无法想下转型(父类不能转成子类)。
* 为什么呢?
* 因为子类的功能一般比父类多,转成父类,那些多的功能没办法消失,所以转型的过程中可能会失败,报错。
* 为了避免向下转型出错,Java提供了instanceof操作符,可以先判断一个实例究竟是不是某种类型
写了一个多态
/**
* 编写一个有普通收入、工资收入和享受国务院特殊津贴的小伙伴算税:
* 会根据创建的对象不同,自动调用不同方法
*/
public class PolymorphicDemo {
public static void main(String[] args) {
Income[] incomes = new Income[]{
new Income(3000),//返回income * 0.1,故值为300
new Salary(7500),//返回(income - 5000) * 0.2,值为500,但加上300,最终结果为800
new StateCouncilSpecialAllowance(15000)//return 0;,本来结果为0,加上800,所以最终结果是800
};
System.out.println(totalTax(incomes));//800
}
public static double totalTax(Income... incomes){
double total = 0;
for (Income income : incomes){
total = total + income.getTax();
System.out.println(total);
}
return total;
}
static class Income{
//protected 子类可以访问
protected double income;
public Income(double income){
this.income = income;
}
public double getTax(){
return income * 0.1; // 税率10%
}
}
static class Salary extends Income{
public Salary(double income){
super(income);
}
@Override
public double getTax(){
if (income <= 5000){
return 0 ;
}
return (income - 5000) * 0.2;
}
}
static class StateCouncilSpecialAllowance extends Income{
public StateCouncilSpecialAllowance(double income){
super(income);
}
@Override
public double getTax(){
return 0;
}
}
}
结果:
======================
1.查看接口定义格式,分别给出CRUD的接口文档格式
新增用户
请求接口:POST /api/v1/user/add
请求参数:
字段 | 说明 | 类型 | 备注 | 是否必填 |
id | | int | 用户ID | 是 |
studentId | | int | 学号 | 是 |
name | | varchar | 名字 | 是 |
gender | | tinyint | 性别 | 是 |
birthday | | date | 生日 | 是 |
created_time | | timestamp | 创建时间 | 否 |
updated_time | | timestamp | 修改时间 | 否 |
返回参数:
字段 | 说明 | 类型 | 备注 | 是否必填 |
code | code码 | number | | 是否必填 |
message | 返回信息 | String | | 是 |
根据用户ID和学号查找用户
请求接口:GET /api/v1/user/list/{id} | | {studentId}
请求参数:
字段 | 说明 | 类型 | 备注 | 是否必填 |
id | | int | 用户ID | 是 |
studentId | | int | 学号 | 是 |
返回参数:
字段 | 说明 | 类型 | 备注 | 是否必填 |
code | code码 | number | | 是否必填 |
message | 返回信息 | String | | 是 |
剩下的删除和修改,没有放出来
======================
查看自己之前的日报(11.11~11.16)
1.今天我们访问网站都是通过Browser(浏览器)/Server(服务器)模式,这个模式来实现的。
浏览器发送一个URL(这就是网址吧)请求到服务器,服务器生成HTML网页(不过HTML因为是静态的,无法交互,现在都使用jsp,在数据库修改可以看见)
这个中间是通过HTTP协议,先建立TCP连接,然后发送请求,等待服务器生成HTML网页,然后收到HTTP响应
想到自己是在本地通过运行Tomcat,然后它会自动出来一个网页,是我对tomcat发出请求,然后它通过spring-mvc出现一个网页
本地——浏览器,这中间的过程是什么?
tomcat,spring-mcv,jsp,数据库在这个其中各自的作用是什么?
这个过程应该是spring-mcv,通过dao从数据库获取数据,然后把数据给jsp,jsp通过tomcat去打开一个网页。从jsp到tomcat在到浏览器这个过程是怎么实现的?
而自动出现是这个网址,
http://localhost:8080/SpringMVCone_war_exploded/Student/getAllStudent
直接打开jsp,无法出现内容,是因为它没有经过JDK编译后把内容发给客户端去显示,是因为没有这个编译的过程,所以直接打开jsp,无法出现内容
在后面加上/Student/getAllStudent 也无法显示类容
======================
3.根据接口文档,使用Spring Rest 编写对应的Controller,日志记录接收参数后,暂时不用写业务逻辑,直接返回JSP,直接用Json Tag-lib 生成假数据
Rest是啥? Json是啥? 假数据又是什么东西?
1.rest (就是之前看的rest风格,对应接口文档应该就是这个:请求接口:POST /api/v1/user/add )
REST即表述性状态传递(英文:Representational State Transfer,简称REST
用URL定位资源,用HTTP描述操作
比如,我们有一个friends接口,对于“朋友”我们有增删改查四种操作,怎么定义REST接口?
增加一个朋友,uri: generalcode.cn/v1/friends 接口类型:POST
删除一个朋友,uri: generalcode.cn/va/friends 接口类型:DELETE
修改一个朋友,uri: generalcode.cn/va/friends 接口类型:PUT
查找朋友,uri: generalcode.cn/va/friends 接口类型:GET
反例:generalcode.cn/va/deleteFriends 该接口用来表示删除朋友,这就是不符合REST协议的接口。
好处:前后端分离。
前端拿到数据只负责展示和渲染,不对数据做任何处理。
后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口,
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON建构于两种结构:
1)“名称/值”对的集合(A collection of name/value pairs)。
不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2)值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
======================
学习SpringMVC
SpringMVC的常用注解
1、@Controller (表明这是一个控制类)
在SpringMVC 中提供了一个非常简便的定义Controller 的方法,只需使用@Controller 标记一个类是Controller
2.@RequestMapping
一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
3、@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入
4.@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri中的变量作为参数
5.@requestParam主要用于在SpringMVC后台控制层获取参数
6.@ResponseBody 该注解用于将Controller的方法返回的对象 一般在返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
7.@Repository 用于注解dao层,在daoImpl类上面注
明天计划的事情:
编写spring-mvc的代码,
遇到的问题:
以上
收获:
以上
任务进度:任务2步骤 3
任务开始时间:2020-11-30
预计结束时间:2020-12-20
评论