- Android 浮动窗口进阶——画中画,浮动视频
一叶知秋dong
androidapp开发
今天继续上一篇Android顶层窗口、浮动窗口的进阶应用。上一篇主要讲解了WindowManager服务和如何使用WindowManager编写一个顶层窗口。今天主要是讲讲如何在顶层窗口里面播放视频,这个功能对很多嵌入式设备来说十分有用。例如现在手机和平板上一些视频播放器就可以实现画中画功能,只显示一部分小窗口播放,用户可以继续操作其他功能。当你在看视频的时候收到短信,你只要进入画中画功能,视频可
- Android笔记【17】返回数据的两种方法
m0_72696598
Android开发android笔记
目录一、问题二、具体分析1、代码2、区别1.目的和使用场景resultLauncherstartActivity2.数据传递方式3.返回结果的管理4.代码示例对比使用resultLauncher启动活动并处理返回结果:使用startActivity启动活动(不处理返回):总结3、使用startActivity启动活动,也可以返回信息。因为有putExtra区别总结示例对比1.使用startActi
- 一文带你轻松入门Flutter开发
网络安全天地
httpudphttpswebsocket网络安全网络协议tcp/ip
文章目录一、Flutter简介二、开发环境搭建2.1安装FlutterSDK2.2安装DartSDK2.3设置AndroidSDK2.4配置IDE2.5配置模拟器三、第一个Flutter应用3.1创建项目3.2运行项目3.3分析代码结构四、基础组件与布局4.1常用组件介绍4.2布局技巧与实践五、状态管理基础5.1状态管理的重要性5.2简易状态管理方法六、总结与展望一、Flutter简介Flutte
- Android系统编译
niepengpeng333
android系统编译androidmakefileshellcommandbuildinclude
摘自:http://blog.csdn.net/chen_chun_guang/article/details/6078314Android编译系统分析之返璞归真自Android开源以来,引起了嵌入式行业一股热潮,很多嵌入式开发者表示对Android有很强的兴趣,并下载Android源码进行编译和移植。Android源码的巨大(repo下来,大概2G)给人以Android相当复杂的错觉。本文从An
- 硬件独立性
你一身傲骨怎能输
安卓操作系统系统架构
硬件独立性与HAL的作用硬件抽象层(HAL)定义:HAL是Android操作系统中的一个关键组件,它提供了一组标准接口,使得应用程序能够与底层硬件进行交互,而不需要了解硬件的具体实现细节。HAL将硬件功能抽象为统一的接口,简化了应用程序的开发过程。设备兼容性:由于HAL提供了硬件独立性,开发者可以编写一次应用程序代码,然后在不同的Android设备上运行,而无需针对每种设备进行特定的调整。这种兼容
- 《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》
JasonYin~
HarmonyOSNEXT纯血鸿蒙1024程序员节
从无到有,打造模块化项目。构建一个开箱即用的项目,从Git上拉取下来即可直接进行开发,其中涵盖路由通信、上下拉刷新、网络请求、事件通知、顶部tab封装等功能,项目里调用API为鸿洋大佬的wanAndroidAPI。后期将持续完善,若有不足之处,诚邀各位大佬多提宝贵建议,共同进步成长。为啥要模块化在一些公司,员工可能接手几年前甚至更久远的项目,其架构常是所有代码在一个包中,导致代码混乱,降低可读性和
- CocoaPods使用详解
xiangzhihong8
iOS开发大揭秘iosios开发
CocoaPods简介什么是CocoaPods?每种语言发展到一个阶段,就会出现相应的依赖管理工具。好比Java语言的Maven,nodejs的npm,Android的grandle。而对于ios平台来说,CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用Coco
- 蓝牙遥控小车实战项目
轮胎技术Tyretek
本文还有配套的精品资源,点击获取简介:本项目旨在通过蓝牙技术,利用Arduino和Android上位机控制一辆小型车辆。它涉及电子工程、嵌入式系统和移动应用开发等领域。学生将学习蓝牙遥控原理,使用Arduino和AndroidStudio开发控制系统,并设计硬件接口。通过完成此项目,学生将掌握蓝牙通信、嵌入式编程和移动应用开发的实际技能。1.蓝牙遥控原理蓝牙遥控系统通过无线蓝牙技术实现对远程设备的
- 全面掌握Android开发:Android API应用指南
宁南山
本文还有配套的精品资源,点击获取简介:AndroidAPI作为开发Android应用的核心接口,为开发者提供构建多样化应用程序所需的丰富功能和工具。文档详细描述了AndroidAPI的各个层次,包括硬件抽象层、系统服务、应用框架四大组件、Intent通信系统以及丰富的View组件。同时,提供了类库参考,涵盖所有类、接口和常量,以及它们的使用示例。此外,文档还介绍了资源管理、权限控制、网络通信、数据
- Android手机蓝牙连接热敏打印机 打印票据
郭陈同学
Android开发笔记蓝牙手机
手机蓝牙连接热敏打印机打印票据话不多说上代码:项目地址:可直接作为项目依赖引用allprojects{repositories{...maven{url'https://jitpack.io'}}}dependencies{compile'com.github.guochenhome:BluetoothPrint:1.1.2'}如果第一步报Error:Executionfailedfortask'
- 鸿蒙5.0开发【高效使用DevEco】
鸿蒙系统小能手Mr.Li
鸿蒙开发harmonyos华为鸿蒙程序员navpathstackDevEcoopenharmony
1.应用AI翻译代码IMSDK和普通应用的最大差异是逻辑性代码比较多,使用过声明式UI的同学都知道,声明式对于AI很友好,开发效率很高,但是对于逻辑性强的代码就没那么友好,而且IM系统本身有很多逻辑和历史包袱,新的平台的SDK也要兼容这些历史逻辑,有很多新同事对历史逻辑不了解,如果现熟悉的话成本又很高,所以从Android和iOS代码直接翻译成了一个不错的选择,但是手动翻译效率不高,而且还要求同时
- android kernel-6.6编译ko驱动
逐梦云间
c语言android
https://download.csdn.net/download/weixin_47982517/90546147
- Android设计模式之观察者模式
木子庆五
设计模式观察者模式android
一、定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。二、核心角色:Subject:抽象主题被观察的角色,管理观察者集合,提供注册/注销方法,定义通知逻辑。ConcreteSubject:具体主题,存储具体状态数据,状态变更时触发通知。Observer:抽象观察者,定义更新接口,使得主题状态发生变化时更新自己。ConcreteOberve
- Gradle实战指南:从入门到进阶,与Maven的深度对比
潘多编程
mavenjava
一、为什么开发者正在从Maven转向Gradle?在Java构建工具的演进史中,Maven通过约定优于配置的理念解决了Ant时代的混乱,但其XML配置的冗长和生命周期的僵化逐渐暴露短板。而Gradle凭借GroovyDSL的灵活语法、增量编译的极致性能(构建速度比Maven快2-10倍)和面向任务的编程模型,已成为Android官方构建工具,并在Spring、Hibernate等知名框架中广泛应用
- 用Android studio 做出QQ登录界面
puerhuo
androidstudioandroidstudio
1.布局界面代码如下:
- 原生Android开发
酒江
android
原生Android开发是指使用Android官方提供的工具和编程语言来开发Android应用,通常使用Java或Kotlin编程语言,结合AndroidSDK(软件开发工具包)和AndroidStudio(集成开发环境)来创建和优化应用。原生开发可以最大化利用设备的硬件资源和Android操作系统的特性,提供最佳的性能和用户体验。以下是对原生Android开发的详细介绍,包括开发语言、开发工具、U
- 保姆级教程!在Android MVVM架构模式下使用数据绑定技巧(包括理论知识和实战案例)
计算机搬砖艺术家
Andriodandroid
当然可以!下面是一份关于在AndroidMVVM架构模式下使用数据绑定技巧的保姆级教程,包括理论知识和实战案例。我们将从基础概念入手,逐步深入到具体的实现细节。第一部分:理论基础1.MVVM架构简介M(Model):负责管理应用程序的数据逻辑和业务逻辑。V(View):负责显示数据给用户。VM(ViewModel):作为Model和View之间的桥梁,处理View的展示逻辑和与Model的交互。2
- Android VMOS(安卓虚拟机)-v3.0.9
私人珍藏库
android
AndroidVMOS(安卓虚拟机)链接:https://pan.xunlei.com/s/VOMMtg2ZnoYsjEM380W--XFqA1?pwd=gbpg#VMOSPro是在原VMOS(虚拟大师)团队做出了颠覆性的更新。这次我们将会提供给用户自定义ROM的权限,将不再限制用户。我们将打造一个ROM平台,且鼓励用户自发的进行更改ROM,将用户的想象发挥至极限。自带root环境,可免root运
- 小爱控制via电视浏览器搜索图片-Homeassistant重制上一个自动化
wjcroom
智能音箱电视盒自动化python
制作自动化详情为了完成图片搜,暂定指令找找{描述}在执行脚本的adb地方输入以下指令,百度因安全不让在图片地址直接搜转用bing>->amstart-nmark.via.gp/mark.via.Shell-aandroid.intent.action.VIEW-dhttps://cn.bing.com/images/search?q={{state_attr('sensor.xiaomi_lx06
- richeditor-android:打造Android移动应用的富文本编辑体验
Kingston Chang
本文还有配套的精品资源,点击获取简介:在移动应用开发中,richeditor-android为Android平台提供了一个功能强大的富文本编辑器,旨在提供与H5端类似的编辑体验,使开发者能够快速实现专业的文字编辑功能。框架以用户体验为中心,提供简洁的API、高度定制化能力和丰富的预设样式。集成简单,支持文本编辑的常见操作,并且经过性能优化确保在各种Android设备上流畅运行。通过设置回调、自定义
- 跨平台移动开发框架(如 Flutter、React Native)的性能对比与应用实践
算法探索者
flutterreactnativereact.js
摘要:随着移动应用市场的迅速发展,跨平台移动开发框架因其能够提高开发效率、降低成本而受到越来越多开发者的青睐。本文主要对Flutter和ReactNative这两个主流的跨平台移动开发框架进行性能对比与应用实践分析。通过对它们的渲染机制、内存管理、开发效率等方面的研究,结合实际应用案例,探讨各自的优势与不足,为开发者在选择合适的开发框架时提供参考依据。一、引言移动应用开发领域中,跨平台开发框架的出
- Android学习总结之MMKV(代替SharedPreferences)
每次的天空
android学习
一、引言:存储革命的必然性在Android开发领域,SharedPreferences(SP)作为官方推荐的轻量级存储方案,曾是开发者的首选。然而,随着应用复杂度提升,SP的缺陷逐渐暴露:ANR风险、性能瓶颈、多进程灾难等问题频发。据统计,某头部应用因SP导致的ANR占比高达18%,而微信团队通过自研MMKV实现了零ANR的突破。本文将深度解析MMKV如何解决SP的"七宗罪",并揭秘其碾压级技术方
- Android面试总结之Handler 机制深入探讨原理、应用与优化
每次的天空
android
1.使用过Handler吗?Handler是用来干嘛的?答:使用过,Handler是android中设计的用于线程间通信的工具类,针对单个Handler对象而言,与其关联的有Message,MessageQueue和Looper,其中Message存储于MessageQueue中,Looper从MessageQueue中取消息并处理,Handler将Message添加到MessageQueue中。
- android studio 运行flutter项目
鹅肝手握高V五色
httpudphttpswebsocket网络安全网络协议tcp/ip
在AndroidStudio中运行Flutter项目简介Flutter是一个流行的跨平台移动应用开发框架,而AndroidStudio是一种强大的集成开发环境,支持Flutter开发。本文将介绍如何在AndroidStudio中运行Flutter项目,让开发者能够更加方便地进行Flutter应用程序的开发和调试。对于iOS开发者,如果需要在Mac上开发Flutter应用,可以考虑使用AppUplo
- Android Gradle 插件问题:The option ‘android.useDeprecatedNdk‘ is deprecated.
我命由我12345
Android-问题清单androidjava-eejavaandroid-studioandroidruntimeandroidjetpackandroidstudio
问题与处理策略问题描述在Android项目中,报如下警告Theoption'android.useDeprecatedNdk'isdeprecated.Thecurrentdefaultis'false'.IthasbeenremovedfromthecurrentversionoftheAndroidGradleplugin.NdkCompileisnolongersupported#翻译配置项
- Android自定义控件:imageview重写onMeasure方法实现图片按指定比例显示,拉伸永不变形,解决屏幕适配问题
伊特君
UI控件imageview自定义控件Imageview按比例显示
使用ImageView会遇到的问题在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,比如一个广告条的轮播效果,参看博客:广告条效果实现----ViewPager加载大图片(LruCache)以及定时刷新,很多时候,我们都希望图片能够在宽度上填充父窗体,这样比较符合人的审美观点,但是问题就随之而来了,那就是高度如何定义??先来看一个
- 【漏洞修复】Android Studio快速编译glibc2.39、curl7.86.0、openssl3.1.2、cups2.4.10、zlib1.3.0源码(arm64 Android11为例)
漫步企鹅
androidstudiogiteeandroid
要在AndroidStudio中编译或获取高版本的glibc、curl、openssl等库的arm64-v8a架构二进制文件,需结合NDK工具链和构建脚本配置。以下是具体步骤和建议:一、环境配置安装NDK和CMake在AndroidStudio中通过SDKManager安装最新NDK(建议r25及以上版本)和CMake,确保支持C++17/20特性12。NDK路径通常位于Android/sdk/n
- android初学
金是沉默。
android
Intent直译意图显式意图:构造函数(实参为两个)(当前类对象this,要跳转的.javaclass文件),隐式意图:构造方法实参(填写一个)(需要在清单文件配置)系统自动匹配点击事件:注册设置点击监听器的常用三种方法On...Click,1、匿名内部类适应只需要一个对象,2、外部类即自己写一个类实现监听器接口,3、当前类实现监听器接口(实参填this)),可以lambad表达式常用UI控件Te
- 省钱兄 JAVA 同城家政服务派单系统技术解析
专业系统开发老赵
java软件需求开发语言微信小程序开源软件
.系统概述在当今互联网高速发展的时代,同城家政服务已成为城市居民日常生活的重要组成部分。省钱兄JAVA同城家政服务派单系统是一款面向家政服务行业的全功能SaaS级系统,支持师傅上门派单、商户入驻、服务预约、在线支付、聊天沟通,并兼容微信小程序、微信公众号、APP、H5,实现一套源码支持多端适配,助力企业快速搭建自己的家政服务平台。核心亮点:全平台覆盖:支持APP(Android&iOS)、H5、微
- flutter 获取设备的唯一标识
肥肥呀呀呀
flutter
插件device_info_plus|FlutterpackageFlutterpluginprovidingdetailedinformationaboutthedevice(make,model,etc.),andAndroidoriOSversiontheappisrunningon.https://pub.dev/packages/device_info_plus安卓androidInfo
- 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