- Vue 与react 生命周期对比
weixin_42339193
vue.jsreact.js前端
目录一、Vue2生命周期二、Vue3生命周期三、React生命周期四、ReactHooks生命周期替代方案五、三者对比总结六、关键差异分析七、最佳场景一、Vue2生命周期vue2的生命周期分为创建、挂载、更新、销毁四个阶段,共8个钩子beforeCreate→created→beforeMount→mounted→beforeUpdate→updated→beforeDestroy→destroy
- mysql怎样区分「主表」与从表
跨越七海
DatabaseSystemDesignmysql数据库sql
实体完整性是通过主键约束实现的,而参照完整性是通过外键约束实现的,两者都是为了保证数据的完整性和一致性。主键约束比较好理解,就是主键值不能为空且不重复,已经强调好多次,所以这里重点记录对外键约束的学习。主表与从表若同一个数据库中,B表的外键与A表的主键相对应,则A表为主表,B表为从表。假设学生表(学号,姓名,性别,专业号),专业表(专业号,专业名称),则学生表中的专业号为学生表的外键,其与专业表中
- 安装MySql服务集群,主从复制模式,MySql 8.x为例
拄杖忙学轻声码
Linux部署与安装MySQLOraclePostgreSQLmysql
说明:在高并发的应用中,mysql数据库经常成为系统的瓶颈之一。为了解决这一问题,使用主从复制(Master-SlaveReplication)可以有效地分担数据库的读压力。主从复制是一种异步复制模式,允许将一个主数据库的数据复制到一个或多个从数据库,所有的写操作都在主数据库上执行,而从数据库主要用于读操作一、准备假设我们有两台服务器:1、主服务器(Master):192.168.0.12、从服务
- 数据库搭建集群之主从复制
gardenia_a
初级程序猿
数据库搭建集群之主从复制安装数据库去官网https://www.mysql.com/在linux系统下修改配置my.conf(windows是my.ini)主服务加上server_id=1一台从服务器是server_id=2,一台从服务器server_id=3重启数据库linux命令servicemysqldstart在进行数据库配置主数据执行:让从库来找到GRANTREPLICATIONSLAV
- MyBatis注解开发增删改查基础篇
1加1等于
#SpringBootspringboot
本文是MyBatis注解开发的基础篇,将通过实际场景,详细介绍MyBatis注解式开发的使用,这是MyBatis很强大的一个特性,可以直接在接口方法上定义SQL语句,从而实现数据库的增删改查操作。本文目录一、环境依赖二、创建对应实体类三、映射接口四、复杂查询与动态SQL一、环境依赖在开发之前,需要确保环境pom.xml中添加了MyBatis相关依赖。org.mybatis.spring.bootm
- MySQL——表添加索引多种方式
1加1等于
MySQLmysql数据库
在不同的数据库管理系统中,添加索引的基本思路类似,但语法会稍有不同,下面以常见的MySQL数据库为例,介绍三种在表中添加索引的方式。本文目录方式一:创建表时添加索引语法示例实际例子方式二:使用ALTERTABLE语句添加索引语法示例实际例子方式三:使用CREATEINDEX语句添加索引语法示例实际例子方式一:创建表时添加索引在使用CREATETABLE语句创建表的同时,可以为表中的列添加索引。这种
- InnoDB 索引数据结构的详解
lanbing
Mysql数据结构mysql
InnoDB存储引擎的索引结构基于B+树(B+Tree),这是其核心特性之一。B+树的设计结合了磁盘存储特性和数据库查询需求,能够高效地处理大规模数据的查找、插入、删除和范围查询操作。以下是InnoDB索引数据结构的详细说明:1.B+树的结构特点B+树是一种自平衡的多路搜索树,其核心特性如下:所有数据存储在叶子节点:B+树的非叶子节点仅存储键值(Key)和子节点指针,而实际的数据(记录)只存在于叶
- flutter结合ai工具(其他语言通用)
程一个大前端
flutter人工智能
一、为什么Flutter开发者需要免费AI工具?1.减少重复性编码Flutter开发中,UI组件、网络请求、状态管理等代码高度重复,AI可自动生成这些代码。示例:输入"创建一个MaterialDesign风格的登录页面",AI工具能生成完整代码,减少手动编写时间2。2.加速调试与错误修复AI可分析运行时错误,提供修复建议,甚至自动修复常见问题。案例:当Dart代码出现NullPointerExce
- 信创背景下应用软件迁移解析:从政策解读到落地实践方案
tianzhiyi1989sq
人工智能
一、信创背景与政策解读1.1什么是信创?信创(信息技术应用创新)是指用我国自主研发的基础软硬件产品实现对国外产品的替代,特别是在CPU、GPU及操作系统等关键领域。其核心目标是解决核心技术"卡脖子"问题,构建安全可控的IT底层架构和标准。1.2国家政策导向根据"十四五"《软件和信息技术服务发展规划》:战略高度:软件产业已上升为国家战略关键任务:提升关键软件供给能力(操作系统、数据库等)壮大信息技术
- 外观模式 - Flutter中的一键操作大师,复杂功能的极简入口!
明似水
flutter外观模式flutterjavascript
痛点场景:多步骤的用户注册流程假设你的应用需要处理以下注册步骤:验证邮箱格式检查密码强度调用注册API保存用户Token初始化用户配置同步基础数据发送欢迎邮件传统实现方式:FutureregisterUser(Stringemail,Stringpassword)async{//1.验证邮箱if(!EmailValidator.validate(email)){throwInvalidEmailE
- python | vscode | cursor | 使用uv快速创建虚拟环境(实现一个项目一个虚拟环境,方便环境管理)
让我安静会
配置与安装pythonvscodeuv
从笨重的pycharm转到vscode/cursor。vscode是编辑器,虽然可以安装各种extension,还是需要安装python解释器。安装python,实现基本代码运行:去python官网下载python的windows安装包(python解释器)安装时记得选择customized,安装非C盘中(比如D盘)将python添加到PATH中:把刚刚安装python的路径添加到系统环境变量中(
- 功能测试包含哪些测试?分别有什么作用?
可可爱爱的程序员
功能测试软件测试测试理论功能测试python单元测试程序人生
功能测试包含哪些测试?功能测试主要包括链接测试、表单测试、搜索测试、删除测试、cookies、session测试、数据库测试等部分。功能测试对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试包含哪些测试?分别有什么作用?接下来我们具体了解一下:一、链接测试测试所有链接是否按指示的那样确实链接到了该链接的页面;测试所链接的页面是否存在;测试web应用系统上没
- MySQL数据库
段帅龙呀
Linux数据库mysqllinux
数据库(Mysql)默认端口###port=3306数据文件默认位置/usr/local/mysql/data数据库的引擎###InnoDB存储引擎:默认引擎,最常用的。(支持事务)###查看当前默认存储引擎showvariableslike'%storage_engine%';数据库的种类###关系型数据库###非关系型数据库。sql语句#SQL(StructuredQueryLanguage即
- 中小团队零成本搭建PHP任务管理系统:4大核心工具实测推荐
php
引言在现代软件开发和团队协作中,高效的任务管理系统是提升生产力的核心要素。PHP作为全球最受欢迎的服务器端编程语言之一,凭借其成熟的生态系统、丰富的框架选择和强大的社区支持,成为构建任务管理系统的理想选择。一个优秀的PHP任务管理系统不仅能够实现任务的全生命周期管理,还能通过智能化的功能提升团队协作效率,降低项目管理成本。构建这样一个系统需要考虑多个层面:从底层的数据库设计到前端的用户体验,从安全
- SDL渲染RGB数据到QT的控件中通过定时器刷新
cpp文件:#include"sdlqtrgb.h"#includestaticSDL_Window*sdl_win=NULL;staticSDL_Renderer*sdl_render=NULL;staticSDL_Texture*sdl_texture=NULL;staticintsdl_width=0;staticintsdl_height=0;staticunsignedchar*rgb=
- C++基础(FreeRDP编译)
安装先安装openssl保姆级OpenSSL下载及安装教程,OpenSSL下载及安装教程-CSDN博客vcpkgintegrateinstall安装vcpkginstallzlibvcpkginstallffmpeg:x64-windows编译指令PSD:\freerdp\FreeRDP\build>cmake..-G"VisualStudio172022"-Ax64-DCMAKE_TOOLCHA
- Spring Boot秒杀系统崩溃?一招解决高并发难题
国际云
大数据数据库架构
想象一下:精心策划的秒杀活动终于上线,瞬间涌入百万用户,你的系统却不堪重负,页面卡死、库存错乱、订单丢失…这种噩梦场景,正是众多开发者面对高并发时的真实困境。以SpringBoot为核心的秒杀系统,如何突破性能瓶颈?本文将揭示核心解决方案,助你轻松应对流量洪峰。一、秒杀系统崩溃?高并发下的致命痛点流量洪峰:瞬时并发量(QPS/TPS)远超日常数十甚至数百倍,服务器资源(CPU、内存、网络、数据库连
- 深度C盘清理技巧
nightunderblackcat
基础项目开发语言windows
大家好!C盘空间告急几乎是每个Windows用户都会遇到的“成长烦恼”。系统运行缓慢、更新失败、软件无法安装……这些问题的元凶往往就是被塞满的C盘。今天我们就来一场彻底的“大扫除”,不仅清理表面垃圾,更要深入系统释放宝贵空间!第一步:基础清洁-扫除显性垃圾磁盘清理工具(最基础但有效!)操作:打开“此电脑”->右键点击C盘->选择属性->点击磁盘清理。重点清理:Windows更新清理:这是大头!系统
- MyBatis Plus 常用注解
需要重新演唱
webjavamybatisjava数据库
MyBatisPlus是一个基于MyBatis的增强工具,旨在简化开发过程,提高开发效率。它提供了许多实用的功能,如代码生成器、分页插件、条件构造器等,使得开发者可以更专注于业务逻辑的实现,而不必过多关注MyBatis的配置和SQL编写。MyBatisPlus常用注解MyBatisPlus提供了丰富的注解,用于简化实体类和数据库表之间的映射关系。以下是一些常用的注解:1.@TableName用于指
- 如何配置远程服务器
hai_zwh
服务器电脑配置维修专栏服务器运维
最近组内为了项目新购买了一个算力不错的装有ubuntu20.04系统的主机,本人尝试用此主机搭建一个供多人使用的服务器平台,网上看了很多教程说法不一而且很复杂,经过尝试后,本人探索出了一种较为简单的方法去配置远程服务器(这里以服务器主机为ubuntu系统作为例子)。1.首先,确定你的ubuntu系统的源进行了更新,如果没有更新,打开终端输入以下命令行:sudoaptupdate这里选择sudoap
- 【WinSCP 安装与使用】
岁月玲珑
linuxwindowslinuxwindows
WinSCP是一款完全免费且开源的Windows图形化文件传输工具,基于SSH协议实现安全的SFTP和SCP文件传输,特别适合在Windows与Linux服务器间进行文件管理。以下从安装到使用的完整指南:✅一、WinSCP的核心特性(免费开源验证)开源协议采用GPL许可证,源码托管于GitHub。零费用无广告、无功能限制,所有版本均可免费使用。安全传输支持SFTP(SSH-2)、SCP协议,全程加
- pgsql14自动创建表分区
健康马m
pgsql数据库
最近有pgsql的分区表功能需求,没想到都2025年了,pgsql和mysql还是没有自身支持自动创建分区表的功能现在pgsql数据库层面还是只能用老三样的办法来处理这个问题,每个方法各有优劣1.触发器这是最传统的方法,通过创建一个触发器来检查数据并创建新分区缺点是每次插入数据都会执行触发器,当数据量大时可能影响性能,现在基本很少用这个方案在生产环境上操作2.pg_partmanPostgreSQ
- Java 中 DataSource-数据源 的基础介绍
Java中DataSource-数据源的基础介绍一、核心概念解析1.1数据源(DataSource)1.2数据库连接池(ConnectionPool)1.3二者关系1.4DataSource接口二、DataSource解决的问题与优势2.1DataSource的作用2.2传统方式的局限性2.3使用连接池DataSource的改进三、SpringBoot中DataSource的配置与使用3.1自动配
- SpringBoot + MyBatis 事务管理全解析:从 @Transactional 到 JDBC Connection 的旅程
coderzpw
MybatisSpring系列springbootmybatisjava
SpringBoot+MyBatis事务管理全解析:从@Transactional到JDBCConnection的旅程一、JDBCConnection:事务操作的真正执行者1.1数据库事务的本质1.2Spring与Connection的协作流程二、从@Transactional到JDBCConnection的完整链路2.1Spring中TransactionInterceptor的核心逻辑2.2T
- Java--SpringBoot使用@Transactional注解添加事务
m0_54883970
面试学习路线阿里巴巴android前端后端
一、Java事务1、通常的观念认为,事务仅与数据库相关。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、**隔离性(isolation)和持久性(durability)**的缩写。事务的原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。事务的一致性:表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事
- springboot使用@Transactional失效问题排查
1、排查数据库引擎是不是InnoDB2、启动类是否开启@EnableTransactionManagement3、重点在使用@Transactional(rollbackFor=Exception.class)这个注解的类或者方法中是否有trycatch如果有,要在catch中设置手动回滚//设置手动回滚TransactionAspectSupport.currentTransactionStat
- Java 接口性能优化二
hqxstudying
数据库oraclesql
三、数据库层面:优化数据交互的「最后一公里」数据库是接口性能的「重灾区」——超过60%的接口响应慢问题可追溯至低效的数据交互。优化需从「SQL执行效率」「索引设计」「连接管理」三个维度突破。SQL优化:让查询「少走弯路」核心原则:减少无效数据扫描,让数据库「只做必要的工作」。常见问题与优化:**避免SELECT***:问题:返回冗余字段,增加数据传输量,无法利用覆盖索引。优化:明确指定需要的字段,
- 深入解析privacy.sexy项目的应用层架构与实现
郁蝶文Yvette
深入解析privacy.sexy项目的应用层架构与实现privacy.sexyOpen-sourcetooltoenforceprivacy&securitybest-practicesonWindows,macOSandLinux,becauseprivacyissexy项目地址:https://gitcode.com/gh_mirrors/pr/privacy.sexy项目概述privacy.
- 阿里云Ubuntu服务器上安装MySQL并配置远程连接
一条破秋裤
个人笔记adb
1.安装MySQL首先连接到你的Ubuntu服务器,然后执行:#更新软件包列表sudoaptupdate#安装MySQL服务器sudoaptinstallmysql-server#启动MySQL服务sudosystemctlstartmysql#设置MySQL开机自启sudosystemctlenablemysql#检查MySQL状态sudosystemctlstatusmysql2.配置MySQ
- Windows下利用RegisterWindowMessage函数实现进程间通信
程间通信的方法有很多,比如使用注册消息,内存映射,WM_COPYDATA等,下面先讲使用注册消息实现的方法。使用注册消息比较简单,核心是消息的接收端和消息的发送端(接收端和发送端在两个不同的进程)必须注册相同的消息,这样发送消息才能识别。功能:定义一个新的窗口消息,该消息保证在整个系统中是唯一的。发送或发布消息时可以使用消息值。UINTRegisterWindowMessageA([in]LPCS
- 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