- Android操作系统源码深度解析
Ga Ou
本文还有配套的精品资源,点击获取简介:Android源码是理解和定制移动操作系统的关键资源,包含Linux内核、HAL、运行时环境、系统服务、框架层、UI系统及应用程序。本资源旨在提供对Android操作系统构成的全面了解,帮助开发者深入学习系统工作原理、优化性能,以及进行系统级开发。研究这份源码将揭示Android如何通过不同组件构建其基石,并为开发者提供创建高效应用的洞察。1.Android系
- 计算机系统基础——bomblab实验环境配置
qq_26919935
计算机系统shellarm计算机汇编语言bomblab
一、实验目的1)理解arm汇编语言,学会使用调试器。2)熟悉安卓开发板的使用和环境配置;3)熟悉并掌握在linux系统下的shell命令使用。二、实验环境linux系统,终端,arm-gdb工具,安卓开发板三、实验原理二进制炸弹是作为一个目标代码文件提供给我们的程序,程序运行中有6个关卡(6个phase),运行时,它提示用户输入6个不同的字符串。如果其中任何一个不正确,炸弹就会“爆炸”:打印出一条
- openresty/lua 动态更新证书
lcyw
#NGINX/Openresty智能安防系统开发openrestylua
先列个提纲,后面补充详细内容通过接口获取证书修改nginx.conf中证书文件的路径reloadnginx
- Docker搭建FRP内网穿透服务器
LOVE_DDZ
DockerLinuxCentOS78docker服务器容器
使用Docker搭建一个frp内网穿透在现代网络环境中,由于防火墙和NAT等原因,内网设备无法直接被外网访问。FRP(FastReverseProxy)是一款非常流行的内网穿透工具,它能够帮助我们将内网服务暴露给外网。本文将介绍如何在Linux服务器上使用Docker搭建一个FRP服务器,帮助你实现内网穿透。前置条件一台安装了Linux操作系统的服务器(例如Ubuntu)。服务器已经安装了Dock
- linux下io操作详细解析
这个懒人
开发语言c++IO
在Linux系统下,IO(输入/输出)操作是程序与外部设备(如文件、网络等)交互的重要方式。Linux提供了丰富的系统调用和库函数来支持各种IO操作。以下是对Linux下IO操作的详细解析,包括文件IO、网络IO和缓冲机制等内容。一、文件IO操作1.打开文件(open系统调用)open系统调用用于打开一个文件,返回一个文件描述符(filedescriptor),后续操作都通过这个文件描述符进行。#
- 关于“网络编程“组件之 “Buffer“
邪恶的贝利亚
c++音视频网络php开发语言
本文立足TCP协议以及LINUXSsocket编程用户空间:用户空间是操作系统中用户程序运行的环境内核空间:是操作系统内核运行的环境,(包含内核代码、数据结构和系统资源。是网络协议栈工作的地方)1TCP协议的缓冲区TCP是一种面向连接的、可靠的传输层协议,它通过缓冲区来管理数据的发送和接收。TCP缓冲区存储在操作系统的内核空间中。(由操作系统决定)1.1TCP缓冲区的定义与作用TCP缓冲区分为两种
- iptables 使用手册
半桶水专家
运维linux网络安全linux运维
目录简介基本概念表(Tables)链(Chains)规则(Rules)命令语法核心命令详解常用选项说明实际应用示例高级技巧与注意事项规则持久化1.简介iptables是Linux系统上用于配置网络包过滤规则的核心工具,通过操作内核的Netfilter框架实现防火墙、NAT、端口转发等功能。本手册涵盖其语法、命令选项及实际应用场景。2.基本概念表(Tables)filter:默认表,用于包过滤(AC
- C++ I/O 性能优化指南
这个懒人
c++性能优化开发语言
在高性能计算和大规模数据处理中,I/O性能优化是提升系统整体效率的关键环节。C++作为一种高性能编程语言,提供了丰富的工具和机制来优化I/O操作。本文将详细介绍在Linux环境下,如何通过代码层面的优化、系统调用的选择以及多线程技术等手段,显著提升C++程序的I/O性能。1.选择合适的I/O模式1.1同步I/O与异步I/O同步I/O操作会阻塞当前线程,直到操作完成,这可能导致性能瓶颈。相比之下,异
- Porting Layer - 跨平台函数接口封装(RTOS/Windows/Linux)- C语言
★Orange★
嵌入式windowsc语言单片机
目录概述具体实现使用说明概述在嵌入式开发中,一般会在某个开发板上某个系统上实现某个功能,为了开发模块的移植性更好,因此需要对不同的操作系统有一层封装层。当换一个操作系统时,模块中的code不用修改,只需要根据不同的操作系统将封装层的函数实现即可,起到了模块和操作系统的解耦。同理,类似的还有模块与开发板的库函数(相当于工具模块),如输入输出,Socket,时间日期,内存管理等。如下实现了两个常用操作
- Building a Linux kernel module without the exact kernel headers
ztguang
Android平台/移动互联网
http://glandium.org/blog/?p=2664ImagineyouhaveaLinuxkernelimageforanAndroidphone,butyoudon’thavethecorrespondingsource,nordoyouhavethecorrespondingkernelheaders.Imaginethatkernelhasmodulesupport(fortu
- SpringBoot项目docker部署过程说明--互联网
test-main-thread
springbootdocker后端
SpringBoot项目docker部署过程说明——互联网环境环境准备mysql使用官方镜像reids前端部署nginx不包含前端代码验证启动nginx配置后端地址转发docker网络自定义docker网络查看docker容器的ip地址防火墙端口防火墙端口开放防火墙端口开放访问不通问题排查后端jar包部署后端程序打包成镜像运行后端镜像docker-compose应用安装docker-compose
- Ubuntu安装busybox
laimaxgg
ubuntulinux运维
Ubuntu安装busyboxBusyBox是一个集成了三百多个Linux常用命令和工具的软件。BusyBox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Linux
- ubuntu 22.04配置cuda和cudnn
m0_52111823
ubuntulinux
cuda:12.1wgethttps://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.runsudoshcuda_12.1.1_530.30.02_linux.runAbort/Continue选择Continue,不要勾选自带的driver配置环境变量
- Linux Vim最全面的教程
码农阿豪@新空间
好“物”分享vim
个人名片作者简介:java领域优质创作者个人主页:码农阿豪工作室:新空间代码工作室(提供各种软件服务)个人邮箱:[2435024119@qq.com]个人微信:15279484656个人导航网站:www.forff.top座右铭:总有人要赢。为什么不能是我呢?专栏导航:码农阿豪系列专栏导航面试专栏:收集了java相关高频面试题,面试实战总结️Spring5系列专栏:整理了Spring5重要知识点与
- Linux操作系统--vi/vim编辑器
魔笛手7
linux编辑器vim文本编辑vi
1.Vi/Vim简介Vi是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。这里简单的理解为如果你需要使用指令取操作Linux系统中的文件,就需要使用Vi。2.Vi/Vim基本使用这里要求掌握三种关于Vi/Vim的模式。分别为:一般模式、编辑模式、命令模
- Linux vi/vim编辑器
Ssaty.
vimlinux编辑器
第1关:vi/vim基本用法任务描述通常情况下我们在图形化界面对文件编辑操作步骤为:(1)创建一个文件,(2)打开文件进行编辑,(3)保存编辑内容,(4)关闭文件。当我们工作在Linux命令行模式时,我们如何对一个文件进行编辑操作,此时我们就可以使用vi/vim命令来对文件编辑,而依赖于图形界面。本关任务:在命令行模式下,使用vi/vim命令来查看已存在文件,并保存退出vi/vim。相关知识vi是
- windows如何搭建Solana本地开发环境
纸鸢666
区块链web3Solana
简介随着Web3技术的快速发展,Solana区块链因其高性能和低交易费用逐渐成为开发者的首选平台。如果你希望在本地搭建Solana开发环境并使用Anchor框架进行开发,本篇博客将指导你如何在Windows系统下通过WSL(WindowsSubsystemforLinux)和Ubuntu搭建开发环境。若你的网络条件良好,建议直接按照官方文档配置和安装安装SolanaCLI和Anchor|这是一块海
- Linux下进程的创建(嵌入式)
程序员杨弋
嵌入式开发linux嵌入式
在嵌入式系统中,进程的创建是一项重要的任务,它允许系统同时运行多个独立的任务。Linux提供了丰富的API和工具,用于创建和管理进程。在本文中,我们将详细介绍Linux下进程的创建,并提供相应的源代码示例。在Linux中,进程的创建是通过调用fork()系统调用来实现的。fork()会创建一个新的进程,称为子进程,该子进程是原始进程(称为父进程)的副本。子进程将执行与父进程相同的代码,并且具有相同
- Linux下进程间通信的八种方法
Aitel@
#Linux内部通信linux同步多进程内核
在linux下的多个进程间的通信机制叫做IPC(Inter-ProcessCommunication),它是多个进程之间相互沟通的一种方法。在linux下有多种进程间通信的方法:无名管道、命名管道、内存映射、消息队列、共享内存、信号量、信号、文件,套接字等等。无名管道(pipe)命名管道(fifo)内存映射(mappedmemeory),消息队列(messagequeue)共享内存(sharedm
- 前端:开源软件镜像站 / 清华大学开源软件镜像站 / 阿里云 / 网易 / 搜狐
快雪时晴-初晴融雪
前端开源软件镜像站前端
一、理解开源软件镜像站开源软件镜像是指开源软件在远程服务器上的备份副本,允许用户通过互联网快速下载和安装所需的软件。在国内,有多个知名的开源软件镜像站,为开发者提供稳定、快速的开源软件下载服务。二、常见开源软件镜像站序号开源软件镜像站解释1清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/资源丰富:提供包括Linux发行版、编程语言、数据库、容器和虚拟
- Linux- systemd -管理工具 | systemd 命令和 sysvinit 命令对比
hh_0211
LinuxLinux-systemd-管理工具
Linux-systemd-管理工具在RHEL7.x,Centos7.x版本之中,最重要的改变之一就是使用Systemd管理机制,不仅可以完成系统的初始化,还可以对系统和服务进行管理,虽然切换到了Systemd,仍然兼容Sysvinit和Linux标准组的启动脚本,之前的Sysvinit,Upstart初始化在红帽企业版位于/etc/rc.d/init.d目录中的bash初始化脚本管理服务,而在R
- 通过 Web 应用程序防火墙 (WAF) 来保护您的nginx应用
云攀登者-望正茂
azurewafapplicationgatewaynginxazure
WAF使用OWASP规则来保护您的应用程序。这些规则包括针对SQL注入、跨站点脚本攻击和会话劫持等攻击的保护。创建应用程序网关后,您可以对其进行测试以确保其正常工作。使用Azure应用程序网关,您可以通过将侦听器分配给端口、创建规则以及将资源添加到后端池来将应用程序Web流量定向到特定资源。创建应用程序网关在Azure门户的左侧菜单中选择“创建资源”。出现“创建资源”窗口。选择“网络”,然后在“热
- Systemd&&Sysvinit
不教而诛
笔记linux服务器centos
问题Systemhasnotbeenbootedwithsystemdasinitsystem(PID1).Can’toperate原因:您的linux系统没有使用systemd在命令穿那个口输入ps-p1-ocomm=输出结果systemd/sysv根据对应的系统使用操作命令去进行操作.服务操作命令:SystemdcommandSysvinitcommmandsystemctlstartserv
- Windows系统在Python环境下使用 acado
叮咚..
python开发语言
使用原因我想在Windows系统的python中实现非线性控制;主流方法都是在matlab或者Linux中使用,采用acado、acados、casadi、CVXPY等。我是个人目前习惯于使用Windows,或许后面也有人想在Windows用acado,也便于自己后续查找,在此记录一下。主要参考文献及链接①REAL-TIMEMODELPREDICTIVECONTROL(MPC)WITHACADOA
- Linux查看进程
肩上风骋
lunixlinux查看进程
Linux查看进程引言查看进程1.快速查看运行中的进程列表2.查看所有用户的所有进程3.显示所有进程的完整格式。4.动态显示进程的信息5.根据进程名查找进程ID6.以树状图的方式显示进程间的父子关系7.查找指定名字的进程id引言Linux查看进程在日常的使用中比较常见,今天记录以下。查看进程1.快速查看运行中的进程列表ps当前只开了一个终端,同时在终端上查看了进程。默认只会显示通过终端启动的程序。
- VMware Fusion 虚拟机Mac版 安装CentOS 7 系统
友善的猴子
centoslinux运维
VMwareFusion虚拟机Mac版安装CentOS7系统一、介绍CentOS是CommunityEnterpriseOperatingSystem的缩写,也叫做社区企业操作系统。是企业Linux发行版领头羊RedHatEnterpriseLinux的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的Bug,相对于其他Linux发行版,其稳定性值得信赖,广泛用于服务器、云计算
- 如何在 Linux 中使用 systemd 安排定期任务?
wljslmz
Linux技术linux服务器网络
systemd是一个系统和服务管理器,它是现代Linux系统中重要的组件之一,主要负责系统的启动和管理。systemd取代了传统的SysVinit和Upstart,成为了大多数Linux发行版的默认init系统。它通过引入并行化启动、依赖关系管理和更强大的功能,提升了系统的启动速度和管理能力。systemd的主要功能服务管理:systemd可以启动、停止、重启和监控系统服务。它通过服务单元(ser
- linux安装elasticsearch,并设置用户登录校验
wenjianyin
elasticsearch
es版本7.6.20.创建新用户esuser并切换创建用户useradduseres设置密码passwduseres切换用户su-useres1.下载es安装包并解压到用户目录下wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz2.添加配置path.data
- Elasticsearch-7.8.0安装最全(mac、Linux、window、centos7.5集群、docker)
2301_79479951
Elasticsearchelasticsearchmacoslinux
目录第一章Elasticsearch-7.8.0单机安装第二章Elasticsearch-7.8.0集群基于Centos7第三章Elasticsearch-7.8.0通过Docker方式安装第一章Elasticsearch-7.8.0单机安装Elasticsearch安装单机、Kibana安装单机适用于mac、window、linux单机测试1.1安装Elasticsearch-7.8.01.1.
- keepalived三主热备架构
睡不够觉
服务器linux网络
目录架构规划三台server操作分别修改三台server主机所有节点安装Keepalived和NginxserverA配置KeepalivedserverB配置KeepalivedserverC配置Keepalived所有节点配置Nginx负载均衡远程复制给其他两台主机验证是否有文件三台server上启动服务配置三台jdk下载JDK21查看并解压文件配置JDK刷新配置文件验证JDK配置三台Tomc
- 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