- 【react】进阶教程02
咔咔库奇
reactreact.js前端前端框架
目录一、深度性能优化1.列表渲染优化(虚拟列表)2.使用WebWorkers处理CPU密集型任务二、复杂状态管理场景1.全局状态分层(Context+useReducer)2.异步状态管理中间件(ReduxThunk)三、高级组件模式扩展1.控制反转(InversionofControl)2.Headless组件模式四、服务端渲染与静态生成(Next.js集成)1.基础SSR实现2.静态生成(SS
- 详细理解React的Fiber结构
芋圆不想 圆
react.js前端前端框架
一、为什么会出现Fiber旧版React通过递归的方式进行渲染,使用的是JS引擎自身的函数调用栈,它会一直执行到栈空为止。而Fiber实现了自己的组件调用栈,它以链表的形式遍历组件树,可以灵活的暂停、继续和丢弃执行的任务。实现方式是使用了浏览器requestIdleCallback这一API因为需要给用户制造一种应用加载很快的假象,所以不能让一个程序一直霸占着资源,需要通过调度策略来合理分配资源,
- 【C++】Linux系统编程入门
饮酒吃肉飞奔
Linux/C/C++c++linux开发语言c语言vscodeubuntu
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一常用的Linux系统命令符二GCC三静态库四动态库(共享库)动态库五动态库和静态库的区别六Makefile变量模式匹配Makefile的函数七GDB调试设置断点调试命令八文件IO九虚拟地址空间文件描述符opencreatecopylseekstatls-l的实现文件属性操作函数目录操作函数目录遍历函数dupdup2函数f
- 高频Tick数据:五档期货Level2深度解析20241224
level2Tick
期货level2历史数据获取金融数据库
高频Tick数据:五档期货Level2深度解析20241224高频Tick五档期货Level2数据,作为一种先进的金融市场分析工具,以其一秒四次的高频更新,为投资者揭示了市场的微观结构。本文将深入探讨这一数据如何帮助投资者洞察市场动态,优化交易策略,实现投资收益的最大化。商品和金融期货level2高频数据(一秒四次)下载链接:https://pan.baidu.com/s/144ewl4T0dQv
- 数仓建模—数据管理能力成熟度评估模型(DCMM)
不二人生
数仓建模数据仓库数仓建模
文章目录数仓建模—数据管理能力成熟度评估模型(DCMM)数据管理能力成熟度研究现状国外研究现状国内研究现状DCMM与其他数据管理体系有什么区别什么是DCMMDCMM包含哪些内容DCMM等级评估等级划分什么样的企业可以申请DCMM评估DCMM评估流程评估细节评估方式评估类型评估参考标准企业主要有哪些人参与目前哪些机构具备DCMM评估的资质收费情况DCMM的价值应用案例总结数仓建模—数据管理能力成熟度
- 探索企业级智能对话:ChatGPT + 企业数据 (C) 开源项目推荐
芮川琨Jack
探索企业级智能对话:ChatGPT+企业数据(C#)开源项目推荐azure-search-openai-demo-csharpAsampleappfortheRetrieval-AugmentedGenerationpatternrunninginAzure,usingAzureCognitiveSearchforretrievalandAzureOpenAIlargelanguagemodels
- 推荐开源项目:Contoso Data Generator
侯深业Dorian
推荐开源项目:ContosoDataGeneratorContoso-Data-GeneratorCustomContosodatabasegeneratorandready-to-useContososampledatabasesforSQLServer项目地址:https://gitcode.com/gh_mirrors/co/Contoso-Data-Generator1、项目介绍Conto
- 深入探索 llama-cpp-python:在 LangChain 中启用本地 LLM 推理
aehrutktrjk
llamapythonlangchain
引言在人工智能的迅猛发展中,大语言模型(LLM)扮演着不可或缺的角色。Llama.cpp是一个用于推理许多LLM模型的开源库,它的Python绑定——llama-cpp-python提供了在Python中更加便捷的接口。这篇文章旨在介绍如何在LangChain中运行llama-cpp-python,并探讨其安装和使用中的一些细节。主要内容1.安装llama-cpp-python首先,我们需要选择合
- 深入理解C++ 线程池:动手实践与源码解析
深度Linux
C/C++全栈开发C/C++线程池Linux开发
在当今多核处理器横行的时代,多任务处理已然成为各类软件提升性能的关键“武器”。想象一下,你正使用一款图片处理软件,它需要同时对多张图片进行滤镜添加、尺寸调整等操作;又或者是一个网络服务器,瞬间要应对来自四面八方的海量用户请求。面对这些场景,如果为每个任务单独创建一个线程,任务结束后再销毁线程,频繁的线程创建与销毁操作,将会带来巨大的开销,就如同让一个短跑运动员不停地进行百米冲刺,很快就会体力不支。
- Pandas——DataFrame对象用法
William.csj
编程语言pandas
Pandas——DataFrame对象用法一、创建pandas的DataFrame对象二、使用pandas读取excel文件三、访问pandasDataFrame中的元素四、获取DataFrame的行数和列数五、交换行六、访问和修改元素七、转置一、创建pandas的DataFrame对象Pandas学习笔记二——创建pandas的DataFrame对象的3种方法二、使用pandas读取excel文
- 高并发环境下的C++ 定时器解决方案
深度Linux
C/C++全栈开发linuxC/C++红黑树定时器
在当今数字化时代,互联网应用如潮水般涌现,高并发场景随处可见。从电商平台的促销抢购,到在线游戏的实时对战,再到金融交易系统的频繁交互,海量的用户请求蜂拥而至,这对系统的性能和响应速度提出了前所未有的挑战。在这些高并发应用的背后,C++定时器扮演着至关重要的角色,它就像一位精准的时间管理者,掌控着任务的执行节奏,确保系统有条不紊地运行。今天,我们就一起来深入探讨高并发环境下的C++定时器解决方案,揭
- 不愧是腾讯,面试的质量太高了
大G哥
面试职场和发展
今天分享的是粉丝投稿的在腾讯的最新面经,问的都是一些高质量的问题,看看你能答上来几个:1.Proactor和Reactor模式的区别?核心区别:事件处理流程不同Reactor:基于同步I/O,主线程监听事件就绪后,由工作线程执行实际I/O操作(读/写)和业务处理。典型代表:LinuxepollProactor:基于异步I/O,主线程直接处理I/O操作完成后的事件通知,工作线程仅处理业务逻辑。典型代
- Webpack Module Federation实战:微前端架构
糖糖老师436
前端webpack架构
WebpackModuleFederation是Webpack5引入的一个特性,它支持微前端架构,允许不同的Web应用之间共享模块,而不需要运行时的容器或服务器端的构建步骤。项目结构假设有两个独立的React应用:app1和app2,其中app2将通过ModuleFederation作为远程模块被app1消费。app1:主应用app2:作为远程微应用app2配置首先,在app2中配置Webpack
- 面试常考:Promise的用法,以及fetch的原理
糖糖老师436
前端程序员面试面试前端
在了解Promise之前,我们来看一段代码js复制代码functionfoo(){setTimeout(()=>{console.log('1')},1000)}functionbar(){console.log('2')}foo()bar看完这段代码之后,按照传统的,代码从上往下执行,很多人会以为先打印出1,然后再打印出2,但是事实真是这样吗?事实上,结果恰恰相反,事实上,结果是先打印2,后打印
- 一次vue2项目打包构建优化过程
糖糖老师436
程序员前端vue前端vue
记一次vue2项目构建优化过程。项目基本情况项目是一个vue2+webpack4的管理平台,接下来看一下项目的打包耗时情况和产物依赖情况耗时情况首先使用SpeedMeasurePlugin来看一下项目的构建过程中各个阶段的耗时情况。ini复制代码constSpeedMeasurePlugin=require("speed-measure-webpack-plugin");constsmp=newS
- OpenAI: 人工智能领域的领军企业
2401_87458718
人工智能
OpenAI简介OpenAI是一家位于美国旧金山的人工智能研究实验室,成立于2015年。作为人工智能领域的领军企业,OpenAI致力于开发安全友好的通用人工智能(AGI),其使命是确保人工通用智能能够造福全人类。自成立以来,OpenAI在自然语言处理、计算机视觉、强化学习等多个人工智能领域取得了突破性进展,推出了一系列广受关注的AI模型和产品。OpenAI的发展历程OpenAI由埃隆·马斯克、山姆
- MFLUX: 在Mac上本地运行强大的FLUX模型
2401_87458718
macos
MFLUX简介MFLUX(MacFLUX)是一个基于AppleMLX框架的FLUX模型实现,旨在让用户能够在Mac电脑上本地运行强大的FLUX图像生成模型。FLUX模型由BlackForestLabs开发,是一种先进的文本到图像生成模型。MFLUX的核心理念是保持代码简洁明了,同时优先考虑可读性而非通用性和性能。它是HuggingFaceDiffusers库中FLUX实现的逐行移植版本,使用App
- 2024年DirectX12(D3D12)基础教程(十七)—(5)
2401_84165919
程序员3d
UINTnMeshCnt=stMeshData.m_paiModel->mNumMeshes;if(0==nMeshCnt){ATLTRACE("文件(%s)中没有网格数据!\n",pszFileName);returnFALSE;}constaiMesh\*paiSubMesh=nullptr;constaiVector3DZero3D(0.0f,0.0f,0.0f);UINTnNumBones
- 2024年Python最全Python爬取Boss直聘,帮你获取全国各类职业薪酬榜(1)
2301_82242474
程序员python开发语言
代码importrequestsfrombs4importBeautifulSoupimportcsvimportrandomimporttimeimportargparsefrompyecharts.chartsimportLineimportpandasaspdclassBossCrawler:definit(self,query):self.query=queryself.filename=
- 一文读懂 Spring、Spring Boot 和 Spring Cloud
刘小炮吖i
Java后端开发面试题springspringspringbootspringcloud面试
Spring:Spring是一个开源的轻量级Java开发框架,犹如一座大厦的基石,为整个Java开发领域奠定了坚实的基础。它的核心灵魂是控制反转(IoC)和面向切面编程(AOP)。IoC(InversionofControl,控制反转)IoC,即控制反转,是一种极具智慧的设计思想。在传统的软件开发模式中,对象就像是一个个独立的个体,它们不仅要负责自己的业务逻辑,还要操心自己所依赖的对象的创建和管理
- 数据结构-顺序表-代码实现(c语言版)
小刘不想改BUG
数据结构基础数据结构c语言算法
使用c语言实现对顺序表的增删改查操作:定义顺序表结构体typedefstruct{int*elements;size_tsize;size_tcapacity;}SequentialList;1.初始化顺序表//初始化顺序表voidSequentialListInit(SequentialList*list,intcapactiy){list->elements=(int*)malloc(size
- 正则表达式
蜗牛^^O^
正则表达式服务器windows
Patternpattern=Pattern.compile(“^\s*(\w+)->\s*(\w+)\s:\s*\w*\s*$”);正则表达式以^符号作为开始,以$作为结束'\s’表示可以任意不是空白符的字符'\w’表示任意数字字母‘*’表示重复0或多次‘+’表示重复1次或多次()小括号包起来表示分组,无含义,但是Pattern.matcher方法会识别将其自动分离出来例子:Patternpat
- vue 3D 翻页效果
qq_31683775
vue.js3d前端
初始页exportdefault{data(){return{startX:0,//触摸开始的X坐标moveX:0,//当前移动的X坐标threshold:100,//滑动阈值};},methods:{onTouchStart(event){this.startX=event.touches[0].clientX;},onTouchMove(event){this.moveX=event.touc
- llama-cpp-python本地部署并使用gpu版本
i__chen
llamapython开发语言
使用带编译的命令安装llama库#首选GGML_CUDA后续LLAMA_CUBLAS将删除CMAKE_ARGS="-DGGML_CUDA=on"FORCE_CMAKE=1pipinstallllama-cpp-python--no-cache-dirCMAKE_ARGS="-DLLAMA_CUBLAS=on"FORCE_CMAKE=1pipinstallllama-cpp-python--no-c
- Mamba架构深度解析:基于状态空间模型的线性复杂度序列处理实战指南(附代码+案例
燃灯工作室
Ai架构
一、技术原理:状态空间模型与线性复杂度数学推导1.传统状态空间模型(SSM)连续系统描述:h′(t)=Ah(t)+Bx(t)y(t)=Ch(t)+Dx(t)\begin{aligned}h'(t)&=Ah(t)+Bx(t)\\y(t)&=Ch(t)+Dx(t)\end{aligned}h′(t)y(t)=Ah(t)+Bx(t)=Ch(t)+Dx(t)离散化后(零阶保持法):hk=Aˉhk−1+Bˉ
- 论文解读(全头皮重建方向):3DCMM
FLOWVERSE
3d3D人头补全
从面部到完整头部:3DCMM的技术原理解析引言在计算机图形学和人体工学领域,3D头部模型的需求日益增加。无论是虚拟化身的创建还是头盔的个性化设计,仅有面部模型往往不足以满足要求,完整的头部几何(包括头皮)才是关键。传统的3D可变形模型(3DMM)多集中于面部重建,头皮区域因数据稀缺和技术限制常被忽略。2022年发表于VRCAI’22的论文《3DCMM:3DComprehensiveMorphabl
- 深入了解React Fiber:React的新架构
糖糖老师436
react.js架构前端
ReactFiber是React16引入的一种全新的协调引擎,旨在解决旧版React在性能和灵活性方面的不足。本文将深入探讨ReactFiber的工作原理、其背后的设计理念,以及它如何提升应用的性能。我们会用通俗易懂的语言,帮助你轻松理解这个复杂的概念,并通过代码示例来进一步解释。1.什么是ReactFiber?ReactFiber是对React核心算法的一次彻底重构。旧版的React使用的是“S
- 把图片转换成视频-ffmpeg
编程日记
Android开发
http://blog.csdn.net/huangxiansheng1980/article/details/6819271ffmpeg是一个非常强大的工具,使用他可以转换视频格式,包括视频容器格式,视频编码格式。这里所说的视频,包括了视频和音频。可以更改视频的其他的参数,比如帧率-每秒播放的帧数,视频的大小-尺寸等等。还可以将图片转换视频。图片转换成视频,实际上是通过内置的视频编码格式将你的图
- Fail to connect to camera service的几种原因和解决方法
编程日记
Android开发
在应用开发中涉及到camera相关的操作经常会出现Failtoconnecttocameraservice的问题,相应的也就会出现上面类似的错误异常日志。下面就出现这个错误的场景和原因简单做下分析。1.手机上有安装安全过滤软件。因为camera属于较为敏感的权限,所以,有些手机安全管家会自动拒绝camera的打开操作。针对这种错误,可以在手机安全管家软件中,降低一下camera的安全级别,或把自己
- 基于“蘑菇书”的强化学习知识点(十三):第三章的代码:MonteCarlo.ipynb及其涉及的其他代码的更新以及注解(gym版本 >= 0.26)(一)
墨绿色的摆渡人
基于“蘑菇书”的强化学习知识点强化学习蘑菇书
第三章的代码:MonteCarlo.ipynb及其涉及的其他代码的更新以及注解(gym版本>=0.26)(一)摘要摘要本系列知识点讲解基于蘑菇书EasyRL中的内容进行详细的疑难点分析!具体内容请阅读蘑菇书EasyRL!对应蘑菇书附书代码——MonteCarlo.ipynb在MonteCarlo.ipynb目录下面创建envs文件夹,然后下载racetrack.py和track.txt放到envs
- 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