- a16z:一文梳理 7 种代币分类,如何区分网络代币与公司支持代币?
web3区块链比特币
作者:Techub精选编译撰文:MilesJennings、ScottDukeKominers和EddyLazzarin,a16z编译:Glendon,TechubNews随着基于代币的网络模型的活动日益活跃和创新,开发者们正在思考如何区分不同类型的代币——以及哪种代币最适合他们的业务。与此同时,消费者和政策制定者也正在尝试更好地了解区块链代币在应用中的角色和风险。为了帮助梳理代币类别,本文提供了
- ts学习笔记
江小年
go笔记
TypeScript本文引用枫枫知道不做商用,仅用于学习枫枫知道可以购买枫枫知道的课程安装node建议下载长期维护版安装之后把node加入环境变量命令行输入node-vnpm-vnpm就是node里面安装第三方包的工具,相当于pip安装tsc它的作用就是将ts文件编译为js文件//.ts=>.jsnpmitypescript-gtsc-vtsc--init//生成一个json文件tsc//会编译项
- Gin学习笔记
江小年
gogin学习笔记
RESTfulAPI以前写网站get/userpost/create_userpost/update_userpost/delete_userRESTfulAPIget/user获取post/user新建put/user更新patch/user更新部分delete/user删除REST与技术无关,代表的是一种软件架构风格,只要API程序遵循了REST风格,那就可以称其为RESTfulAPIREST
- SpringBoot统一功能处理——统一异常处理
棕豆兔&
springbootspringjava
目录一、异常简单使用二、@ControllerAdvice源码分析一、异常简单使用统一异常处理使用的是@ControllerAdvice+@ExceptionHandler来实现的,@ControllerAdvice表示控制器通知类,@ExceptionHandler是异常处理器,两个结合表示当出现异常的时候执行某个通知,也就是执行某个方法事件。importcom.example.demo.mod
- Java开发高级工程师面试,etcd:一款比Redis更骚的分布式锁的实现方式
m0_60732427
程序员面试java后端
Watch机制支持Watch某个固定的key,也支持Watch一个范围(前缀机制)。当被Watch的key或范围发生变化,客户端将收到通知;在实现分布式锁时,如果抢锁失败,可通过Prefix机制返回的Key-Value列表获得Revision比自己小且相差最小的key(称为pre-key),对pre-key进行监听,因为只有它释放锁,自己才能获得锁,如果Watch到pre-key的DELETE事件
- 请谈谈 HTTP 中的安全策略,如何防范常见的Web攻击(如XSS、CSRF)?
程序员黄同学
node.js前端开发JavaScript前端httpxss
一、Web安全核心防御机制(一)XSS攻击防御(跨站脚本攻击)1.原理与分类存储型XSS:恶意脚本被持久化存储在服务端(如数据库)反射型XSS:脚本通过URL参数或表单提交触发执行DOM型XSS:通过修改DOM节点动态插入脚本2.防御方案//Express中间件:全局XSS防护constxss=require('xss');app.use((req,res,next)=>{//对所有请求参数进行过
- 大模型——Spring Boot 整合 Spring AI 实现项目接入ChatGPT
不二人生
大模型人工智能大模型
大模型——SpringBoot整合SpringAI实现项目接入ChatGPT随着人工智能技术的快速发展,越来越多的应用程序开始集成人工智能功能,以提供更智能、更个性化的体验。诸如ChatGPT等开放性大型语言模型的出现,使得自然语言处理和对话系统的开发变得更加容易和普及。这些技术已经在社交媒体、客户服务、教育等领域展现出巨大潜力,对于提升用户体验和提高工作效率至关重要。优势在之前,openai已经
- 网安入门第四篇 MISC中常见的加密算法 篇章一
网络安全工程师教学
网络服务器linux开发语言运维大数据安全
目录DES算法背景:安全性:加密流程:RSA加密算法背景:安全性:加密原理:DES算法背景:数据加密标准(DES,DataEncryptionStandard)是一种使用密钥加密的块密码,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法。这个算法因为包含一些机密设计元素,相对短的密钥长度以及怀疑内含美国国家安全局(NS
- MongoDB 集群模式简单了解
黑风风
网络运维NoSQLmongodb数据库
MongoDB集群模式简单了解在现代应用架构中,数据库的扩展性和高可用性至关重要,而MongoDB作为NoSQL数据库的佼佼者,提供了多种集群模式来应对不同场景的需求。这篇文章将深入探讨MongoDB的主要集群模式,并分析它们的适用场景和优缺点。1.MongoDB的三大集群模式MongoDB主要提供以下三种集群模式,每种模式都有其独特的应用场景和优势:副本集(ReplicaSet)——高可用性与数
- RocketMQ的Consumer源码分析
foolishboy_w
后台技术rocketmqjava-rocketmqrocketmqjava
RocketMQ的Consumer源码分析文章目录RocketMQ的Consumer源码分析Consumer的Rebalance流程Consumer的消息拉取流程Consumer的Offset管理这一节我们分析RocketMQ的Consumer的启动流程以及消息处理过程。下图是RocketMQ启动流程、Rebalance、以及消息拉取处理的较为完整的流程图。##Consumer的启动流程Consu
- go-etcd 安装与使用指南
尤瑾竹Emery
go-etcd安装与使用指南go-etcdDEPRECATED-pleaseusetheofficialclientathttps://github.com/coreos/etcd/tree/master/client项目地址:https://gitcode.com/gh_mirrors/go/go-etcd1.项目目录结构及介绍go-etcd是一个用于与etcd交互的Go语言客户端库。由于您提供
- Lua-Resty-Etcd:非阻塞式Lua驱动库,专为OpenResty设计
廉皓灿Ida
Lua-Resty-Etcd:非阻塞式Lua驱动库,专为OpenResty设计lua-resty-etcdNonblockingLuaetcddriverlibraryforOpenResty项目地址:https://gitcode.com/gh_mirrors/lu/lua-resty-etcd项目介绍Lua-Resty-Etcd是一个专为OpenResty设计的,支持EtcdAPIv3的非阻塞
- 配置文件对比工具
foolishboy_w
开发工具提效小工具服务器json
配置文件对比工具文章目录配置文件对比工具Introdutiongit地址QuickStart1.下载源码,获取可执行的jar包2.执行jar包,对比文件3.执行结果说明Introdutionconfig-compare是一个小工具,你可以使用它来对比配置文件。目前支持的配置文件格式有yaml、yml、properties以及json,甚至你可以对比两个类型不同的文件,比如yml和json。git地
- 深度学习在SSVEP信号分类中的应用分析
自由的晚风
深度学习分类人工智能
目录前言1.SSVEP信号分类的处理流程2.模型输入和数据预处理3.模型结构设计3.1卷积神经网络(CNN)3.2长短期记忆网络(LSTM)4.训练方法与激活函数5.性能评估与挑战6.未来方向前言随着脑机接口(BCI)技术的发展,SSVEP(稳态视觉诱发电位)因其高信息传输速率和短训练时间而成为最受欢迎的BCI范式之一。近年来,深度学习方法在SSVEP信号分类中取得了显著的成果。本文通过对31个深
- MPchart
fivestar2009
gitee
1)MPChart自适应,只需要leftYAxis.setAxisMinimum(0);把这个去掉即可2)MPChart想看数据需要自己实现MarkerView,chart.setMarkreView即可publicclassWZMarkerViewextendsMarkerView{ContextmContext=null;privateTextViewtv_widget_marker_view
- 如何使用staruml创建时序图
forjav
javastaruml时序图
说明:staruml版本:5.0.2.15701、打开staruml2、添加模型,右键Untitled=>add=>model=>取名myuml(可以随意取)3、添加图表,右键myuml=>AddDiagram=>SequenceDiagram4、重命名图表5、添加参与者actor,右键myuml=>add=>actor=>重命名为person6、添加对象,右键mysd=>Add=>Object=
- 炒股开户资金要求是多少?不同证券公司是否有区别?
股票程序化交易接口
量化交易股票API接口Python股票量化交易炒股开户资金要求证券公司股票量化接口股票API接口
Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>开户资金的组成部分炒股开户的资金要求包含多个方面。首先是用于购买股票的资金,这是最直接的部分。投资者需要有一定资金才能买入股票。其次是可能存在的账户管理费等费用的预留资金。有些证券公司会收取一定的账户管理费用,如果没有预留这部分资金,
- Android Studio打包cocos creator项目出现java.lang.UnsatisfiedLinkError:SDKWrapper.nativeLoadAllPlugins:()
ToBeTheOnlyOne
Androidcocoscreatorandroidandroidstudio游戏
最近用cocoscreator开发一个游戏,用AndroidStudio打包Apk时却出现了以下错误:Process:org.cocos2dx.javascript,PID:24123java.lang.UnsatisfiedLinkError:Nativemethodnotfound:org.cocos2dx.javascript.SDKWrapper.nativeLoadAllPlugins:
- Java 拦截器实战:从入门到精通(精选)
我真的不想做程序员
javajavaspring开发语言后端算法
目录一、拦截器基础概念二、实战案例1.用户认证与授权2.请求日志与性能监控3.国际化与本地化三、注册拦截器四、总结在JavaWeb开发中,拦截器是一种强大的工具,它允许开发者在请求处理的各个环节进行拦截和处理。与过滤器类似,拦截器也能够对请求和响应进行操作,但它工作在SpringMVC框架内部,能够访问Spring管理的Bean,与Spring的依赖注入无缝集成。本文将通过实战案例,帮助您深入理解
- r99950X3D参数 锐龙r99950X3D性能怎么样 r9 9950X3D相当于什么水平
2501_90583960
其他
锐龙r99950X3D采用Zen5架构和4纳米生产工艺16核心32线程基础频率为4.3GHz,最高加速频率5.7GHz热设计功耗(TDP)为170W锐龙r99950X3D组装电脑怎么搭配更合适这些点很重要http://www.adiannao.cn/du
- 大语言模型引擎全解析:Transformers、vLLM、Llama.cpp等,最佳选择全攻略!
大模型入门教程
语言模型llama人工智能DeepSeekpromptAI大模型大模型
近年来,大语言模型(LLMs)如GPT、LLaMA、BERT等已经成为人工智能领域的核心驱动力。然而,如何高效地运行和优化这些模型,成为了开发者和研究者面临的重要挑战。为此,一系列专为大语言模型设计的引擎应运而生。本文将带你深入了解Transformers、vLLM、Llama.cpp、SGLang、MLX和Ollama这些引擎,帮助你找到最适合的工具,释放大语言模型的全部潜力!作为技术人员,不仅
- 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
白帽黑客坤哥
web安全网络安全网络安全物联网
href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"rel="stylesheet"/>href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_v
- 振荡器简单介绍
行然梦实
毕业设计论文阅读制造能源笔记课程设计
前言提醒:文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。文章目录前言1.简谐振子2.有阻尼的简谐振子3.LC电路(无阻尼)4.RLC电路(有阻尼)总结:振荡器是一种能够将能量在两种形式之间相互转换的设备或系统,从而产生周期性运动或信号。以下
- Unity入门学习笔记(Day01)
Alika-snowr
unity学习unity学习笔记
一.认识unity工作面板1.1.projectwindow(项目面板)显示当前项目中的所有文件和目录,包含了项目里面所有的资源文件1.2.consolewindow(输出面板)显示当前游戏开发中生成的警告错误1.3.hierarchywindow(层次面板)也称为场景面板,显示当前的场景中所有游戏游戏对象,并显示父子级关系;我们说开发的游戏是由一个一个的场景组成的(类型与拍戏的场次场景)游戏物体
- C++二叉搜索树代码
qq_43355454
c++算法leetcode
代码一,对应力扣二叉搜索树中的检索,代码见下/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),righ
- Etcd学习笔记
江小年
etcd学习笔记
etcd的介绍与安装主要用于微服务的配置中心和服务发现,数据可靠性比redis更强在对外api的应用中,如何知道order服务的rpc地址?如果服务的ip地址变化了怎么办?在传统的配置文件模式,修改配置文件,应用程序是需要重启才能解决的,所以引入etcdwindows安装etcd-v3.5.16-windows-amd64.zipdocker安装dockerrun--nameetcd-d-p237
- 用OpenCV写个视频播放器可还行?(C++版)
程序员Linc
OpenCVopencv音视频c++opencv4.11
引言提到OpenCV,大家首先想到的可能是图像处理、目标检测,但你是否想过——用OpenCV实现一个带进度条、倍速播放、暂停功能的视频播放器?本文将通过一个实战项目,带你深入掌握OpenCV的视频处理能力,并解锁以下功能:基础播放/暂停动态倍速调节(0.5x~4x)交互式进度条实时时间戳显示文末提供完整代码,可直接运行!一、环境准备安装OpenCV请参考其他博客,C++版本的OpenCV安装,每个
- 一个实例用全创建型模式-优化(冗余消除)
科学的发展-只不过是读大自然写的代码
java算法前端
1.关联链接上一篇:一个实例用全创建型模式-CSDN博客目录:《一个实例讲完23种设计模式》2.内容当前:单件+抽象工厂+创建者+工厂方法+优化需求:坦克大战创建两种坦克坦克类型射程速度b7070米时/70公里b5050米时/50公里设计说明1.抽象工厂承担了创建部件的任务2.创建者承担了讲部件组装的任务3.工厂方法类相当于创建者模式的导演,但是他是并未给用户提供选择创建者的接口。而是通过自己的多
- Python发布自定义模块和包到PyPI
大数据张老师
Python程序设计pythonjava服务器
Python拥有一个庞大的第三方库生态系统,其中大部分包都托管在PythonPackageIndex(PyPI)上。PyPI(https://pypi.org/)是Python官方的软件包仓库,开发者可以在这里发布、管理和共享Python模块,使其他人能够直接使用pipinstall命令安装和使用你的代码。本节将详细介绍如何创建并发布一个自定义Python模块到PyPI,包括打包、上传和管理的全过
- UOS统信系统 WebServer服务器
你可知这世上再难遇我
2024~23技能大赛UOS统信系统webserver
题目解题##配置apache基础环境##apache主页面和子页面认证##认证子页面##创建ldap用户##签发证书##配置重定向+https##配置重定向##配置Opendaylight##配置java##安装mininet和ovswitch测试##配置流表##开启HTTP-Server##h3获取h1主机文件题目提供www.skills.comskills公司的门户网站;使用apache服务;
- 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