1. 新建RepeatSampleTag类,代码如下:
2. 配置xml文件(如何配置xml),部分代码如下:
3. 调用标签,部分代码如下:
Code is lovely
1. 新建RepeatSampleTag类,代码如下:
2. 配置xml文件(如何配置xml),部分代码如下:
3. 调用标签,部分代码如下:
1. 新建LoopTag类,代码如下:
2. 新建LoopTEI类,代码如下:
3. 新建“mytag.tld“xml配置文件(如何配置xml文件),内容如下:
4. 测试标签,新建test.jsp,代码如下:
|
|
|
|
|
|
|
|
|
|
|
|
1. 变量的显示与设置
显示变量2. 声明变量:`delare` 比如:echo $PATH
取消变量unset variablename
所有环境变量与其内容env #environment的缩写
查看所有变量set
delare -i number=$RANDOM*10/33
PS1='[\u@\h \w \A #\\#]\$ '
\d
按“星期月日”的格式显示\H
完整的主机名\h
仅取主机名在第一个小数点之前的名字\t
按“HH:MM:SS”的24小时格式显示时间\T
按“HH:MM:SS”的12小时格式显示时间\A
按“HH:MM”的24小时格式显示时间\@
按“am/pm”的12小时格式显示时间\u
目前用户的账号名称\v
BASH的版本信息\w
完整的工作目录名称\W
利用bashname函数取得工作目录名称\#
执行的第几个命令\$
提示符环境变量=全局变量7. 系统配额的设置 比如:
自定义变量=局部变量
ulimit -f 10240
-H
严格的设置-S
警告设置,若超过则发出警告-a
列出所有限制额度(后不接参数)-c
当某些进程发生错误时,将进程在内存中的信息写成文件(用于排错)-f
此shell可以创建的最大文件容量单位为KB(一般可能设置为2GB)-d
进程可使用的最大断裂内存容量-l
可用于锁定(lock)的内存量-t
可使用的最大CPU时间(单位秒)-u
单一用户可以使用的最大进程数量1. 新建HelloTag类
2. 添加额外的Jar包
(1). 右键项目 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs3. HelloTag类的详细代码
(2). 定位到tomcat安装目录的lib文件夹下(我的是:C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib)选择jsp-api.jar,确定
|
|
(1). 在WEB-INF下新建文件夹tlds
(2). 新建xml文件
Step 1
Step 2
Step 3
Step 4
(3). 配置xml文件
1234567891011 <?xml version="1.0" encoding="UTF-8"?><javaee:taglib version="2.1" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd "><javaee:tlib-version>1.0</javaee:tlib-version><javaee:short-name>demo</javaee:short-name><javaee:uri>/demo</javaee:uri><javaee:tag><javaee:name>hello</javaee:name><javaee:tag-class>bid.zhazhapan.fims.tag.HelloTag</javaee:tag-class><!-- 类所在的路径 --><javaee:body-content>empty</javaee:body-content><!-- 表示无标签体内容 --></javaee:tag></javaee:taglib>
详细代码
|
|
输出内容: Hello World
1. 一般模式
打开文件就直接进入一般模式(默认就是一般模式),可执行删除、复制、粘贴等操作,但无法编辑。
2. 编辑模式
按下“i, I, o, O, a, A, r, R”等任何一个字母进入编辑模式,[Esc]键退出编辑模式
3. 命令行模式
在一般模式中,输入“: / ?”3个中的任何一个,就可以进入命令模式
4. 按键说明
移动光标的方法(一般模式下) | |
---|---|
h或向左键 | 光标向左移动一个字符 |
j或向下键 | 光标向下移动一个字符 |
k或向上键 | 光标向上移动一个字符 |
l或向右键 | 光标向右移动一个字符 |
前面加数字,则移动n个字符,比如30j向下移动30行 | |
[Ctrl]+f | 屏幕向下移动一页(常用) |
[Ctrl]+b | 屏幕向上移动一页(常用) |
[Ctrl]+d | 屏幕向下移动半页 |
[Ctrl]+u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n<space> | n为数字,光标会向右移动这一行的n个字符 |
0 | 移动到这一行的最前面字符处(常用) |
$ | 移动到这一行的最后一个字符处(常用) |
H | 光标移动到屏幕最上方那一行的第一个字符 |
M | 光标移动到屏幕中央那一行的第一个字符 |
L | 光标移动到屏幕最下方那一行的第一个字符 |
G | 移动到这个文件的最后一行(常用) |
nG | n为数字,移动到这个文件的第n行 |
gg | 移动到这个文件的第一行(常用) |
N[Enter] | n为数字,光标向下移动n行(常用) |
/word | 向下寻找一个名称为word的字符串(常用) |
?word | 向上寻找一个名称为word的字符串 |
n | 重复前一个查找的操作 |
N | 反向进行前一个查找操作 |
:n1,n2s/word1/word2/g | n1与n2为数字,在第n1与n2行之间寻找word1,并将这个字符中替换为word2(常用) |
:1,$s/word1/word2/g | 在第1行和最后一行之间寻找word1,并将这个字符串替换为word2(常用) |
:1,$s/word1/word2/gc | 在第1行和最后一行之间寻找word1,并将这个字符中替换为word2,且在替换前给出用户提示(常用) |
x,X | x为向后删除一个字符,X为向前删除一个字符(常用) |
nx | n为数字,向后删除n个字符 |
dd | 删除光标所在的一整行(常用) |
ndd | n数字,删除光标所在的向下n行(常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除光标所在处到该行的最后一个字符 |
d0 | 删除光标所在处到该行的最前面一个字符 |
yy | 复制光标所在的那一行(常用) |
nyy | n为数字,复制光标所在向下n行(常用) |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p,P | p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标的上一行(常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据 |
u | 复原前一个操作(常用) |
[Ctrl]+r | 重做上一个操作(常用) |
. | 重复前一个操作(常用) |
一般模式切换到编辑模式 | |
---|---|
i, I | i为从目前光标所在处插入,I为在目前所有行的第一个非空字符插入(常用) |
a, A | a为从目前光标所在的下一个字符插入,A为从光标所在行的最后一个字符插入(常用) |
o, O | o为在目前光标所在的下一行处插入新的一行,O为在目前光标所在处的上一行插入新的一行(常用) |
r, R | r为只替换光标所在的那一个字符一次,R会一直替换光标所在的文字(常用) |
[Esc] | 退出编辑模式(常用) |
命令行的使用 | |
---|---|
:w | 保存(常用) |
:w! | 强制保存 |
:q | 退出(常用) |
:q! | 强制退出 |
:wq | 保存并离开 |
ZZ | 若文件没有改动,则不保存离开,若文件已经改动,则保存离开 |
:w[filename] | 将编辑的数据保存成另一个文件 |
:r[filename] | 在编辑的数据中,读入另一个文件的数据(在光标所在行后面追加) |
:n1,n2 w [filename] | 将n1到n2的内容保存成filename这个文件 |
:! command | 暂时离开vim到命令模式下执行command的显示结果。例如:! ls /home 即可在vim当中查看/home下面以ls输出的文件信息 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
时间、日期各计算机器
date #获取系统日期和时间
date +%Y/%m/%d #格式化日期
date +%H:%M #格式化时间
date +%Y/%m/%d/' '%H:%M #格式化日期和时间
cal #获取系统日历,默认显示当前月的数据
cal 2017 #获取某一年的日历
cal 6 2017 #获取某一年某个月的日历
bc #进入计算器 +加法 -减法 *乘法 /除法 ^指数 %余数 quit退出
重要的热键
查看系统的使用状态
who
netstat -a
ps -aux
sync
shutdown
reboot
改变文件属性与权限
chgrp [-R] dirname/filename
chown [-R] username directorOrFile
chmod [-R] xyz fileOrDirector
> ***说明**:xyz为rwx属性数据的相加,所属身份分别是owner、group、others,r:4, w:2 ,x:1*
4. 复制文件:`cp sourcefile targetfile`
目录的相关操作
cd path
pwd
> ***说明**:pwd是Print Working Directory的缩写*
3. 新建一个目录:`mkdir [-mp] directorname`
> ***说明**:-m配置文件案的权限,-p递归创建*
4. 删除目录:`rmdir [-p] directorname`
> ***说明**:-p连同上层“空的”目录也一起删除*
5. 文件的移动:`mv source target`
6. 文件的复制:`cp [-adfilprsu] source destination`
1. -a 相当于-pdr的意思(常用)
2. -i 若目标文件已经存在,在覆盖时会先询问操作的进行(常用)
3. -r 递归持续复制,用于目录的复制行为(常用)
7. 文件和目录的移除:`rm [-fir] fileOrDir`
1. -f 忽略不存在的文件,不会出现警告信息
2. -i 互动模式,在删除前会询问用户是否操作
3. -r 递归删除
文件内容查阅
cat
tac
nl
more
less
head
tail
od
文件的查询
which [-a] command
updatedb
):whereis [-bmsu] file
locate [-ir] keyword
find [PATH] [option] [action]
历史命令:
history 查看历史命令
!command 执行最近以command开关的命令
!number 执行历史中第number条命令
|
|
|
|
1.装载驱动程序
|
|
2.定义所要连接的数据库的地址
|
|
3.与数据库建立连接
|
|
4.建立语句对象
|
|
5.声明并执行SQL语句
|
|
6.对结果集进行处理
|
|
7.关闭对象
|
|
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true