EL 表达式、JSTL 标签库、文件上传与下载
EL 表达式、JSTL 标签库、文件上传与下载EL 表达式 与 JSTL 标签库EL 表达式EL 表达式概述以及它的作用EL 表达式的全称是:Expression Language,即 表达式语言。
EL 表达式的作用:主要是为了替代 jsp 页面中的表达式脚本在 jsp 页面中进行数据输出。因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
EL 表达式的格式: ${ 表达式 }
EL 表达式在输出 null 值的时候,输出的是空串。 jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。
EL 表达式的搜索域的顺序EL 表达式主要是在 jsp 页面中进行数据输出,而且主要是输出域中对象的数据。
当 jsp 四大域对象都有相同 key 属性时,EL 表达式会按照四个域的从小到大的排序去进行搜索,找到就进行输出。
123456789<body> <% pageContext.setAttribute("key", "pageContext"); request.s ...
JSP(Java server pages)笔记
JSP(全称: Java server pages)笔记一、认识 jsp1. jsp 的作用jsp 的全称为 java server pages ,即 Java 的服务器页面,它的主要作用是替代 Servlet 程序回传 html 页面的数据。
因为 Servlet 程序回传 html 页面数据是一件非常繁琐的事情,开发成本和维护成本极高,所以使用 jsp 来替代 Servlet 回传数据。
2. jsp 的本质jsp 本质就是一个 Servlet 程序。
当我们第一次访问 jsp 页面的时候,Tomcat 服务器会帮我们把 jsp 页面翻译为一个 java 源文件。并且对它进行编译为 .class 字节码程序。查看由 jsp 页面翻译楚的 java 源文件可以看出它继承了 HttpJspBase 类,而 HttpJspBase 类直接继承了 HttpServlet 类。也就是说,jsp 翻译出来的 java 类,它间接的继承了 Httpservlet 类,所以 jsp 的本质就是 Servlet 程序。
123456/*HttpJspBase 类源代码 */public abstr ...
MySQL 笔记
MySQL 笔记MySQL 的数据目录Windows 和 Linux 规则区别123456# 查看当前大小写敏感参数show variables like '%lower_case_table_names%';# 默认为 0 ,大小写敏感# 设置为 1 ,大小写不敏感,创建表都是以小写形式存储在磁盘上,对于 sql 语句也都是转换为小写对表和数据库进行查找# 设置为 2 ,创建表和数据库依据语句格式存放,凡是查找都是转化为小写进行。
平台大小写区别:
Linux下 数据库名、表名、列名、别名大小写规则如下:
数据库名、表名、别名、变量名都是严格区分大小写的
关键字、函数名在 SQL 中不区分大小写
列名与列的别名在所有情况下均忽略大小写
在 Linux 下的目录结构123数据库文件存放路径:/var/lib/mysql/相关命令目录:/usr/bin/ 和 /usr/sbin/配置文件目录:/usr/share/mysql-8.0(命令及配置文件) 和 /etc/mysql
MySQL 的默认数据库
mysql
存储了 MySQL 的用户账户 ...
Nginx 笔记
Nginx 笔记Nginx 是一款高性能的 HTTP 和 反向代理服务器,并发能力强。
反向代理正向代理是什么? 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。反向代理,客户端对代理是无感知的,客户端不需要做任何配置,只需要将请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就算一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址。
负载均衡单服务器解决不了,增加服务器数量,将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,多个服务器进行共同分担请求,就是将负载分发到不同服务器,这种方法叫负载均衡。
动静分离为了加快网站的解析速度,可以将动态资源 与 静态资源由不同的服务器来解析,加快解析速度,降低服务器压力。Nginx 的动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat处理动态页面。
动静分离从 ...
Redis 笔记
Redis 笔记Redis 常用五大数据类型字符串(String)数据结构String 的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。
即可以修改的字符串,内部结构实现类似 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。
![String 内存分配空间图](D:\笔记\imgs\String 内存分配空间图.png)
如上图,内部为当前时间分配空间 capacity,一般要高于字符串实际长度 len。
当字符串长度小于 1M 时,扩容都是将当前空间加倍。但当超过 1M 时,扩容一起只会多扩容 1M 的空间大小。
另外需要注意的是,字符串长度最大为 512M。
命令
功能
set <key> <value>
添加键值对数据
get <key>
查询对应键所对应的值
append <key> <value>
在对应键的值尾部追加新的值
strlen <key>
获取键对应值的长度
incr/decr <key&g ...
Servlet 接口笔记
Servlet 接口笔记一、ServletConfig 接口什么是 ServletConfig?ServletConfig :获取 Servlet 程序的配置信息接口,封装着初始化配置信息获取的一系列方法。
Servlet 程序和 SeervletConfig 对象都是由 Tomcat 负责创建,程序员负责使用。
Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象(即每一个 Servlet 程序对应一个自己的 ServletConfig 对象,各 Servlet 程序之间的 ServletConfig 对象相互独立)。
ServletConfig 接口的三大作用
可以获取 Servlet 程序的别名 servlet-name 对应的值
获取初始化参数 init-parpam 对应的值
获取 ServletContext 对象
对应方法:
getServletName(): 获取 Servlet 程序别名,即 配置文件中 servlet 标签中的 servlet-na ...
Vim 快捷键
1) 一般模式下进行的操作一般模式主要能进行的功能是:删除、复制、粘贴
按键
功能
yy
复制光标当前一行
y 数字 y
从光标当前行一次性复制所按数字行内容
p
在光标这行粘贴字段
u
撤销,返回上一步
dd
删除光标当前行内容
d 数字 d
从光标当前行一次性删除所按数字行内容
x
剪切当前光标后的字符(类似 del)
X
剪切当前光标前的字符(类似 Backspace)
w
移动光标到当前光标所在单词的开头
e
移动光标到当前光标所在单词的末尾
yw
复制当前光标到此单词末尾的字符
dw
删除当前光标到此单词末尾的字符
Shift + ^
光标移动到行头
Shift + $
光标移动到行尾
2)进入编辑模式快捷键
按键
功能
i
当前光标前
a
当前光标后
o
当前光标的下一行
I
光标所在行的最前
A
光标所在行的最后
O
当前光标行的上一行
退出编辑模式按下 Esc 键位即可
3)指令模式部分快捷键
按键
功能
:w
保存文件
:q
退出文件
:wq
保存并 ...
Spring5 笔记
IOCSprint 配置的两种基本注入属性方法依赖 bean 对象中的 set 方法进行属性的注入:1234<bean id="book" class="pers.uang.pojo.Book"> <property name="name" value="人间失格"></property> <property name="author" value="太宰治"></property></bean>
依赖 bean 对象的有参构造器进行属性的注入:1234<bean id="book" class="pers.uang.pojo.Book"> <constructor-arg name="name" value="人间失格"></constructor-arg> ...
数据结构与算法(二叉树、树、森林)笔记
二叉树、 树、森林基本概念和性质
二叉树总节点个数
$n = n_0 + n_1 + n_2$
$总分支数 + 1$
分支 $n_2$ 即度为 $2$ 两个分支, $n_1$ 度为 $1$ ,衍生: $2n_2 + n_1 + 1$
满二叉树节点个数: $2^n - 1$
某层最大节点数:$2^{(n - 1)}$
叶子节点数 $n_0 = n_2 + 1$
完全二叉树深度:$\left \lfloor log_2n \right \rfloor + 1$
二叉树遍历相关算法:
中序遍历非递归算法
二叉树的层次遍历
二叉树的建立
复制二叉树
计算二叉树深度
计算二叉树节点总数
计算二叉树叶子节点个数
线索二叉树的创建
树
树的存储结构
数组配合链表进行存储
双亲表示法
孩子表示法
结合上两种表示法 –> 带孩子的双亲链表表示法
二叉链表示法
孩子兄弟表示法
树的遍历
先、后序遍历
层次遍历
森林
将森林看成三个部分:
森林中第一棵树的根节点
森林中第一棵树的子树森林
森林中的其他树构成的森林
森林的遍历 ...
Cookie 技术与 Session 会话笔记
Cookie 技术与 Session 会话Cookie 技术什么是Cookie?
Cookie 是服务器通知客户端保存键值对的一种技术
客户端有了 Cookie 后,客户端的每次请求都会发送给服务器
每个 Cookie 的大小不能超过 4 kb。
java 中使用 Cookie 技术需要导入 javax.servlet.http.Cookie 包
Cookie 的创建代码格式:
1Cookie cookie = new Cookie("key1", "value1")
创建好 Cookie 后需要通知浏览器保存 Cookie,否则无效:
12// 通过响应头告诉浏览器需要将 Cookie 保存下来,从浏览器上看到 响应头为: Set-Cookieresp.addCookie(cookie)
Cookie 的创建,一次可以创建多个,可以一起传递给浏览器保存。
服务器获取 Cookie代码格式:
12// 获取客户端传来的 Cookie 构成的 Cookie 数组Cookie[] cookies = req.getCookie()
Co ...