- git checkout -b 命令:创建一个新分支并切换到该分支
薇远镖局
gitgit
gitcheckout-b命令的作用是创建一个新分支并切换到该分支。具体来说,它等同于以下两步操作的组合:创建新分支:gitbranch切换到新分支:gitcheckout通过使用gitcheckout-b,Git会首先基于当前所在的分支(或指定的起点)创建一个名为的新分支,然后立即切换到该新分支。这对于需要在当前工作基础上开始新功能开发、修复bug或进行试验性工作的情况非常方便。要从指定的分支新
- python弹窗(tkinter库):在弹窗中放置图片的两种方法
独白不白
python开发语言
我了解到的方法有两种,但无一例外,重点都是将图片转化成PhotoImage的形式,然后才能在弹窗中显示。相当于PhotoImage是tkinter库导出图片的专属格式。方法1基础写法:首先把gif格式的图片转化成PhotoImage形式,再利用Label导出。importtkinterastkroot=tk.Tk()a=tk.Frame(root)a.pack()b=tk.PhotoImage(f
- 2025(第十五届)中国互联网产业年会/AI重新定义互联网
东锋1.3
互联网人工智能
近日,2025(第十五届)中国互联网产业年会在北京举办,中国工程院院士、中国工程院原副院长邬贺铨在会上作了题为《以AI重新定义互联网》的主旨报告。邬贺铨院士表示,互联网在过去几十年经历了巨大变革。展望未来,互联网将继续在数字化、智能化方向上深入发展,推动更广泛的社会变革。未来十年,我们将进入“数智(新质)互联网”阶段,其核心特征是基础协议采用IPv6+,人机接口将以自然语言为主,不再依赖于点击AP
- 爬虫实战--- (6)链家房源数据爬取与分析可视化
rain雨雨编程
爬虫实战系列python爬虫数据分析
文章持续跟新,可以微信搜一搜公众号[rain雨雨编程],第一时间阅读,涉及数据分析,机器学习,Java编程,爬虫,实战项目等。目录前言1.爬取目标2.所涉及知识点3.步骤分析(穿插代码讲解)步骤一:发送请求步骤二:获取数据步骤三:解析数据步骤四:保存数据4.爬取结果5.完整代码6数据可视化前言今天我将为大家分享一个非常实用的Python项目——链家房源数据的爬取与分析可视化。在这篇文章中,我们将分
- uni-app组件引入方法(easycom自动化组件)
约妲己吃火锅
uni-app开发搬砖日常
uniapp官方与2020年02月23更新了2.6.0版本,支持2.5.5版本以后,调整内容有:1.对uniapp插件做出更改;2.新增了easycom项目模板(自动化组件)。那我本期简单给大家介绍easycom是什么?如何使用?。官方给出:传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。只要组件安装在项目的components目录下,并符合compon
- Java并发编程,AQS详解
图苑
java开发语言jvm
AbstractQueuedSynchronizer(简称AQS)是Java并发包中一个非常重要的同步框架,它为实现锁和其他同步器提供了一种标准化的方法。AQS通过内部的状态管理、FIFO队列以及对线程调度的支持,简化了锁的实现过程。许多标准库中的同步工具(如ReentrantLock、Semaphore和CountDownLatch)都是基于AQS实现的。一、AQS的基本原理1.概念AQS是一个
- 从单层到 MVC,再到 DDD:架构演进的思考与实践
洛卡卡了
面试架构设计mvc架构
引言在日常开发中,我们之前工作中经常接手的大多数都是传统MVC架构体系的项目。然而,随着现在分布式和微服务架构的普及,越来越多的项目开始重构、拆分,传统的MVC架构也逐渐向DDD架构演进。为什么需要将传统架构重构为DDD架构?MVC架构相比如今备受关注的DDD架构又有哪些不足?本文将探讨MVC与DDD的核心区别,分析传统架构在现代复杂业务场景中的挑战,以及DDD是如何解决这些问题的。在讨论DDD和
- 小程序使用web-view内嵌跳转另一个小程序
大龄落魄程序媛
前端小程序javascript
1、配置需要跳转的小程序地址和参数,直接跳转consturl=https://XXX.com:30443/contract/mobileSign.client?token=xxxconstarr=url.split('?')constparamsArr=arr[1].split('&')consttoken=paramsArr[0].split('=')[1]consturlTo="/pages/
- Python 项目国际化:使用 Babel 实现多语言支持
衫水
python进阶python
文章目录如何使用Babel实现Python项目国际化1.安装Babel2.设置项目目录结构3.标记可翻译的文本4.提取可翻译的文本生成文件——生成pot文件4.1有配置文件方式(使用`babel.cfg`)4.1.1.创建`babel.cfg`文件4.1.2.提取翻译内容4.2无配置文件方式(直接指定文件路径)5.后续步骤(通用步骤)5.1.初始化翻译文件——生成po文件5.2.编辑po文件5.3
- python创建虚拟环境
k47
pythonpythonlinux开发语言
python创建虚拟环境准备工作python3.8.8(python3.3以上自带venv模块)环境windows10步骤在D盘创建文件夹Env进入Env文件夹执行命令:python-mvenvtest_env(这里名称自己填)进入上一步创建的文件夹内,并进入scripts文件夹下执行命令进入虚拟环境:.\activatecmd命令窗口前面出现(你自己写的名称)就成功了退出虚拟环境deactiva
- ESP32-CAM导入ino项目编译和烧录
Android小码家
LinuxESP32
文章目录ESP32Cam模式接线图导入ino项目选择INO打开目录结构手动转换成C++源代码编译效果图搞猛一点其他实验ESP32Cam模式接线图导入ino项目选择INO打开目录结构platformio.ini;PlatformIOProjectConfigurationFile;;Buildoptions:buildflags,sourcefilter;Uploadoptions:customup
- LeetCode - 698 划分为k个相等的子集
程序员阿甘
华为OD算法刷题笔记leetcode算法JavaScriptJavaPython
目录题目来源题目描述示例提示题目解析算法源码题目来源698.划分为k个相等的子集-力扣(LeetCode)题目描述给定一个整数数组nums和一个正整数k,找出是否有可能把这个数组分成k个非空子集,其总和都相等。示例输入nums=[4,3,2,3,5,2,1],k=4输出true
- 查找地理处理工具
pianmian1
arcgis
操作方法:1.在arcmap中打开目标地图2.单机Geoprocessing菜单,选择SearchForTools,打开Search窗口3.在搜索文本框中输入Clip,当开始输入这个单词时,搜索文本框会根据用户输入的字母自动匹配搜索结果4.单机Search按钮,即可生成一个匹配的工具列表.在搜索结果中,锤子图标表示工具,卷轴图标表示python脚本,含有彩色方格的表示模型5.选择Clip工具,将打
- 关于python语言程序设计课本的总结
pianmian1
python开发语言
不知不觉就学完了整本书.今天来总结一下内容吧.目录第一章:程序设计基本方法;第二章:python语言基本语法元素第三章:基本数据类型第四章:程序的控制结构第五章:函数和代码复用第一章:程序设计基本方法;本章讲述了程序设计的基本语言概述与python语言特点.讲述了如何正确安装python程序.介绍了python语言的优点:语法简介,生态丰富,多语言集成,平台无关,强制可读,支持中文,模式多样等.并
- ESP32-S3模组上跑通esp32-camera(36)
蓝天居士
ESP32-S3ESP32-S3camerasensorOV5640
接前一篇文章:ESP32-S3模组上跑通esp32-camera(35)一、OV5640初始化2.相机初始化及图像传感器配置上一回继续对reset函数的后一段代码进行解析。为了便于理解和回顾,再次贴出reset函数源码,在components\esp32-camera\sensors\ov5640.c中,如下:staticintreset(sensor_t*sensor){//dump_regs(
- http和ws的区别
心愿王
http网络协议网络
一.连接建立1.HTTP:(1)使用TCP协议建立连接(2)每次请求都是独立的,即使是同一用户的连续请求,也会重复建立和断开连接(除非使用了HTTP/2或持久连接)(3)无状态协议。不保存状态信息,每次请求都需要全部信息(包括cookie等)来确定用户状态2.WebSocket:(1)初次连接时通过HTTP进行握手(HTTP101状态码),之后升级为WebSocket协议(2)一旦建立连接,除非主
- ‘Accept-Encoding‘: ‘gzip, deflate, br‘ 的 含义
暮雨疏桐
httphttps
Accept-Encoding是HTTP协议中的一个头部字段,其主要作用在于告知服务器客户端能够理解的内容编码方式。这个字段对于网络传输效率的优化非常重要,因为它允许服务器根据客户端的能力来压缩响应数据,从而减少传输的数据量,加快网页加载速度。以下是关于Accept-Encoding的详细解释:作用:告知服务器客户端支持的内容压缩编码方式。允许服务器根据客户端的支持情况选择合适的压缩算法来压缩响应
- 微信小程序web-view嵌入h5页面,分享当前页
木本心声
微信小程序微信小程序
①index.wxml为web-view标签添加bindload事件web-viewbindload|微信开放文档②index.js页面加载成功时会触发bindload事件绑定的方法此方法可以获取当前页面的地址getCurUrl(e){varshareUrl=e.detail.src;this.setData({shareUrl:shareUrl,})},③index.js把地址赋值给变量shar
- tensorflow1.x 基础案例3
慢慢学习python
tensorflow框架学习tensorflow学习python
.为什么还有很多人都选择使用TensorFlow1.x兼容性问题:TensorFlow1.x在一些旧项目中已经得到了广泛应用,这些项目可能依赖于1.x版本的特定API或行为。升级到2.x可能需要大量的代码修改和测试工作,对于一些已经稳定运行的项目,维护者可能不愿意承担这种风险。性能要求:在某些情况下,TensorFlow1.x可能提供了更适合特定任务的性能优化。例如,对于需要极致计算性能的应用,1
- clean code阅读笔记——如何命名?
HilariousDog
代码质量笔记windows
命名的原则1.“小处诚实非小事“有个词叫做”以小见大“。以建筑作喻,宏大建筑中最细小的部分,比如关不紧的门、未铺平的地板,甚至时凌乱的桌面,都会将整个大局的魅力毁灭殆尽,这就是整洁代码之所系。2.有意义的命名选个好名字,省下来的时间比花掉的多。一旦发现有更好的名字,就换掉旧的名字。2.1名副其实变量、函数和类的名字应该告诉读者:它为什么存在、它做什么事、它应该怎么用。如果名称需要注释来补充,那就不
- MySQL 时间和时间戳之间相互转换
Liana-Fany
将时间转为时间戳SELECTUNIX_TIMESTAMP(STR_TO_DATE(‘2019-02-0309:00:00’,’%Y-%m-%d%H:%i:%s’));–结果1549155600将时间戳转为时间selectfrom_unixtime(1549155600);–结果2019-02-0309:00:00————————————————MySQLdatediff(date1,date2):
- 选择省市区
蜕变菜鸟
前端javajavascript
原博:结合官方picker开发的省城市区县选择器-DCloud插件市场import{area}from'@/utils/area.js'{{selected}}-->selected:'',range:[[''],[''],['']],provinceCodes:[],cityCodes:[],value:[0,0,0],district:'',city:'',province:''methods
- (转)UEFI概述
gjq_1988
其他uefi
EFI可扩展固件接口(英文名ExtensibleFirmwareInterface或EFI)是由英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。BIOS技术的兴起源于IBMPC/AT机器的流行以及第一台由康柏公司研制生产的“克隆”PC。在PC启动的过程中,BIOS担负着初始化硬件,检测硬件功能,以及引导操作系统的责任,在早期,BIOS还提供一套运行
- uni-app 实现自定义底部导航
蜕变菜鸟
uni-app
原博:https://juejin.cn/post/7365533404790341651在开发微信小程序,通常会使用uniapp自带的tabBar实现底部图标和导航,但现实有少量应用使用uniapp自带的tabBar无法满足需求,这时需要自定义底部tabBar功能。例如下图的需求,在中间添加一个加号,例如根据不同登录的角色显示不同的tabBar按钮等,这些功能在无法通过uniapp自带的tabB
- 探索 Laravel DDD 的新境界:一个实用的实现框架
曹俐莉
探索LaravelDDD的新境界:一个实用的实现框架去发现同类优质开源项目:https://gitcode.com/在这个快速发展的软件开发领域中,保持代码的清晰性和可维护性至关重要。这就是为什么Domain-DrivenDesign(DDD)和CleanArchitecture等设计原则变得越来越受欢迎的原因。今天,我们向您推荐一款基于Laravel10的优秀开源项目——一个全新的领域驱动设计实
- Depth Anything V2:单目深度估计的更强基线
武朵欢Nerissa
DepthAnythingV2:单目深度估计的更强基线项目地址:https://gitcode.com/gh_mirrors/de/Depth-Anything-V2项目介绍DepthAnythingV2是由HKU与TikTok团队合作开发的单目深度估计算法的升级版本。这个框架显著提升了细节处理能力和鲁棒性,相比于基于深度学习的方法,它提供了更快的推理速度、更少的参数量以及更高的深度预测精度。本项
- Depth Anything V2 使用指南
侯彬颖Butterfly
DepthAnythingV2使用指南项目地址:https://gitcode.com/gh_mirrors/de/Depth-Anything-V2一、项目目录结构及介绍DepthAnythingV2是一个专注于单目深度估计的先进基础模型,其仓库结构清晰地组织了代码和资源,以便开发者能够快速上手。以下是关键的目录结构及其简介:.git-Git版本控制相关文件。assets-包含示例图像或数据资产
- Linux 4.19内核中的内存管理:x86_64架构下的实现与源码解析
109702008
#linux系统#linux内核编程linux人工智能
在现代操作系统中,内存管理是核心功能之一,它直接影响系统的性能、稳定性和多任务处理能力。Linux内核在x86_64架构下,通过复杂的机制实现了高效的内存管理,涵盖了虚拟内存、分页机制、内存分配、内存映射、内存保护、缓存管理等多个方面。本文将深入探讨这些机制,并结合Debian10所使用的Linux4.19内核源码进行解析。1.虚拟内存与分页机制在x86_64架构下,Linux内核利用虚拟地址空间
- 【系统架构设计师】案例专题六(8大系统架构设计之1): 信息系统架构设计考点梳理
数据知道
系统架构设计师(软考高级)系统架构架构软考高级系统架构设计师案例分析
更多内容请见:备考系统架构设计师-核心总结目录文章目录一、信息系统架构基本概念二、信息系统架构1、信息系统架构分类2、信息系统常用4种架构模型3、企业信息系统的总体框架三、信息系统架构设计方法1、ADM架构开发方法2、信息化总体架构方法3、TOGAF的目标、思想和组件四、信息系统架构风格一、信息系统架构基本概念信息系统架构(InformationSystemArchitecture,ISA)是指对
- 前端请求gzip,响应里却没有压缩返回
a212121212121
前端请求gzip,响应里却没有压缩返回前后端分离的框架,前端vue后端的springboot都开启了gzip。前端请求Accept-Encoding:gzip,deflate后端却没有响应。数据没有压缩。试过了好几个浏览器都没有用。后来以为是yml格式的问题,也没有效果。有经验的能告诉我是怎么回事吗?yml添加的代码.(两种格式)compression:enabled:truemin-respon
- 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