Web前端AjaxAjax(Asynchronous JavaScript and XML),用来给服务器发送请求,并获取服务器响应的数据,可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,例如:搜索联想、用户名是否可用的校验,也就是异步交互技术。
原生Ajax:
1234567891011<!DOCTYPE html><html><body><div id="demo"> <h2>让 AJAX 更改这段文本</h2> <button type="button" onclick="loadDoc()">更改文本</button></div></body></html>
123456789101112Function loadDoc()function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp. ...
MyBatis
MyBatis官网:mybatis – MyBatis 3 | 简介
1)创建spingboot工程
2)配置mybatis的相关依赖,以及数据库连接信息
3)配置数据库表user,以及实体类User
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576package com.itheima.entity;public class User { private Integer id; private String name; private Short age; private Short gender; public User() { } public User(Integer id, String name, Short age, Short gend ...
MySQL
DDL(数据定义语言)数据定义语言
数据库操作查询所有数据库:SHOW DATABASES;查询当前数据库:SELECT DATABASE();创建数据库:CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];删除数据库:DROP DATABASE [ IF EXISTS ] 数据库名;使用数据库:USE 数据库名;
注意事项
UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
表操作查询当前数据库所有表:SHOW TABLES;查询表结构:DESC 表名;查询指定表的建表语句:SHOW CREATE TABLE 表名;
添加字段:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];例:ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';
修改数据类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);修改字段 ...
JavaSE日志日志能够方便程序员定位程序Bug,并且日志的开关很方便。
Logback利用Maven管理Logback下载,并且将logback.xml文件放入src路径下
关于Logback的使用,可以参考文档和教程
以下是一个简单示例:
123456789101112131415161718192021222324import org.sl4j.Logger;import org.sl4j.LoggerFactory; public class LogbackTest { public static final logger LOGGER = LoggerFactory.getlogger("LogbackTest"); public static void main(String[] args){ try { LOGGER.info("Division logging starts"); divide(10, 0); ...
DRF开发笔记在项目目录下的__init__.py文件中需要加入
123import pymysqlpymysql.install_as_MySQLdb()
来使用mysql
views.py实现视图函数本文件下实现的是增删改查功能,也就是get post put delete
123456789# Viewset实现from rest_framework.viewsets import ReadOnlyModelViewSet,ModelViewSetclass BookViewSet(ReadOnlyModelViewSet): queryset = BookInfo.objects.all() serializer_class = BookInfoSerializer class BookViewSet(ModelViewSet): queryset = BookInfo.objects.all() serializer_class = BookInfoSerializer
123456789101112131415161718192021222 ...
并发Bug笔记内容来自蒋炎岩老师的OS课程以及slides
死锁AA-Deadlockunlock之前出现中断,然后lock(),此时会出现spin
ABBA-Deadlock(最常见)
T->lock(A)->lock(B)
T->lock(B)->lock(A)
当一个线程lock AB后才能执行,但如果T1lock(A),T2lock(B),此时无法满足条件,死锁
如何避免死锁
Lock ordering
任意时刻系统中的锁都是有限的
给所有锁编号 (Lock Ordering)
严格按照从小到大的顺序获得锁
Proof (sketch)
任意时刻,总有一个线程获得 “编号最大” 的锁
这个线程总是可以继续运行
数据竞争(Data Race)不同的线程同时访问同一内存,且至少有一个是写
例子:
Case 1: 上错了锁
12345678910void T_1() { spin_lock(&A); sum++; spin_unlock(&A); } void T_2() ...
The Problems of Using OpenEuler WSL记录一下在OS课上使用OpenEuler WSL遇到的坑
OpenEuler 官方下载WSL系统的脚本十分炸裂,能在x86架构的机器上安装MIPS架构的结果,建议避雷,使用微软商店的软件包下载
本次实验的要求:
1.向OpenEuler系统,或者OpenKylin系统中,增加一个系统调用/或内核模块,鼓励程序逻辑的多样化2.撰写一个应用测试程序调用该系统调用/测试该内核模块3.使用trace/ptrace/strace,或类似的系统跟踪工具来对该测试程序进行跟踪调试
内核问题问题描述实验环境是在WSL2下使用OpenEuler,CentOS套壳
借鉴了一些网络上的代码后,对源码进行编译,下面是Makefile文件内容
123456789obj-m:=syscall.oPWD:= $(shell pwd)KERNELDIR:= /lib/modules/$(shell uname -r)/buildEXTRA_CFLAGS= -O0all: make -C $(KERNELD ...
hacker
未读[toc]
0x00 信息整理来源博客sunny_忧郁小猫猫 - 博客园 (cnblogs.com)
0x01 基础知识
Request请求数据包数据格式
请求行:请求类型/请求资源路径、协议的版本和类型
请求头:一些键值对,浏览器与web服务器之间都可以发送,特定的某种含义
空行:请求头与请求体之间用一个空行隔开;
请求体:要发送的数据(一般post提交会使用);例:user=123&pass=123
#请求行
请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们用空格分享。
例如:GET /index.html HTTP/1.1
HTTP 规划定义了8种可能的请求方法:
GET:检索URL中标识资源的一个简单请求
HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档
POST:服务器接受被写入客户端输出流中的数据的请求
PUT:服务器保存请求数据作为指定URL新内容的请求
DELETE:服务器删除URL中命令的资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
T ...
一、mul,div,and,or ,shl,shr,inc,dec指令,中断int 1234mul:8位乘法结果默认放在AX中,16位乘法,结果高位默认放在DX,低位在AXdiv:除数为8位,则AL存商,AH存余数;除数为16位,AX存商,DX存余数xchg op1,op2 ;交换op1和op2的值lea reg,mem(Label) 将变量名或标号的偏移地址送给reg
12345and:在二进制下一位位对比,两位皆为1则结果也为1,其他的皆为0or:二进制下,有一个1就为1,其他的都是0and和or运算常常用于ASCII码大小写转换and al,11011111B 转化为大写字母or al,00100000B 转换为小写字母
1234都是对无符号数的逻辑移位。算术移位是对有符号数的移位,算数移位时要把最前面的符号数不变shl al,1 表示左移一位,相当于乘以2shr al,1 表示右移一位,相当于除以2nop:占位符,占据一个字节
1int 0 引发内中断,相当于跳转调用0号中断处理程序
12inc si si++dec s ...