- 测试测试测试测试测试测试测试测试测试测试测试测试测试
fish-man
单片机
Dockar安装步骤需要购买一个安装依赖包sudoyuminstall-yyum-utils设置镜像仓库sudoyum-config-manager\--add-repo\http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装docker引擎sudoyuminstalldocker-ce启动dockersudosystem
- 扩展Linux完整性度量IMA/EVM到Android
1.完整性度量概述运行时的系统完整性由系统的访问控制机制保证,如DAC(DiscreteAccessControl,间接访问控制)/MAC(MandatoryAccessControl,强制访问控制,如SELinux,Smack)。DAC/MAC无法检测文件的离线修改;加密文件系统可以保护非法访问,但开销大,效率相对较低。完整性度量,将文件内容和文件的属性/扩展属性,通过加密哈希生成对应的ima/
- 手撕Spark之WordCount RDD执行流程
啊Abu
Sparkspark
手撕Spark之WordCountRDD执行流程文章目录手撕Spark之WordCountRDD执行流程写在前面软件环境代码过程分析写在前面一个Spark程序在初始化的时候会构造DAGScheduler、TaskSchedulerImpl、MapOutTrackerMaster等对象,DAGScheduler主要负责生成DAG、启动Job、提交Stage等操作,TaskSchedulerImpl主
- Mermaid流程图
海天鹰
JS流程图
手动画流程图太复杂了,用极少的字符生成图表是人生的梦想。MermaidChart-Createcomplex,visualdiagramswithtext.Asmarterwayofcreatingdiagrams.Linux开始菜单流程图flowchartA(["StartMenu"])-->B["/usr/share/applications"]&C["~/.local/share/appli
- Linux 基础复习笔记(整合版)
Linux基础复习笔记(整合版)1.文件与目录操作1.1文件查看与编辑查看文件内容:catfile.txt:显示小文件的全部内容。morefile.txt:分页查看大文件。lessfile.txt:支持上下键滚动的分页查看。head-n20file.txt:显示前20行。tail-n20file.txt:显示后20行。tail-flog.txt:实时监控日志文件更新。删除文件:rmfile.txt
- Git版本控制系统
PythonicCC
git
Git作为目前最流行的分布式版本控制系统,已经成为开发者必备的技能之一。本文将全面介绍Git的核心概念、基本操作、分支管理以及与GitHub的协作开发,帮助读者从零开始掌握Git的使用。一、Git概述1.1Git发展历史Git诞生于2005年,由Linux之父LinusTorvalds开发。当时Linux内核开发社区与BitKeeper(当时使用的版本控制系统)的合作关系终止,促使Linus开发了
- 【Linux 中断机制:工作队列与中断线程化详解】
修船大队长
linux运维服务器
⚙️Linux中断机制:工作队列与中断线程化详解一、中断上下文限制在Linux内核中,中断服务函数运行在中断上下文(IRQContext),这意味着:❌不允许阻塞(不能调用sleep、schedule等);❌不适合执行耗时操作(否则影响中断响应);✅适合只做状态记录、标记等快速操作。为了延后复杂处理任务,Linux提供以下机制:Tasklet/Softirq:运行在软中断上下文,不可阻塞;工作队列
- 【Linux系统】基础IO(上)
Ronin305
Linux系统linux运维服务器
1.深入理解"文件"概念1.1文件的狭义理解狭义上的“文件”主要指存储在磁盘上的数据集合。具体包括:文件在磁盘里:文件是磁盘上以特定结构(如FAT、ext4文件系统)保存的数据集合,由字节或字符序列构成。磁盘作为永久性存储介质,即使断电后数据也不会丢失,因此文件的存储是永久性的。磁盘是外设(输入输出设备):磁盘被归类为外部设备,既是输入设备(如读取数据)也是输出设备(如写入数据)。因此,所有对文件
- Linux消息队列深度剖析:内核实现与性能优化
操作系统内核探秘
linux性能优化wpfai
Linux消息队列深度剖析:内核实现与性能优化关键词:Linux消息队列、内核数据结构、SystemV、POSIX、性能优化、进程间通信、IPC摘要:本文从生活场景出发,逐步拆解Linux消息队列的核心机制,深入讲解SystemV和POSIX两种主流实现的内核原理,结合代码示例分析消息发送/接收流程,并针对高并发场景给出性能优化策略。无论你是后端开发工程师还是系统调优爱好者,都能通过本文掌握消息队
- IPC(进程间通信)信号含义
给老吕螺丝
#Linux系统编程linux运维服务器
IPC(InterprocessCommunication,进程间通信)标准信号是指在Unix/Linux系统中用于进程间通信和控制的信号。这些信号通常由操作系统、内核或其他进程发送,用于通知目标进程发生了某些事件(如中断、终止、错误等)。以下是IPC标准信号(通常指Linux系统中的62个信号)的详细解释:1-31:传统UNIX信号(标准信号)这些是最常见的信号,编号从1到31,通常有明确的含义
- 《庖丁解牛Linuxn内核分析》 部分摘录和笔记
weixin_30293135
驱动开发操作系统数据结构与算法
第2章计算机的3个法宝:存储程序计算机、函数调用堆栈机制、中断堆栈的具体作用有:记录程序调用框架传递函数参数保存返回值地址提供函数内部局部变量的存储空间操作系统有2把宝剑:中断上下文、进程上下文第3章start_kernel中的最后一句为rest_init,内核启动完成后,有一个call_cpu_idle,当系统没有进程需要执行时就调用idle进程。start_kernel()相当于C语言中的ma
- SlickEdit 2011 for Linux 32位:代码编辑器的终极体验
泓三宝
本文还有配套的精品资源,点击获取简介:SlickEdit2011_...*是一个为Linux32位系统设计的高级代码编辑器,它提供多语言支持、代码自动完成、多窗口编辑以及集成版本控制等功能,旨在为专业开发者提供高效、精准的代码编写和管理体验。该版本包括性能提升、bug修复以及可能的新特性添加和界面改进,确保软件的稳定性和用户的高效工作。软件的安装与使用需要根据官方指南在Linux32位环境下进行。
- linux内核与GNU之间的联系和区别
Tipriest_
Ubuntulinuxgnu运维
要理解操作系统(如GNU/Linux)的组成,需要明确内核(Kernel)和GNU工具链各自的功能,以及它们如何协作构成完整的操作系统。以下是详细分析:1.内核(Kernel)的功能内核是操作系统的核心,直接管理硬件资源和进程,提供最基础的服务:进程管理:创建、调度、终止进程。内存管理:分配和回收物理/虚拟内存。设备驱动:与硬件(CPU、磁盘、网络等)交互。文件系统:管理磁盘数据的存储和访问。安全
- Docker学习之Linux CentOS上安装Docker的完整图文教程
LinuxCentOS上安装Docker的完整图文教程来自Docker官方文档:支持的平台DockerEngine可通过DockerDesktop在各种Linux平台,macOS和Windows10上以静态二进制安装的形式使用。我买了个云服务器,现在想在上面装个Docker,服务器系统是CentOS,所以我选择了CentOS。来自Docker官方文档:要在CentOS上开始使用DockerEngi
- linux基础学习方法指导(学习方法+基础命令用法)
景天科技苑
linux基础与进阶shell脚本编写实战linuxlinux基础命令linux学习方法
文章目录第1章计算机硬件的组成及其原理第2章Linux系统介绍与环境搭建准备第3章yum是linux的软件安装工具第4章远程连接管理Linux实践第5章Linux系统命令行入门基础第6章环境变量第7章linux不关机清理内存1、学习工具:笔记类app:notepad++云笔记有道云笔记印象笔记markdown博客头脑风暴思维导图:xmind2、学习模式:学习时间:不能中断,持续学习,视频学习与实际
- Linux 使用 docker 安装 File Browser 文件浏览器
liupeng_blog
dockerdockerlinux运维
文章目录个人知识库FileBrowser简介环境要求一.新建文件目录1.1.新建docker-compose.yml1.2.编写docker-compose.yml二.文件赋权限三、新建filebrowser.json四.启动容器4.1.启动并下载镜像4.2.停止并删除容器五.访问Filebrowser六.FileBrowser设置七.DockerHub官网更多知识平台个人知识库云网站:http:
- Ubuntu/Linux 配置 locale
iBlackAngel
Linuxlinuxubuntu数据库
文章目录Ubuntu/Linux配置locale1概述2locale2.1locale规则命令规则环境变量优先级2.2查看当前locale设置2.3查看当前系统所有可用的locale2.4安装中文locale语言环境/字符集2.5安装locales包2.6使用locale-gen命令生成语言支持2.7设置当前默认字符集3持久化3.1全局设置3.2用户级设置3.3使用update-locale进行配
- Ubuntu locale命令介绍(查询和设置当前用户的语言、国家/地区以及字符编码等环境设置)
Tipriest_
Ubuntuubuntulocale
好的,我们来详细介绍一下locale命令。locale命令简介locale是一个在Linux和其他类Unix系统中非常重要的命令。它的核心作用是查询和设置当前用户的语言、国家/地区以及字符编码等环境设置。这些设置统称为“locale”(地域/本土化设置),它们会影响到程序的界面语言、日期的显示格式、数字的表示方式(例如小数点和千位分隔符)、货币符号以及字符的排序规则等。简单来说,locale决定了
- 最详细的解决方法:MySQL服务无法启动。服务没有报告任何错误。端口问题,配置问题。
掉色的熊猫
BUGMySQL新手数据库mysqlbug系统安装windows
如图,启动mysql服务时,报这个错误了应该怎么办?往下看。我知道会报这个错误的两个原因:(1)端口号被占用。1.打开CMD,命令提示符。2.输入netstat-ano,则跳出下图所示,找对对应3306的端口。3.继续输入tasklist|findstr端口号对应的PID号,由于上图可知我的pid号为1564。然后就可以看见,是mysql占用了我的mysql端口号。好像有那里不对啊,哈哈哈,好吧,
- Claude Code 分层多Agent架构篇
强化学习曾小健
c#开发语言
ClaudeCode分层多Agent架构篇原创飞鸟白菜shareAI2025年07月01日09:31广东本文档基于ClaudeCode源代码的深度逆向工程分析,详细还原了其分层多Agent架构的完整技术实现。通过分析混淆代码和运行时行为,我们深入揭示了Task工具如何实现SubAgent的创建、生命周期管理、并发执行协调以及安全隔离机制,为理解现代AI编程助手的核心架构提供了详尽的技术洞察。htt
- Linux 的解压命令
第七原色
解压tar–xvffile.tar解压tar包tar-xzvffile.tar.gz解压tar.gztar-xjvffile.tar.bz2解压tar.bz2tar–xZvffile.tar.Z解压tar.Zunrarefile.rar解压rarunzipfile.zip解压zip
- Linux下防御DDOS攻击的操作梳理
寰宇001
DDOS介绍DDOS的全称是DistributedDenialofService,即"分布式拒绝服务攻击",是指击者利用大量“肉鸡”对攻击目标发动大量的正常或非正常请求、耗尽目标主机资源或网络资源,从而使被攻击的主机不能为合法用户提供服务。DDOS攻击的本质是:利用木桶原理,寻找利用系统应用的瓶颈;阻塞和耗尽;当前问题:用户的带宽小于攻击的规模,噪声访问带宽成为木桶的短板。可以参考下面的例子理解下
- HoRain云--Docker容器迁移全攻略:4种方法详解与实战避坑指南
HoRain云小助手
arm开发
HoRain云小助手:个人主页个人专栏:《Linux系列教程》《c语言教程》⛺️生活的理想,就是为了理想的生活!⛳️推荐前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网
- Linux测速脚本
ljwheyxy
Linux服务器测速脚本:第一步:wgethttps://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py第二步:chmoda+rxspeedtest.py第三步:sudomvspeedtest.py/usr/local/bin/speedtest第四步:sudochownroot:root/usr/local/bi
- Ubuntu的apt、apt-get和snap闲聊(2025年3月28日)
为什么Ubuntu中有了APT、APT-GET还要加上Snap?在Ubuntu系统中,软件管理工具的多样性(如APT、APT-GET和Snap)常常让人疑惑:既然已经有了成熟的APT和APT-GET,为什么还要引入Snap?本文将从不同角度解析这一问题,探讨Snap的独特价值及其与传统工具的共存意义。这份笔记适用于Linux用户、开发者以及对软件生态感兴趣的读者,内容将随技术演进保持更新。QA:解
- linux内核驱动第一课(基于RK3568)
学习Linux驱动需要以下基础知识:C语言编程:掌握C语言是开发Linux驱动程序的基本要求。操作系统原理:了解操作系统的基本概念和原理,如进程管理、内存管理、中断处理等。Linux内核:熟悉Linux内核的结构和工作机制,了解内核模块的编写和加载方法。硬件知识:了解目标硬件平台的基本结构和工作原理。(学习过stm32更佳)学习路径1、搭建环境(交叉编译,VIM,tftp,nfs,下载工具)2、驱
- linux正则提取字符串,正则表达式 – shell脚本 如何使用正则表达式提取字符串...
weixin_39747577
linux正则提取字符串
使用bashregularexpressions:re="http://([^/]+)/"if[[$name=~$re]];thenecho${BASH_REMATCH[1]};fi编辑–OP要求解释语法。Regularexpressionsyntax是一个很大的话题,我无法在这里全面解释,但我会尝试解释足够的理解这个例子。re="http://([^/]+)/"这是存储在bash变量中的正则表达
- linux git 命令补全,linux命令自动补全工具bash-completion,自动补全git、Docker、kubenetes等命令...
什么是命令自动补全在Linux命令行中,当输入字符后,按Tab键,Shell就会列出以这些字符开头的所有可用命令,如果只有一个命令匹配到,按一次Tab键就自动将这个命令补全。如果输入pass,此时按Tab键,因为以pass开头的命令只有passwd这个命令,Shell就会自动补全passwd命令。另外如果输入的字符匹配多个命令则会列出所有可用的命令,比如,如果输入do,此时按Tab键Shell就会
- bash-completion使linux下命令自动补全
有时我们会遇到较长的linux命令,难以记住例如centos8的nmcli命令,不同于centos7的systemd重启网卡即可,命令冗长.这时就轮到bash-completion登场了bash-completion这个包可以帮我们快速补全linux命令安装并生效[root@vm1~]#dnf-yinstallbash-completion#安装包[root@vm1~]#source/etc/pr
- 重塑未来:AI如何重新定义全栈开发
熊猫钓鱼>_>
人工智能
在传统认知中,全栈开发者被誉为技术界的“全能选手”。——他们需要精通前端界面构建(HTML/CSS/JavaScript)、后端业务逻辑实现(Python/Java/Node.js)、数据库设计优化(MySQL/MongoDB)以及服务器部署运维(Linux/Docker)。这种“一人包打天下”的能力模型长期被视为高效开发的黄金标准,尤其受到创业公司和小型团队的青睐,因为它能大幅减少沟通成本,加速
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include