- Ubuntu 常用快捷键及操作技巧
YsDynamic
ubuntulinux运维操作系统
Ubuntu是一种流行的Linux操作系统,拥有许多强大的功能和快捷键,可以提高工作效率。本文将详细介绍一些常用的Ubuntu快捷键和操作技巧,帮助您更好地利用Ubuntu。终端快捷键Ubuntu的终端是一个强大的工具,可以通过快捷键加快命令行操作。Ctrl+Alt+T:打开一个新的终端窗口。Ctrl+Shift+T:在当前终端窗口中打开一个新的选项卡。Ctrl+Shift+W:关闭当前终端选项卡
- #渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞
独行soc
漏洞挖掘安全web安全面试漏洞挖掘远程命令执行漏洞
免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、漏洞概况二、攻击特征三、应急处置方案四、深度防御建议五、后续监测要点六、漏洞POC一、漏洞概况技术原理漏洞存在于T+系统的特定接口组件,攻击者可通过构造恶意HTTP请求绕过身份验证,在
- ZT2 小美的因子查询
bingw0114
算法数据结构
描述 小美对偶数因子很感兴趣,她将进行T次询问,每次都会给出一个正整数x,请你告诉她x是否存在至少一个偶数因子。也就是说x是否存在某个因子[注1]是偶数。 注1:y是x的因子,当且仅当xmody=0。输入描述: 每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤10^5)代表数据组数,每组测试数据描述如下: 在一行
- 1002:方便记忆的电话号码
努力的小Qin
1002:方便记忆的电话号总时间限制:2000ms内存限制:65536kB描述英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:A,B,C->2D,E,F->3G,H,I->4J,K,L->5M,N,O->6P,R,S->7T,U,V->8W,X,Y->9标准的电话号码格式是xxx-xxxx,其中x表示0-9中的一个数字。有时为了方便记忆电话号码,我们会将电话号码的数字转变为英文字母,如把
- 在Linux上安装和使用Docker
向着开发进攻
linuxlinuxdocker
在Linux上安装和使用Docker:一步步指南Docker是一种流行的容器化平台,它可以帮助开发者轻松构建、部署和运行应用程序。在本文中,我们将介绍如何在Linux系统上安装Docker,并提供一些常用的Docker命令和使用说明。1.安装DockerUbuntu系统更新包索引并安装必要的软件包以允许apt通过HTTPS使用存储库:sudoaptupdatesudoaptinstallapt-t
- STM32F103C8T6 USB寄存器开发详解(3)-中断
云汐独渺
STM32USB开发单片机嵌入式硬件
对于USB模块,因为其通讯流程比较复杂,因此配置硬件中断就显得很重要了.STM32F103的中断寄存器位于另一个手册中,也就是下方蓝色标题的链接地址.NVIC寄存器用于启用中断,中断向量表中有两个USB相关中断,从机设备仅需要RX中断,也就是表项20.因此只需要配置NVIC_ISER0寄存器的位20即可开启USB模块中断,至于中断优先级分组等情况,可以直接使用默认配置,若有需要可以手动配置其余NV
- UVA10608 Friends 题解
W9095
算法c++
0x01STEP1读题审题UVA10608Friends题面翻译读完题就知道,这题用并查集。本人太弱,就用带权并查集做。0x02STEP2主要步骤实际上,带权并查集的几种操作并不复杂,是基础并查集的扩展版。初始化:for(inti=1;iusingnamespacestd;intn,m,t,f[300000],num[300000];intgetf(intx){if(f[x]==x)returnx
- 蓝桥2023省赛B 题解
快雪_时晴
算法图论数据结构
蓝桥2023省赛B题解T1冶炼金属题目描述小蓝有一个神奇的炉子用于将普通金属O冶炼成为一种特殊金属X。这个炉子有一个称作转换率的属性V,V是一个正整数,这意味着消耗V个普通金属O恰好可以冶炼出一个特殊金属X,当普通金属O的数目不足V时,无法继续冶炼。现在给出了N条冶炼记录,每条记录中包含两个整数A和B,这表示本次投入了A个普通金属O,最终冶炼出了B个特殊金属X。每条记录都是独立的,这意味着上一次没
- 双T4加速卡虚拟机中掉了一个卡(RmInitAdapter failed)问题的处理记录
大新新大浩浩
智算linux运维服务器
文章目录前言一、现象1.1nvidia-smi的输出只有一个卡1.2dmesg的输出有RmInitAdapterfailed1.3lspci-v的输出二、分析过程及思路三、动手操作总结前言同事找我说用的双卡虚拟机只有一个卡显示了,看看怎么处理处理一、现象1.1nvidia-smi的输出只有一个卡(base)root@XXX:~#nvidia-smiWedFeb1914:13:332025+----
- 力扣刷题Day2
RAN_PAND
leetcode算法数据结构c++
389.找不同题目:给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。示例1:输入:s="abcd",t="abcde"输出:"e"解释:'e'是那个被添加的字母。示例2:输入:s="",t="y"输出:"y"提示:0#includeusingnamespacestd;classSolution{public:charfin
- Autojs: 使用 SQLite
xxxxxue
自动化工具sqlite数据库autojsautox
例子letdb=newSQLiteUtil("/sdcard/A_My_DB/sqlite.db");db.fastCreateTable("user_table",{name:"",online:false,},["name"]//设置name为唯一,重复项不会添加成功);//新增数据的IDletrow_id=db.insert("user_table",{name:"小明5",online:t
- 【开源免费】基于Vue和SpringBoot的医院后台管理系统(附论文)
杨荧
vue.jsspringboot前端开源springcloudjavascript
本文项目编号T170,文末自助获取源码\color{red}{T170,文末自助获取源码}T170,文末自助获取源码目录一、系统介绍二、数据库设计三、配套教程3.1启动教程3.2讲解视频3.3二次开发教程四、功能截图五、文案资料5.1选题背景5.2国内外研究现状六、核心代码6.1查询数据6.2新增数据6.3删除数据一、系统介绍在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功
- 数据分析-56-深入理解假设检验的步骤和T检验的应用案例
皮皮冰燃
数据分析数据分析假设检验
文章目录1假设检验(HypothesisTesting)1.1假设检验的步骤1.1.1提出假设1.1.2选择显著性水平1.1.3选择检验统计量1.1.4计算检验统计量1.1.5确定临界值或p值1.2假设检验的类型1.2.1单尾检验(One-tailedtest)1.2.2双尾检验(Two-tailedtest)2T检验2.1单样本t检验2.2独立样本t检验2.3配对样本t检验3应用案例3.1单样本
- 【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
架构默片
JAVA工程师从0开始学AIpythonjava开发语言
副标题:从继承大战到猴子补丁,看动态类型如何颠覆面向对象认知当Java工程师还在为implements和extends绞尽脑汁时,Python的类已化身"终结者T-1000",在代码世界肆意变形。这里没有private的保险箱,super()能穿越多重继承时空,甚至能在运行时给类"整容换脑"。本文将用五个震撼场景,带你体验Python面向对象编程的"量子纠缠"——原来类的__init__只是开始,
- wav2lip部署方案-数字人项目
何为标准
python
该项目商用需要通过原作者原作者github链接说明该项目可以将语音和视频或图片结合生成数字人。大家多关注,后续会把llm、RAG、AGENT、TTS、ASR等结合起来,形成一套完整的系统显卡硬件资源显卡:2080ti开始部署下载源码gitclonehttps://github.com/Rudrabha/Wav2Lipcd/root/Wav2Lippipinstall-rrequirements.t
- 在单片机中是否应该取消32.768kHz外部晶振
鹿屿二向箔
单片机嵌入式硬件
在STM32F103C8T6中,32.768kHz外部晶振(LSE)并非必须,其必要性取决于具体应用需求。以下是详细分析:1.是否需要32.768kHz晶振?需要LSE晶振的场景实时时钟(RTC):若需RTC功能(如日历、精确计时),且要求高精度时间基准,必须使用32.768kHz晶振(LSE)。原因:内部低速RC振荡器(LSI,约40kHz)精度较低(±1%),可能导致时间累积误差(每天约1分钟
- 洛谷P10424 [蓝桥杯 2024 省 B] 好数
一缕叶
刷题蓝桥杯算法职场和发展
#includeusingnamespacestd;constintN=10000010;inta[8]={0};intt[8]={0};boolisnumber(intn){inti=0;if(n%2==0)returnfalse;intlength=0;while(n){a[i++]=n%10;n/=10;length++;}t[1]=a[1]+a[0],t[2]=a[2]+a[1],t[3]
- mac vim编辑器保存时E212: Can‘t open file for writing
weixin_51302377
macosvim
例如输入vi~/.bash_profile时返回该错误则直接在终端输入open~/.bash_profile指令后输入需要添加的内容直接保存文件即可完成修改。
- 最少前缀操作问题--感受不到动态规划,怎么办怎么办
幼儿园口算大王
算法java动态规划
题目:标签:动态规划(应该是双指针的,不理解)小U和小R有两个字符串,分别是S和T,现在小U需要通过对S进行若干次操作,使其变成T的一个前缀。操作可以是修改S的某一个字符,或者删除S末尾的字符。现在你需要帮助小U计算出,最少需要多少次操作才能让S变成T的前缀。测试样例样例1:输入:S="aba",T="abb"输出:1样例2:输入:S="abcd",T="efg"输出:4样例3:输入:S="xyz
- Chromedriver各个版本浏览器驱动下载地址
xl.liu
浏览器驱动
来自:淘宝源如果没有对应浏览器版本的驱动,下载低于浏览器版本且最接近的驱动即可!!!2.0/2013-09-25T22:57:39.349Z2.1/2013-09-25T22:57:49.481Z2.10/2014-05-01T20:46:22.843Z-2.11/2014-10-08T01:17:17.918Z-2.12/2014-10-27T09:27:24.626Z-2.13/2014-12
- 在make编译时,出现C++: fatal error:已杀死 signal terminated program cc1plus,解决办法
太想进步了~
c++开发语言
在make编译时,出现C++:fatalerror:已杀死signalterminatedprogramcc1plus,如下图所示:出现上述问题,可以考虑是虚拟机内存不足,可以采用swap分区的方式解决。具体命令是:(1)主目录下创建分区路径(直接用“ctrl+ALT+T打开terminal,运行下面命令”)sudomkdir-p/var/cache/swap/(2)设置分区的大小(不唯一)bs=
- 《第2章 位置与姿态描述》代码
神笔馬良
人工智能
最近在学习《视觉伺服/机器人学、机器视觉与控制》,发现书中的代码运行不通顺,原因可能是matlab升级后,部分函数的参数变化了。所以需要记录错误的代码和正确的代码。第一处:为了使上述推导更形象具体,下面我们将使用MATLAB工具箱展示一些具体数值化的例子。首先用函数se2创建一个齐次变换:错误代码T1=se2(1,2,30*pi/180)报错提示:错误使用matlabshared.spatialm
- 常用标准库之-std::iota
HL_LOVE_C
C/C++c++算法开发语言
定义与头文件std::iota是C++标准库头文件中提供的一个算法,用于将一个连续递增的值赋给指定范围内的元素。函数原型templatevoidiota(ForwardItfirst,ForwardItlast,Tvalue);ForwardIt:前向迭代器类型,用于指定元素范围。T:用于初始化和递增的值的类型。first:指向范围起始位置的迭代器。last:指向范围结束位置的迭代器。value:
- Linux线程封装(c++)
laimaxgg
linuxc++java
Linux线程封装(c++)1.前言c++对Linux的pthread.h库进行了封装,使我们能以类和对象的形式创建和管理线程。本篇将模拟c++封装pthread.h库的线程相关函数,使我们也能在外部以类和对象的形式创建和管理线程。2.代码实现2.1成员变量、构造函数#pragmaonce#include#include#includeusingfunc_t=std::function;class
- 【LeetCode】49. 字母异位词分组
Liu_Meihao
leetcode算法
题目添加链接描述思路遍历字符串数组strs。对第一个字符串"eat"执行:将“eat”转换为字符数组[‘e’,‘a’,‘t’]对字符数组进行排序,得到[‘a’,‘e’,‘t’]使用排序后的字符数组创建key“aet”从map中获取key为“aet”的值,由于不存在,因此创建一个新的空列表list=[]将“eat”添加到list中,现在list=[“eat”]将key为“aet”,value为[“e
- Ubuntu 下 nginx-1.24.0 源码分析 - ngx_localtime 函数
若云止水
nginx运维
ngx_localtime函数声明在src\os\unix\ngx_time.h中:voidngx_localtime(time_ts,ngx_tm_t*tm);定义在src/os/unix/ngx_time.c中voidngx_localtime(time_ts,ngx_tm_t*tm){#if(NGX_HAVE_LOCALTIME_R)(void)localtime_r(&s,tm);#els
- Ubuntu 下 nginx-1.24.0 源码分析 - ngx_pnalloc函数
若云止水
nginx运维
ngx_pnalloc声明在src\core\ngx_palloc.hvoid*ngx_pnalloc(ngx_pool_t*pool,size_tsize);定义在src\core\ngx_palloc.cvoid*ngx_pnalloc(ngx_pool_t*pool,size_tsize){#if!(NGX_DEBUG_PALLOC)if(sizemax){returnngx_palloc_
- STM32启动过程浅析(MAP文件、STM32启动过程、启动模式、Reset_Handler函数、__initial_sp堆栈的起始地址、堆栈)
孤芳剑影
STM32stm32嵌入式硬件单片机
参考http://t.csdnimg.cn/9Y6n4一、MAP文件浅析MAP文件(MemoryMapFile)是编译器生成的连接地图文件,提供了有关程序在内存中的布局信息。MAP文件包含了代码、数据、堆栈等在内存中的地址分配情况,以及每个模块的大小等信息。在MDK(KeilMicrocontrollerDevelopmentKit)编译过程中,MAP文件对于分析程序存储占用情况非常有用。以下是M
- 债券到期收益率计算
周纠纠
金融科技-计算机相关python深度学习
债券到期收益率YTM计算公式Python实现计算公式Python实现importscipy.optimizeassoimportnumpyasnp'''计算债券到期收益率的函数PV:表示债券全价;C:票面年利息;k:年付息频率;y:到期收益率;M:债券面值;T:债券期限(年)'''defYTM(PV,C,k,M,T
- 新视野大学英语3 Banked cloze
simplesin
英语笔记英语
it'sadevelopmentalprocessthatischaracterizedbyprofoundpsychologicalchanges这是一个以深刻的心理变化为特征的发展过程vicious恶毒的don'tletselfconsciousnessparalyzeyou!Becourageous!不要让自我意识麻痹你!勇敢点!tocopewiththeproblemiwouldliket
- 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