- Ubuntu 22.04 LTS 入门教学文档
猴的哥儿
linuxlinux运维linuxubuntudocker
适用对象:Linux新手、开发者、运维人员目录Ubuntu简介系统安装指南图形界面操作终端基础命令软件包管理用户与权限管理网络配置与管理磁盘与文件系统系统维护与故障排查附录:常用快捷键与资源1.Ubuntu简介1.1什么是Ubuntu?Ubuntu是基于Debian的开源Linux发行版,由Canonical公司维护,提供桌面版和服务器版,以易用性和社区支持著称。1.2版本说明LTS(Long-T
- mosquitto移植到AM335x+Linux系统
aiprtem
AM335x嵌入式LinuxMQTTlinux物联网iot
mosquitto移植到AM335x+Linux系统1.概述本文档详细介绍如何将mosquitto2.0.14版本移植到基于AM335x处理器的Linux系统中。mosquitto是一个实现了MQTT协议版本5.0、3.1.1和3.1的开源消息代理和客户端实现库。本文将介绍mosquitto库的配置、编译以及运行过程,包括依赖库的处理、交叉编译环境的配置等内容。整个项目使用CMake作为构建系统。
- ubuntu22.04安装P104-100一些经验(非教程)
junqiduhang
ubuntup104-100驱动
一、版本:系统:ubuntu-22.04.5-desktop-amd64.isoNvidia驱动:NVIDIA-Linux-x86_64-570.124.04.run。官网下载即可二、经验1、通用教程⭐直接关键词搜“ubuntup104”会有一些教程,比如禁用nouveau等安装参考:https://blog.csdn.net/weixin_42771529/article/details/144
- 一文搞懂Linux底层原理,Task的内核态表示
深度Linux
linuxC/C++TASK内核态
在Linux这个庞大而精妙的操作系统世界里,隐藏着无数复杂而神奇的底层原理。今天,我们将一同深入探索其中至关重要的一环——Task的内核态表示。这就像是打开了一扇通往系统核心深处的大门,在那里,我们会看到Linux是如何有条不紊地管理进程和线程,如同一位技艺高超的指挥家掌控着一场宏大的交响乐演奏。无论是对Linux系统充满好奇的新手,还是希望深入理解其内部机制的专业人士,都将在这次探索中领略到Li
- electron打包结构了解
shaoin_2
electronjavascript前端
Electron应用打包后的文件结构和内容取决于你使用的打包工具(如electron-builder、electron-packager等)以及目标操作系统(Windows、macOS、Linux)。以下是典型Electron应用打包后的文件结构和关键组成部分:1.基本打包结果Windows:生成一个.exe安装文件或直接可执行的文件夹(包含.exe和依赖文件)。macOS:生成.app应用程序包
- 查看Linux服务器的相关配置信息
听说唐僧不吃肉
Linux服务器配置信息
一、总结1、查看cpu信息cat/etc/cpuinfo针对cpu数,来作出以下总结:#总核数=物理CPU个数X每颗物理CPU的核数#总逻辑CPU数=物理CPU个数X每颗物理CPU的核数X超线程数#1、查看物理CPU个数cat/proc/cpuinfo|grep"physicalid"|sort|uniq|wc
- 系统服务器一般都要求冗余配置,服务器冗余配置
白药葫芦
系统服务器一般都要求冗余配置
服务器冗余配置内容精选换一换迁移前,若选择迁移到已有服务器,请做以下准备工作:需配置目的端服务器所在VPC安全组,如果是Windows系统需要开放TCP的8899端口、8900端口和22端口;如果是Linux系统,块级迁移开放8900端口和22端口,文件级迁移开放22端口。请参见如何配置目的端服务器安全组规则?配置目的端服务器VPC安全组。迁移过程中禁止操作目的端弹当目的端设置错误或因业务需求需要
- linux操作系统短进程优先调度算法,操作系统的常用的进程调度算法
kdddd hdj
一、调度与调度算法操作系统管理了系统的有限资源,当有多个进程(或多个进程发出的请求)要使用这些资源时,因为资源的有限性,必须按照一定的原则选择进程(请求)来占用资源。这就是调度。目的是控制资源使用者的数量,选取资源使用者许可占用资源或占用资源。在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常采用不同的调度算法。调度算法
- 如何查看Linux服务器的硬件配置
Ray.1998
各种命令服务器linux运维
Linux系统提供了多种命令和工具来查看硬件配置信息。下面是一些常用的方法:1.CPU信息lscpu:提供CPU的详细统计信息,包括型号、核心数、线程数、缓存大小等。Bashlscpu/proc/cpuinfo:包含每个CPU核心的详细参数,如型号、频率、缓存等。Bashcat/proc/cpuinfo2.内存信息free:显示系统内存的使用情况。Bashfree-m/proc/meminfo:提
- LINUX本地磁盘DISK空间扩容
数据库急诊日记
Linuxlinux运维服务器1024程序员节pythonsqljava
vmware虚拟机本地磁盘空间不足,虚拟机层面扩容原有磁盘/dev/sda从50G到100G,系统层面fdisk划分磁盘分区,创建pv,添加到vg,扩展lv,xfs_growfs刷新文件系统空间。1.磁盘空间现状df显示/总大小50G[root@glodendb~]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/mapper/rhel-root45G18
- linux qt实现窗口跳转_QT 主窗口和子窗口相互切换示例
稚气筱筱
linuxqt实现窗口跳转
#include"mainwidget.h"MainWidget::MainWidget(QWidget*parent):QWidget(parent){ui.setupUi(this);this->setParent(parent);this->setWindowTitle(QString::fromLocal8Bit("老大"));this->resize(QSize(500,500));bt
- Linux grep 命令到底有多强?90% 的人只会用最简单的用法!
linux
前言:别再傻傻地翻文件了!grep让你效率翻倍!你有没有遇到过这种情况?日志文件太大,想找某个关键字,翻得眼花缭乱?代码里某个变量到底在哪改的,找半天都没找到?成百上千个文件里,想找某个特定的内容,手动翻找效率太低?如果你还在一行行地Ctrl+F查找内容,那你真的该认识一下Linux里最强大的查找工具——grep!它不仅能帮你快速定位关键内容,还能支持正则匹配、多文件查找、高亮显示,让你在海量数据
- 别再被多线程搞晕了!一篇文章轻松搞懂 Linux 多线程同步!
c++linux编程多线程
前言大家有没有遇到过,代码跑着跑着,线程突然抢资源抢疯了?其实,这都是“多线程同步”在作怪。多线程同步是个老生常谈的话题,可每次真正要处理时还是让人头疼。这篇文章,带你从头到尾掌握Linux的多线程同步,把概念讲成大白话,让你看了不再迷糊,还能拿出来装一装逼!不管是“锁”、“信号量”,还是“条件变量”,我们都一网打尽,赶紧点赞收藏,一文搞懂!一、什么是线程同步?——“排队来操作,按规矩走”线程同步
- gethostname
若云止水
c语言
在POSIX兼容系统(如Linux、Unix、macOS)中,使用的是gethostname()函数,定义在头文件中:#includeintgethostname(char*name,size_tlen);参数说明name:用于存储主机名的字符数组(缓冲区)len:缓冲区的最大长度(以字节为单位)返回值成功时返回0失败时返回-1,并设置errno来指示错误
- centos2anolis
dragonzoebai
linuxcentosanolis
我的centos7原地升级到anolis7记录注意:如果是桌面版请先卸载firefox,否则so文件冲突。参考:CentOS7和8Linux系统迁移到国产Linux龙蜥AnolisOS8手册_disablepam_pkcs11moduleinpamconfiguration-CSDN博客关于CentOS迁移龙蜥操作系统,这里有一份详细指南,请查收!-OpenAnolis龙蜥操作系统开源社区Cent
- spark yum配置
Amu_Yalo
spark
yum配置Yum是一个linux工具,用来从网络上下载安装软件到CentOS操作系统中。先要确保虚拟机的网络是通畅的。(1)查看源yum中的源是指它从哪里去下载软件。把yum想象成你自己开的一家商场,那么yum的源就是你的供货商。通过yumrepolist命令可以去查看当前的供货商信息。(如果显示源信息是mirrorlist.centos.org(默认源),那就不能使用了。这个源已经失效了,就是你
- Linux学习笔记--shell脚本(二)
运维派C
shell脚本学习Linuxshell脚本
20.1什么是shell脚本shell脚本并不能作为正式的编程语言,因为它是在linux的shell中运行的,所以称为shell脚本。事实上,shell脚本就是一些命令的集合。假如完成某个需求需要一口气输入10条命令,对于简单的命令,我们可以直接在shell窗口中输入,但如果是比较长且复杂的命令,一次一次敲就会显得很麻烦。我们可以把这10条命令都记录到一个文档中,然后去调用文档中的命令,这样就能一
- kali安装教程(超全)
撒旦骑路西法,大战吕布
linux服务器运维
KaliLinux是一款基于Debian的Linux发行版,专注于渗透测试和安全审计。以下是在计算机上安装KaliLinux的步骤:1.下载KaliLinux的ISO镜像文件。你可以从官方网站(https://www.kali.org/downloads/)或者其他可靠的镜像站点下载。2.创建一个可启动的USB设备。你可以使用Rufus(https://rufus.ie/)或Etcher(http
- Git与GitHub:理解两者差异及其关系
抱抱宝
gitgithub
目录Git与GitHub:理解两者差异及其关系Git:分布式版本控制系统概述主要特点GitHub:基于Web的托管服务概述主要特点Git和GitHub如何互补关系现代开发工作流结论Git与GitHub:理解两者差异及其关系Git:分布式版本控制系统概述什么是Git?Git是一个设计用来高效处理从小到大项目的分布式版本控制系统(DVCS)。它由林纳斯·托瓦兹于2005年为Linux内核的开发而创建。
- Linux and Shell笔记梳理
是蛋蛋吖~
linuxandshelllinuxshell
#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shellecho命令用于向窗口输出文本。chmod权限控制:第1个字符有两种情况:如果是“d”则代表这是一个文件夹,如果是“—”代表这是一个文件;d代表的是目录(directroy)-代表的是文件(regularfile)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(namedpipe)l代
- 【CVTE】嵌入式软件开发-Linux方向{一面}
阿猿收手吧!
面经linux运维服务器面试
文章目录数组和链表的区别?特点?使用场景?**1.数组(Array)****特点:****使用场景:****2.链表(LinkedList)****特点:****使用场景:****3.数组vs链表对比****4.代码示例****数组示例****链表示例(单链表)****5.结论**全局变量和局部变量在linux内存存储的区别**1.全局变量(GlobalVariables)****存储位置:***
- 使用wxWidgets开发跨平台GUI应用程序
DevNinja
C/C++
使用wxWidgets开发跨平台GUI应用程序wxWidgets是一个开源的C++GUI框架,可以让开发人员在多个操作系统上快速构建跨平台的图形用户界面。与其他GUI框架相比,wxWidgets的主要优势在于它的跨平台能力、多样化的控件、可扩展性、以及可靠性和稳定性。wxWidgets支持大多数常见的操作系统,包括Windows、Linux、Unix和MacOSX等,并且具有相同的API接口,这使
- Linux笔记---调试工具GDB(gdb)
大筒木老辈子
linux笔记运维
1.gdb的概念GDB,全称GNUDebugger,是一个功能强大的开源调试工具,广泛用于Unix和类Unix系统,以及MicrosoftWindows和macOS平台。GDB允许开发者在程序执行过程中查看内部运行情况,帮助定位和修复程序中的错误。gdb的主要功能:启动和控制程序执行:gdb可以按照自定义要求运行程序,并在指定的断点处暂停执行。检查程序状态:当程序暂停时,gdb允许开发者检查程序中
- wxWidgets:跨平台GUI开发框架
2301_79366332
C/C++
wxWidgets:跨平台GUI开发框架wxWidgets是一个开源的、跨平台的C++GUI开发框架。它提供了丰富的工具和类库,用于构建具有图形用户界面的应用程序。wxWidgets的设计目标是使开发者能够在不同的操作系统上编写一次代码,然后将其编译为在多个平台上运行的应用程序。wxWidgets支持多种操作系统,包括Windows、macOS、Linux以及其他Unix-like系统。它还可以与
- 《Operating System Concepts》阅读笔记:p208-p227
操作系统
《OperatingSystemConcepts》学习第24天,p208-p227总结,总计20页。一、技术总结1.vmstatLinux系统上vmstat命令的作用是“Reportvirtualmemorystatistics”。2.schedulingalgorithms(1)FCFS(first-comefirst-serve)(2)SJF(shortest-job-first)准确的叫法应
- sqlite3 学习笔记
某风吾起
worksqlite学习笔记
文章目录前言SQL的概念与表格相关的操作i.创建表格(增)ii删除表格(删)iii更改表格(改)iv查询表格(查)与记录相关的操作i插入记录ii删除记录iii查询记录iv修改记录Linux中使用sqlite3前言SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。SQLite非常适合用于嵌入式系统、物联网设备、移动应用程序和客户端应用程序,它不需要服务器,简单易用。SQL的概念
- adb命令、adb shell与Linux各种命令(busybox)
猫猫猫猫猫大人
LinuxFedoraAndroid
常用的ADB命令1.显示系统中全部Android平台:androidlisttargets2.显示系统中全部AVD(模拟器):androidlistavd3.创建AVD(模拟器):androidcreateavd--name名称--target平台编号4.启动模拟器:emulator-avd名称-sdcard~/名称.img(-skin1280x800)5.删除AVD(模拟器):androidde
- RustDesk开源远程桌面工具部署【图文详解】
岚天start
开源云原生ruskdesk桌面远程远程
目录1.服务端安装1.1服务器环境1.2安装docker1.3配置docker加速器1.4安装docker-compose2.客户端安装3.映射或防火墙配置4.客户端配置1.服务端安装1.1服务器环境[root@test~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)[root@test~]#uname-aLinuxtest3.10
- Linux 中安装nginx
linuxnginx
注意:源文件目录工作目录1.从官网下载nginx(http://nginx.org/en/download....上传安装包到指定目录(/usr/local/src)解压nginx安装包tar-zxvfnginx-1.19.10.tar.gz3.解压完成后的目录为源文件目录,可以命名为nginx-source4.进入nginx-source源文件目录下。(cd/usr/local/src/ngin
- docker 开源nas_NAS如何装qBittorrent?一个教程就够了!X86与ARM均可用
鸡糟的黄医桑
docker开源nas
大家好,我是加勒比考斯,是一个NAS领域的老司基。以前是负责NAS板块的小编一枚,有幸玩过众多品牌的NAS,包括有群晖、威联通、华芸、西部数据、铁威马以及Drobo等。我会一直输出NAS干货,码字不易,希望大家给个关注!创作声明:qBittorrent是一款开源免费的种子和磁力链接下载工具,支持Windows、Mac和Linux,它的功能非常强大。但是无论是群晖还是威联通官方都没有直接提供,本文就
- 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