- 利用ADB实现PC与Android设备的通信与数据交互
虾仁芝麻卷
本文还有配套的精品资源,点击获取简介:本文详细介绍了如何使用AndroidDebugBridge(ADB)实现PC与Android终端的通信,特别是通过Java编程语言的应用。介绍了配置ADB、设备连接、端口映射、Java编程实现设备通信、异常处理以及关闭连接等关键步骤,并强调了该技术在多种开发场景下的应用和注意事项。1.ADB功能与重要性AndroidDebugBridge(ADB)是一种多功能
- android 多通道音频,支持多通道录音
虾仁芝麻卷
android多通道音频
原生Android只支持2channel的录音。可是偏偏会有多mic的需求,比如说语音识别。目前已知TDM协议可以将多mic数据从kernel送到hal,从内核空间搬运到用户空间中。可是原生AudioRecord接口是完全不支持多channel录音数据的采集的,怎么修改,才能让原生进行支持呢?我们就从AudioRecord的构造函数开始往下研究。无论行不行,都要研究出个所以然来!我们如果写个录音a
- CopyEngine.dll crdb_p2bxbse.dll CD_CompareRes.dll corelog.dll CATMmrTopoOpe.dll C3DAnimate2.dll
Nguyễn Minh Tuấn
windowsmicrosoft
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用MicrosoftVisualStudio编写的,所以这类软件的运行需要依赖微软VisualC++运行库,比如像QQ、迅雷、Adobe软件等等,如果没有安装VC++运行库或者安装的版本不完整,就可能会导致这些软件启动时报错,提示缺少库文件。如果我们遇到关于文件在系统使用过程中提示缺少找不到的情况,如果文件是属于运行库文件的
- Python 爬虫实战:网易云音乐登录解密(加密参数逆向 + 音乐数据采集)
Python核芯
Python爬虫实战项目python爬虫开发语言
一、前言网易云音乐作为国内流行的音乐平台,拥有海量的音乐资源和用户数据。通过爬取网易云音乐的数据,我们可以进行音乐推荐、用户行为分析等。本文将详细介绍如何使用Python爬取网易云音乐的数据,包括登录解密和音乐数据采集。二、准备工作1.环境搭建确保已安装Python3.7或以上版本,推荐使用VisualStudioCode作为开发工具。2.安装依赖库在命令行中安装爬虫和数据分析所需的库:pipin
- Python 爬虫实战:爬取雪球股票讨论(投资者情绪分析 + 热点板块追踪)
Python核芯
Python爬虫实战项目python爬虫开发语言
一、前言雪球网作为国内知名的投资者社区,汇聚了海量的股票讨论、行情数据和用户观点。通过爬取雪球股票讨论数据,我们可以挖掘投资者情绪和热点板块,为投资决策提供数据支持。本文将详细讲解如何利用Python爬虫抓取雪球股票讨论数据,并进行投资者情绪分析和热点板块追踪。二、准备工作1.环境搭建确保已安装Python3.7或以上版本,推荐使用VisualStudioCode作为开发工具。2.安装依赖库在命令
- 职业本科智能终端开发实训室解决方案
武汉唯众智创
智能终端开发实训室智能终端开发智能终端APP开发实训室APP开发智能终端实训室
一、引言在数字化时代的浪潮下,智能终端已成为人们生活与工作中不可或缺的工具。从智能手机、智能平板到各类可穿戴设备,智能终端的广泛应用深刻改变了人们的生活方式与工作模式。智能终端的迅猛发展,使得市场对相关专业人才的需求极为迫切。据权威机构预测,未来几年,智能终端开发领域的人才缺口将持续扩大,对具备扎实专业知识与丰富实践经验的高素质人才的需求尤为显著。职业本科教育作为培养应用型人才的重要阵地,在智能终
- 如何打造高效的团队(三) - 领导力
xiaozhi239
团队管理项目管理企业架构
文章目录综述管理和领导的区分影响力的来源合适的团队领导力因地制宜因人而异1.情景领导模式2.需求三角3.ProjectOxygen适合自己常见最佳实践相关博客综述如何打造高效的团队(一)-团队架构如何打造高效的团队(二)-Android平台团队架构实例如何打造高效的团队(三)-领导力前面两篇博客通过分享TeamTopologies这本书及我对书中内容的理解,以及一个例子,讨论了如何从团队架构的角度
- 在LINUX下使用模拟器运行Android
renjin252252252
linuxandroidpathx86c
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://glizardy.blogbus.com/logs/42812304.html1到http://developer.android.com/sdk/1.5_r3/index.html下载Linux(i386)android-sdk-linux_x86-1.5_r3.zip178117561bytes350d0211678
- 构建 Android,编译Android 源码
请按照本页中的说明构建Android。设置构建环境在您的工作目录中,获取envsetup.sh脚本的源代码以设置构建环境:sourcebuild/envsetup.sh此脚本会导入若干命令(包括本页中使用的命令),让您能够使用Android源代码。如需查看脚本的源代码,请参阅platform/build/envsetup.sh。如需查看内置帮助,请输入hmm。选择目标在构建Android之前,您必
- Ubuntu/Linux运行安卓全攻略
海洋月亮
ubuntulinuxandroiddockerscrapy
Ubuntu中使用scrcpy进行Android投屏,当我们手头没开发板没有屏幕的时候,就可以借助ADB和scrcpy进行投屏,很方便:A.这里展示如何在Ubuntu中使用scrcpy+adb+docker方案运行手机Android系统B.使用的模拟器方案基于redroid,能够非常简单方便地在任何Linux上运行Android模拟器C.测试环境:Ubuntu24.04D.需要用到的工具:scrc
- Linux 系统运行 Android 应用的几种方案
云水木石
linuxandroid运维服务器
这几年,国产操作系统替代正在有条不紊地进行中。但生态是绕不过去的一道坎,指望应用厂商一下子完成国产系统适配也不现实。之前介绍过使用Wine运行Windows应用的方案,减少了国产系统应用偏少的难题。比如我在办公室使用最多的企业微信,一直没有开发Linux版本,就是通过Wine运行的。除了Windows应用,还有新的目标,那就是手机应用。这些年移动互联网蓬勃发展,手机app从数量上已经远远超过桌面应
- ubuntu/centos环境下玩android系统(二): linux下的android模拟器运行!
刀客777
linux开发androidlinuxpathswtlistjava
上一篇完成了Android的编译,想必一定心里痒痒了!这一篇将开始玩转android模拟器!如果不喜欢在linux下运行emulator,可直接看第三篇,第三篇讲述windows下的模拟器,相对linux下,要简单很多!一.下载AndoirdSDK,这次我选择的是android-sdk_r15-linux.tgz安装很简单,直接解压到opt目录下!最好配制一下PATH,以便运行时不用设置PATH环
- 计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...
凌川江雪
本文目录1.像素读写2.图像通道与均值方差计算3.算术操作与调整图像的亮度和对比度4.基于权重的图像叠加5.Mat的其他各种像素操作1.像素读写Mat作为图像容器,其数据部分存储了图像的像素数据,我们可以通过相关的API来获取图像数据部分;在获取图像数据的时候,知道Mat的类型与通道数目关重要,根据Mat的类型与通道数目,开辟适当大小的内存空间,然后通过get方法就可以循环实现每个像素点值的读取、
- Android学习笔记
LXR小朋友
android学习笔记
一、Android四大组件精要1.Activity生命周期:onCreate()→onStart()→onResume()→onPause()→onStop()→onDestroy()重点场景:屏幕旋转:onSaveInstanceState()保存临时数据返回栈管理:launchMode(standard/singleTop/singleTask/singleInstance)页面跳转:Inte
- 【安卓笔记】注解反射,优雅的findViewById
liosen
安卓笔记笔记
0.环境:电脑:Windows10AndroidStudio:2024.3.2编程语言:Java上一篇:注解的创建(重要提示,安卓新版本不再支持下面的代码。以下仅提供思路)如果需要使用findViewById的工具,推荐使用ButterKnife如果是需要优雅简单使用框架,可以使用MVVM框架,Android官方推荐的ViewBinding1.创建工具类,用于实现findViewById我这里直接
- Android Jetpack架构组件(四)之LiveData
xiangzhihong8
深入Android应用开发
一、LiveData简介LiveData是Jetpack架构组件Lifecycle库的一部分,是一个可感知生命周期的可观察容器类(Observable)。与常规的可观察类不同,LiveData具有生命周期感知能力,这意味着它具有感知应用组件(如Activity、Fragment或Service)的生命周期的能力,并且LiveData仅更新处于活跃生命周期状态的应用组件观察者。因此,LiveData
- 掌握Android Jetpack,优化移动开发体验
移动开发前沿
移动端开发宝典androidjetpackandroidai
掌握AndroidJetpack,优化移动开发体验关键词:AndroidJetpack、组件化开发、ViewModel、LiveData、Room、Navigation、Compose摘要:本文深入探讨AndroidJetpack组件库的核心架构和使用方法,通过系统化的讲解和实战演示,帮助开发者理解如何利用Jetpack系列组件提升开发效率、构建健壮的Android应用。文章将从基础概念入手,逐步
- MVI+Compose架构实战
Android洋芋
MVIJetpackComposeKotlinFlow状态管理声明式UI
简介本文将深入探讨为什么LiveData不适合在JetpackCompose中使用,并通过完整代码示例展示MVI+Compose架构的实现。从Android架构演进历史到Composable函数的重组机制,从单向数据流原理到StateFlow的线程安全特性,全面解析这一技术趋势背后的深层原因。一、为什么LiveData不适合在JetpackCompose中使用?LiveData与Compose的单
- Android 中 函数实现多个返回值的几种方式
在编程中,函数通常只能返回一个值。但通过使用对象封装、Pair、Triple、数组、列表或Bundle方式,可以轻松地返回多个值。1、对象封装方式创建数据类来封装需要返回的多个值。dataclassResult(valcode:Int,valmessage:String)fungetMultiValues():Result{returnResult(1,"success")}//调用方式valre
- WPF实现一个播放音乐和视频的应用
code_shenbing
WPFwpf音视频C#
一、项目准备创建WPF项目在VisualStudio中新建WPFApp(.NETFramework)项目命名为"MediaPlayerApp"添加必要的NuGet包Install-PackageMicrosoft.WindowsAPICodePack-ShellInstall-PackageTagLibSharp二、界面设计1.主窗口XAML(MainWindow.xaml)三、代码实现1.主窗口
- 手车互联基本介绍
车载开发
手车互联手车互联车载应用
目前常用的手车互联功能有CarPlay,AndroidAuto,CarLife,HiCar,Carlink等,其中AndrodiAuto在国外用得比较多,国内目前是CarPlay和CarLife比较多,HiCar和Carlink是最近几年才有的,势头也很猛;本人从事车载开发10余年,参与过这些功能的开发和认证,以下从认证的角度给出难易程度,五星最难,CarPlay:☆☆☆☆☆AndroidAuto
- 解锁AI新世界:ModelGate携手Cherry Studio,开启智能之旅
解锁AI新世界:ModelGate携手CherryStudio,开启智能之旅在人工智能技术飞速发展的当下,我们的工作与生活正被AI深刻改变。你是否渴望拥有一个强大的工具,帮你轻松驾驭各类AI应用,提升效率与创造力?今天,就为大家介绍一对黄金搭档——ModelGate与CherryStudio,它们将带你进入AI应用的全新境界。CherryStudio堪称AI桌面生态的“集大成者”,是一款支持多家主
- android led 框架,详解Android应用层制作LED指示灯
详解Android应用层制作LED指示灯在Java应用层修改LED指示灯的颜色,这个花了我半天时间,才实现该功能!publicclassLEDActivityextendsActivityimplementsView.OnClickListener{privatestaticfinalStringTAG="LED";ButtonmLedTest;intmLedStatus=0;privatefin
- Android系统LED控制的5层架构与GPIO扩展实现
王元祺
本文还有配套的精品资源,点击获取简介:在Android系统中,实现LED灯控制需要理解应用程序层、框架层、本地接口层、硬件抽象层和驱动程序层之间的交互。此项目提供了一个多层源码结构示例,包含完整的从App到Drivers的实现,以及对GPIO的扩展支持,适用于2440开发板并可移植到其他板卡。开发者可以深入学习Android硬件控制的机制,以及如何通过不同层次编写代码来管理LED灯的状态。1.An
- 开源 java android app 开发(十三)绘图定义控件、摇杆控件的制作
ajassi2000
linuxC到AndroidApp开发开源javaandroidlinuxpython
文章的目的为了记录使用java进行androidapp开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。相关链接:开源javaandroidapp开发(一)开发环境的搭建-CSDN博客开源javaandroidapp开发(二)工程文件结构-CSDN博客开源javaandroidapp开发(三)GUI界面布局和常用组
- 【全网唯一】C++ 纯本地离线文字识别Windows版dll插件
番茄小能手
自动化c++开发语言
目的c++开发使用的是MicrosoftVisualStudio(简称VS),它是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramewor
- 【全网唯一】C# 纯本地离线文字识别Windows版dll插件
番茄小能手
自动化c#开发语言
目的c#开发使用的是MicrosoftVisualStudio(简称VS),它是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramework
- 在Flutter中生成App Bundle并上架Google Play
getapi
flutter
Rantool要在Flutter中生成AppBundle并上架GooglePlay,请按照以下步骤操作:1.准备签名密钥首先需要创建一个密钥库用于签名:keytool-genkey-v-keystoreupload-keystore.jks-keyalgRSA-keysize2048-validity10000-aliasupload2.配置签名在项目的android目录下创建key.proper
- Studio 3T 2025.12 发布,新增功能简介
mongodb
Studio3T2025.12发布,新增功能简介Studio3T2025.12(macOS,Linux,Windows)-MongoDB的终极GUI、IDE和客户端TheUltimateGUI,IDEandclientforMongoDB请访问原文链接:https://sysin.org/blog/studio-3t/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgStudio3
- Qt Creator工具编译器配置
Vitta_U
qt开发语言
1、打开QtCreator,工具-->选项2、选择"编译器",Manual配置编译器。初始化填入“C:\ProgramFiles(x86)\MicrosoftVisualStudio14.0\VC\bin\amd64\cl.exe”,选择64位amd64。ABI根据msvc版本进行选择msvc2015.3、新建项目编译测试
- 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