- 鸿蒙HarmonyOS应用开发之在非ArkTS线程中回调ArkTS接口
「已注销」
harmonyOS移动开发鸿蒙开发harmonyos鸿蒙鸿蒙开发组件化uiArkts移动开发
场景介绍ArkTS是单线程语言,通过NAPI接口对ArkTS对象的所有操作都须保证在同一个ArkTS线程上进行。本示例将介绍通过napi_get_uv_event_loop和uv_queue_work实现在非ArkTS线程中通过NAPI接口回调ArkTS函数。使用示例接口声明、编译配置以及模块注册接口声明//index.d.tsexportconstqueueWork:(cb:(arg:numbe
- Java回调机制:从原理到实战
Java中的回调机制主要通过接口、内部类、反射和Lambda表达式实现,核心是控制反转(调用方定义逻辑,执行方在特定时机触发)。以下是具体实现方式及典型应用场景:一、回调机制的核心实现方式接口回调(最常用)原理:定义含回调方法的接口→调用方实现接口→将接口实例传递给执行方→执行方触发事件时调用接口方法。示例://1.定义回调接口interfaceCallback{voidonComplete(St
- 【android bluetooth 协议分析 11】【AVDTP详解 2】【avdtp 初始化阶段主要回调关系梳理】
奔跑吧 android
android15蓝牙协议栈分析androidbluetoothbtavdtpa2dpl2capaosp13
在车机中a2dp通常情况下作为sink.本篇来帮助各位朋友梳理一下,这部分的初始化流程。我们着重梳理native层的逻辑,framework-java侧一般比较容易看明白,暂时不做梳理。如果需要笨叔梳理的可以在博客评论。出专门的章节来梳理。本篇的目的只有一个,在初始化流程中梳理出avdtp在l2cap层的回调接口。这样我们就可以从l2cap层,的接口回调中,配合具体案例,来分析avdtp的所有内容
- Java程序题案例分析
寒舍书生
软件设计师复习笔记(2025)java开发语言
目录一、基础语法1.类与对象2.接口与抽象类二、面向对象语法1.继承与多态2.四种访问修饰符三、设计模式相关语法一、策略模式(接口回调实现)1.完整实现与解析二、工厂模式(静态工厂方法实现)1.完整实现与解析2.模式变体(1)简单工厂模式(如上例)(2)工厂方法模式三、观察者模式(内部类实现)1.完整实现与解析2.使用内部类的优化实现四、设计模式综合应用示例电商系统折扣策略案例四、其他核心语法1.
- android aidl接口回调,Android Interface Definition Language (AIDL)
沈学良
androidaidl接口回调
AIDL与其他IDL语言类似,你需要做一些工作。它允许你定义客户端与服务端达成一致的程序接口使用进程间通信相互交流。在ANdroid上面,一个进程不能正常的访问另一个进程的内存。所以说,他们需要分解他们的对象为操作系统可以理解的基本单位,然后为你把这些对象按次序跨越进程边界书写这些代码是单调冗长的,所以android使用AIDL为你处理这个问题。注意:使用AIDL只有在你允许来自不同应用的客户端跨
- Jetpack Architecture系列教程之(九)——DataBinding数据绑定
l软件定制开发工作室
JetpackArchitecture教程androidjetpack
目录介绍有什么好处如何使用?添加依赖引入xml布局页面绑定初始化Binding一般数据绑定Data标签设置数据在布局中使用这些数据根据View获取BindingRecyclerView数据绑定利用自定义Interface实现onClick事件定义接口实现并绑定接口在布局文件的标签中定义该接口的变量在布局文件中设置对应的接口回调DataBinding所暴露的一些问题介绍DataBinding,即数据
- Kotlin实战经验:将接口回调转换成suspend挂起函数
折翅鵬
Kotlinkotlin
在Kotlin协程中,suspendCoroutine和suspendCancellableCoroutine是用于将回调或基于future的异步操作转换成挂起函数。suspendCoroutine用途:将回调式异步操作转换为可挂起函数行为:启动一个新的协程来处理基于回调的操作挂起当前协程,直到调用回调回调负责使用结果或异常恢复协程取消:需要在回调或启动的协程中手动取消逻辑,从而正确清理资源sus
- Hook 函数
消失的旧时光-1943
react学习开发语言
引言什么是hook函数?在计算机编程中,hook函数是指在特定的事件发生时被调用的函数,用于在事件发生前或后进行一些特定的操作。通常,hook函数作为回调函数被注册到事件处理器中,当事件发生时,事件处理器会自动调用相应的hook函数。简单理解就是回调函数的触发。那么我突然想到我们在java开发中,自定义接口,做监听接口回调或者kotlin的高阶函数。Java中回调函数的触发或kotlin高阶函数的
- Kotlin 代替Java接口回调,就这么简单
深海呐
Android#Kotlinjavakotlin开发语言
假如你使用旧的接口回调:通常三步:1定义接口和方法;2使用接口中方法;3继承接口并实现方法;例:classXXXAdapter{publicvarmClickCollBack:clickCollBack?=null//1定义interfaceclickCollBack{//1定义funclick(int:Int)//1定义}itemView.setOnClickListener{mClickCol
- java过滤器和拦截器的使用及其区别
The_Well
java开发语言
1.过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等过滤器的顺序每一次都将chain对象传入,达到最后接口回调的效果:一、实现原
- Java分层以及过滤器和监听器
强某某
Java分层图解分层.png三层和MVC的对应关系.pngListener&FilterListener监听器能做什么事?监听某一个事件的发生。状态的改变。监听器的内部机制其实就是接口回调.接口回调需求:A在执行循环,当循环到5的时候,通知B。事先先把一个对象传递给A,当A执行到5的时候,通过这个对象,来调用B中的方法。但是注意,不是直接传递B的实例,而是传递一个接口的实例过去。img01.png
- 关于接口回调
安知鱼未忆_
今天来写一下最基本的接口回调,有什么不对的望指正。classTestInterfaceimplementsTestInter{privateContextmContext;privateTestIntertestinter;publicvoidmain(){setOnTestInter(this)testinter.test();}@Overridepublicvoidtest(){//实现}pu
- RecycleView点击事件的处理
谁动了我的代码QAQ
recycleView中是没有对点击事件的处理的,所以需要我们自己设置,也就是本章要提到的使用接口回调来实现recycleView的item的点击事件的处理。先上效果图点击效果.gif长按效果.gifok,接下来说一下如何设置点击事件。publicclassRecycleViewAdapterextendsRecyclerView.Adapter{privateListlist;privateOn
- 1688跨境铺货功能php-sdk简单说明
有树hastree
文件说明/app/Component/Ali/Sdk--sdk文件夹/app/Component/Ali/AliApi.php--1688各接口封装类/app/Component/Ali/TransferController.php--1688各接口回调控制器/routes/api.php--路由文件1)AliApi.php调用方法实例化AliApi时需要传入参数,参数就是将要调用接口的名称,ne
- java接口练习
免檒
java开发语言servlet
首先,明确:接口可以提供模糊的方法,方案;那么具体的实现需要另外创建实现类去实现;另外:明确接口的特点:接口回调,接口的多态性;具体解释:接口的特点:1.接口回调:接口回调是指可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法法;(接口变量=new实现类())-->(接口变量.实现类的方法)2.接口的多态性:由接口产生的多态就是指不同的类在
- 【Galois工具开发之路】SpringApplicationRunListener在SpringBoot项目启动过程中执行了两次...
newcih
SpringJavaspringbootjavaspringRunlistenerstarted
SpringApplicationRunListener是什么?SpringApplicationRunListener接口的作用主要就是在SpringBoot启动初始化的过程中可以通过SpringApplicationRunListener接口回调来让用户在启动的各个流程中可以加入自己的逻辑。比如以下的方法Galois通过注入各种Listener到SpringBoot的启动监听器列表中,实现了S
- thinphp 调用 \think\Log::write 写入回调日志信息
do better myself
php
//接口回调地址publicfunctionback_content(){\think\Log::record('进来了','info');$data=file_get_contents('php://input');$ret=json_decode($data,true);\think\Log::write('调用第一张图片返回结果'.$data,'log',true);}Think\Log::
- 基于SpringBoot实现策略模式提供系统接口扩展能力
人帝
策略模式javaspringspringboot
相信我们对策略模式都有耳闻,但是可能不知道它在项目中具体能有什么作用,我们需要在什么场景下才能去尽可能得去使用策略模式。这里我简单的列出一个我之前在公司做的一个需求:跟第三方oa系统对接接口,对方需要回调我们当前系统,但是是不同的业务接口回调,我们系统可以根据一个字段来区分需要走哪个业务分支,可能初级程序员刚接触这个需求的时候想法是,多个接口回调,那就写多个接口罢了,强调接口隔离;或者直接一个接口
- 回调函数方式方法完整学习
尘世中迷途小书僮
学习java开发语言设计模式
回调函数方式方法完整学习在Java中,回调机制是一种非常重要的设计模式,它允许我们在不改变代码的情况下增加新的功能。通过回调,我们可以将一些功能代码封装到接口或者函数中,然后在需要的时候再调用它。以下是Java中实现回调的三种方式:接口回调,内部类回调和Lambda表达式回调。接口回调:这是Java中最常见的回调方式。我们首先定义一个接口,然后让实现这个接口的类去实现其中的方法。这样,我们就可以将
- 基于SpringBoot实现策略模式提供系统接口扩展能力
技术小羊
bash开发语言springboot
相信我们对策略模式都有耳闻,但是可能不知道它在项目中具体能有什么作用,我们需要在什么场景下才能去尽可能得去使用策略模式。这里我简单的列出一个我之前在公司做的一个需求:跟第三方oa系统对接接口,对方需要回调我们当前系统,但是是不同的业务接口回调,我们系统可以根据一个字段来区分需要走哪个业务分支,可能初级程序员刚接触这个需求的时候想法是,多个接口回调,那就写多个接口罢了,强调接口隔离;或者直接一个接口
- 从零学Java - 接口
贰贰柒丶阿拽
从零学Javajavajvm开发语言
Java接口文章目录Java接口1.接口的语法1.1与抽象类的区别2.如何使用接口?2.1接口的使用规范3.什么是接口?3.1常见关系4.接口的多态性5.面向接口编程5.1接口回调6.特殊接口6.1常量接口6.2标记接口7.接口的好处补充面向对象七大设计原则1.接口的语法接口:相当于特殊的抽象类,定义方式、组成部分与抽象类类似。eg:特点:使用interface关键字定义接口没有构造方法,不能创建
- Spring依赖注入的方式
李奇技
Spring技术springjava后端
文章目录引言摘要正文XML配置文件注入@Bean注解注入DI注解方式注入Aware接口回调注入BeanDefinitionAPI注入依赖注入的高级用法对bean分组自定义依赖注入注解总结引言在Spring中,依赖注入是IOC的主要实现方式,也是在开发过程中最常用的方式,那么你有没有考虑过Spring中到底提供了多少中依赖注入的方式呢?对于这些依赖注入的方式又有那些需要注意的地方呢?我们能不能通过对
- java接口与实现
SPIRT00
编程javajava开发语言
文章目录一、Java接口二、Java实现接口三、Java接口回调四、Java接口与多态五、Java接口参数六、Java接口与抽象类的比较七、Java接口的UML图总结一、Java接口接口是Java语言中一种重要的数据类型,通常使用关键字interface来定义一个接口。接口的定义和类的定义十分相似,分为接口声明和接口体,例如:interfacePrintable{finalintMAX=100;v
- Kotlin 接口回调
紫一年
单接口方法时候,只有一个参数,无返回值的情况下不需要定义接口,有返回值的时候只需将Unit改为返回值类型//赋值类MyReaderCardManagerprivatelateinitvarlistener:(cardInfo:IDCard?)->Unit;funsetOnIDCardListener(listener:(cardInfo:IDCard?)->Unit){this.listener=
- 2020-03-23
先生_7857
①添加依赖(implementation'com.android.support:recyclerview-v7:29.0.2')②创建布局(宽、高必须充满)③找控件④设置布局管理器(线性布局,网格布局和瀑布流)⑤获取数据(切换子线程的方法)⑥创建适配器——重写三个方法,通过接口回调实现点击事件⑦设置适配器布局管理器//线性布局rv.setLayoutManager(newLinearLayout
- 项目实践总结---电子名牌
橙子的博客
网络java服务器
需求:Android端写一个界面,作为TCP服务端,接受客户端发来的图片以及一些信息,显示在界面上。再次打开APP的时候保证上一次图片存在。思路:1编写一个TCP服务端,继承runnable接口的方式去实现,然后写一个接口回调监听TCP接受的数据。2主界面监听TCP服务的接口,背景图是一个ImgView,加载使用Bitmap3保存图片以及本地数据:文字类的使用sp存储,图片保存在SDCard下,使
- Kotlin:内置函数let、also、with、run、apply
xiaopangcame
kotlinkotlin
前言在Kotlin中,有一些用于扩展&方便开发者编码的内置函数,能大大提高开发者的开发效率。今天,我将主要讲解的是:let函数also函数with函数run函数apply函数基础知识:接口回调中Lambda使用在Kotlin中可使用Lambda函数简化一些不必要的嵌套接口回调方法注:仅支持单个抽象方法回调,多个回调方法不支持。//Java接口回调mVar.setEventListener(newE
- 通过女朋友来通俗易懂讲解“接口回调”,一不小心就被绿
小松与蘑菇
@TOC背景最近要接一个数据,小松不知道怎么弄,导师说:你可以定义一个接口回调啊然后我就吭哧吭哧的写,写到一半,发现有点不对劲。顿时发现自己的接口回调用少了,只能对付常用的几个场景,。但是一旦在几百万代码的产品中,很多接口回调都是自定义或者用别人的自定义的。所以今天,我们就好好的来剖析一下什么是接口回调回调假设,现在小松有一个女朋友,小鹿,我们在一起生活,要生活呢就要洗碗,如果我和她都学会洗碗,显
- android 中ProgressDialog实现全屏效果
追梦小乐
做项目的时候,直接用到了一个ProgressDialog,需要实现全屏的效果,如下图所示,功能跑起来的时候发现不是全屏,只是包裹了当前的内容,如下图所示,不过查找一些资料,把问题解决了。本文的知识点:1、实现ProgressDialog的全屏效果2、接口回调推荐的方式项目要求实现的效果.png刚开始实现的效果.png代码实现:1、布局2、核心代码Windowwindow=getWindow();W
- 解决多选删除页面不同步问题
过期の秋刀鱼
前端javascriptvue.js
多选删除一般有两种情况:1,删除接口支持传多个id,这是最理想的方法,建议大家积极与后端进行沟通解决。之后只需要判断接口回调刷新页面即可!2,删除接口不支持传多个id,这就是接下来我们要处理的情况,利用promise.all来解决,亲测有效,接下来尽量用最通俗的语言和代码为大家解释!if(this.selectRows.length>0){//以下为多选方法*******constids=this
- 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