- Python爬虫实战:高效提取与解析JSON格式数据
Python爬虫项目
python爬虫宽度优先数据库json深度优先开发语言
1.JSON数据爬取概述在当今互联网时代,JSON(JavaScriptObjectNotation)已成为最流行的数据交换格式之一。相比传统的HTML页面,JSON格式数据具有结构清晰、体积小、解析方便等优势,使得它成为API接口的首选数据格式。1.1为什么选择JSON数据爬取数据结构化:JSON数据本身就是结构化的,不需要像HTML那样进行复杂的解析传输高效:JSON通常比HTML体积小,传输
- 大模型核心概念 | 嵌入模型(Embedding)、向量模型(Vector Model)
一、核心概念解析1.1嵌入模型(Embedding)作为AI领域的核心基础技术,嵌入模型通过将非结构化数据映射为低维稠密向量,实现语义特征的深度捕捉:文本嵌入:如将语句转换为1536维向量,使"机器学习"与"深度学习"的向量余弦相似度达0.92跨模态嵌入:支持图像与文本的联合向量空间映射,如CLIP模型实现文图互搜1.2向量模型(VectorModel)作为嵌入技术的下游应用体系,主要包含两大方向
- 使用LangChain构建多代理系统实现复杂任务自动化
LCG元
工具langchain自动化运维
目录一、系统架构设计模块说明:二、核心工作流程(双流程图对比)横向对比:单代理vs多代理纵向核心流程三、企业级实现方案1.Python核心代码(LangChain0.1.8+)2.TypeScript前端集成代码四、性能对比测试五、生产级部署方案安全审计要点:高可用部署拓扑:六、技术前瞻性分析附录:完整技术图谱摘要:本文深度解析如何基于LangChain框架构建企业级多代理系统,通过模块化架构设计
- 时序数据库选型避坑全攻略:IoTDB性能与成本双杀的秘密!
LCG元
数据库时序数据库iotdbjava
文章目录一、架构设计深度解析1.1IoTDB架构图谱1.2核心流程对比二、企业级实战代码2.1Python数据写入示例2.2TypeScript客户端实现2.3集群配置YAML三、性能对比分析四、生产部署方案4.1安全加固配置4.2安全策略实施五、技术前瞻分析5.1云原生演进路径5.2新型存储引擎预测六、技术图谱附录一、架构设计深度解析1.1IoTDB架构图谱数据写入协议适配层内存表管理持久化引擎
- 大规模图计算引擎的分区与通信优化:负载均衡与网络延迟的解决方案
LCG元
系统服务架构负载均衡网络运维
目录一、系统架构设计与核心流程1.1原创架构图解析1.2双流程对比分析二、分区策略优化实践2.1动态权重分区算法实现(Python)三、通信优化机制实现3.1基于RDMA的通信层实现(TypeScript)四、性能对比与调优4.1分区策略基准测试五、生产级部署方案5.1Kubernetes部署配置(YAML)5.2安全审计配置六、技术前瞻与演进附录:完整技术图谱一、系统架构设计与核心流程1.1原创
- 阿里云产品介绍
阿里云产品相关计算:云服务器ECS、云虚拟机、GPU云服务器网络:负载均衡SLB、弹性公网IP、专有网络VPC、CDN(CDN通过将内容缓存到全球分布的多个边缘节点(EdgeNodes)上,使用户可以从离自己最近的节点获取内容,从而减少网络延迟,提升访问速度)存储:块存储EBS(ElasticBlockStorage)、对象存储OSS(ObjectStorageService)、文件存储NAS数据
- Docker集群部署 Apache DolphinScheduler 3.x
ジ来将可留姓名
dockerapache容器
Docker集群部署ApacheDolphinScheduler3.x。前期准备首先,确保你的机器上已经安装了Docker和DockerCompose。如果还没有安装,请参考以下链接进行安装:Docker安装指南DockerCompose安装指南确认Docker和DockerCompose版本打开终端(Linux/MacOS)或命令提示符(Windows),输入以下命令来检查是否正确安装了Dock
- Git CLI高危任意文件写入漏洞(CVE-2025-48384)PoC已公开
FreeBuf-
git
GitCLI(命令行界面)中存在一个高危漏洞,攻击者可利用该漏洞在Linux和macOS系统上实现任意文件写入。目前该漏洞的概念验证(PoC)利用代码已公开。该漏洞编号为CVE-2025-48384,CVSS严重性评分为8.1分(满分10分)。当用户执行gitclone--recursive命令克隆恶意仓库时,攻击者可借此实现远程代码执行。**关键要点**1.CVE-2025-48384(CVSS
- 国产IP摄像头存在隐蔽后门,攻击者可获取Root权限
FreeBuf-
tcp/ip安全web安全
漏洞概述ShenzhenLiandianCommunicationTechnologyLTD生产的某款IP摄像头被曝存在高危漏洞(CVE-2025-7503)。该漏洞获得CVSSv4满分10分评级,攻击者可通过未公开的Telnet服务获取设备root权限,对隐私安全构成严重威胁。技术细节漏洞存在于摄像头固件(AppFHE1_V1.0.6.0)及其配套内核(KerFHE1_PTZ_WIFI_V3.1
- python基础语法9,用os库实现系统操作并用sys库实现文件操作(简单易上手的python语法教学)
AI 嗯啦
python开发语言
一、os库os.system()是Pythonos库中用于执行操作系统命令的重要方法,它允许在Python程序中直接调用系统shell命令(如Linux的bash命令或Windows的cmd命令)。基本语法importosos.system(command)command:要执行的系统命令字符串(与在终端/命令提示符中输入的命令格式一致)返回值:命令执行的退出状态码(0表示成功,非0表示执行出错)
- 2025阿里云黑洞自救指南:从分钟级恢复到长效免疫的实战方案
一次未防护的DDoS攻击,可致业务停摆72小时,损失超千万!2025年,随着AI驱动的DDoS攻击工具泛滥及僵尸网络商业化,阿里云服务器被拉入黑洞的案例激增300%。当攻击流量超过实例阈值(5Gbps-300Gbps)时,阿里云会强制屏蔽IP公网访问——这不是惩罚,而是保全云平台整体的“断臂求生”。本文将提供一套经过头部企业验证的应急方案,涵盖从5分钟快速恢复到构建免疫体系的全流程。一、2025黑
- pip卸载指定文件夹的库
叶深深
pippython开发语言
要卸载指定文件夹中的库,可以使用pip卸载命令,并指定库的完整路径:pipuninstall-y-r/path/to/library其中,"-y"选项表示自动回答"yes",不询问确认;"-r"选项表示指定卸载清单文件。如果您想要卸载的库不在指定的文件夹中,可以使用以下命令:pipuninstall其中,""表示需要卸载的库名称。
- 玩转Docker | 使用Docker部署Mininote笔记工具
心随_风动
玩转Dockerdocker笔记容器
玩转Docker|使用Docker部署Mininote笔记工具前言一、Mininote介绍Mininote简介Mininote使用场景二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Mininote服务下载镜像创建SSL自签名证书创建容器创建容器检查容器状态检查服务端口安全设置四、访问Mininote服务访问Mininote首页设置访问密码五、基本使用新建笔记六、实践总结前
- 快捷删除python中pip安装的所有外部库
m0_74366096
pythonpip开发语言
windows环境首先,列出所有安装的第三方库并导出到一个文件:pipfreeze>requirements.txt然后,批量卸载这些库:pipuninstall-y-rrequirements.txt最后,用del命令删除requirements.txt文件:delrequirements.txt这样就能在Windows系统上完成卸载并清理文件的操作。
- 【TCP/IP】20. 因特网安全
熬夜超级玩家
#TCP/IPtcp/ip网络协议网络
20.因特网安全20.因特网安全20.1安全威胁20.2安全服务20.3基本安全技术20.3.1密码技术20.3.2报文鉴别技术20.3.3身份认证技术20.3.4数字签名技术20.3.5虚拟专用网(VPN)技术20.3.6防火墙技术20.3.7防病毒技术20.4IP层安全20.5传输层安全20.6应用层安全20.6.1安全超文本传输协议(S-HTTP)20.6.2电子邮件安全(S/MIME)本章
- 【TCP/IP】21. 新一代因特网协议(IPv6)
熬夜超级玩家
#TCP/IPtcp/ip网络智能路由器
21.新一代因特网协议(IPv6)21.新一代因特网协议(IPv6)21.1转向新一代因特网协议21.2IPv6数据报格式21.3IPv6地址21.4向IPv6过渡21.5ICMPv6本章要点21.新一代因特网协议(IPv6)21.1转向新一代因特网协议IPv6(因特网协议第六版)是为替代IPv4而设计的新一代协议,旨在解决IPv4的固有缺陷,适应网络规模和应用需求的增长。IPv4协议存在的问题有
- JS 表达式和操作符-解构
坚定的小辣鸡在努力
前端javascript开发语言
JavaScript的解构(Destructuring)语法是一种从数组或对象中快速提取值并赋值给变量的方式。它能让代码更简洁、清晰,常用于函数参数、变量赋值等场景。ThedestructuringsyntaxinJavaScriptisapowerfulfeaturethatmakesitpossibletounpackvaluesfromarraysorpropertiesfromobject
- Web开发 03
今天在学习JavaScript,我其实需要很多练习才可以巩固一点!需要更多!1const用于声明常量的规则在JavaScript中,const用于声明常量,其核心规则是:声明时【必须】同时初始化(赋值),且后续无法重新赋值。关键知识点拆解const声明规则用const声明变量时,必须直接赋初始值,否则会触发SyntaxError:Missinginitializerinconstdeclarati
- Web开发 02
im_AMBER
前端学习
今天梳理出的HTML+CSS核心知识点,涵盖基础结构、布局、样式优化等实用技巧:总结1一、HTML核心知识1.基础结构文档声明:定义文档为HTML5标准。基本标签::根元素,包裹整个页面。:元数据(标题、样式、脚本等),不显示在页面。:设置网页标题(浏览器标签显示)。:页面内容容器,所有可见内容写在这里。2.常用标签文本与标题:~:标题标签,自动加粗且有默认层级样式。:段落标签,默认有上下边距。图
- 小白学Python,压缩和解压文件
目录前言一、判断文件是否为Zip文件二、打开压缩文件三、解压文件四、获取Zip文件中文件的属性信息前言Python标准库中的zipfile库可用于处理压缩文件,.zip是一种常用的压缩文件格式。zipfile库中包含用于查看Zip文件、解压Zip文件、将文件压缩为Zip文件等的方法。需要注意的是,在使用zipfile库前需要使用import导入zipfile库。一、判断文件是否为Zip文件zipf
- 如果数据已全部加载到内存中,使用多个 `num_workers` 是否仍然能加速数据加载?
问题核心:如果数据已经全部加载到内存中,使用多个num_workers是否仍然能加速数据加载?简短回答:不一定,取决于以下因素:数据预处理复杂度:如果数据仍需在DataLoader中进行实时处理(如增强、归一化等),多进程(num_workers>0)仍可能加速。数据传递开销:即使数据在内存中,多进程仍需通过共享内存或IPC传递数据,可能引入额外开销。硬件资源:CPU核心数、内存带宽、共享内存(/
- 盒子
心i_af0a
使用width来设置盒子内容区的宽度使用height来设置盒子内容区的高度width和height只是设置的盒子内容区的大小,而不是盒子的整个大小,盒子可见框的大小由内容区,内边距和边框共同决定为元素设置边框:要为一个元素设置边框必须指定三个样式border-width:边框的宽度border-color:边框颜色border-style:边框的样式使用border-width可以分别指定四个边框
- 从零开始:Android自定义相机应用开发全解析
悦闻闻
本文还有配套的精品资源,点击获取简介:本文深入探讨了在Android平台上开发自定义相机应用的核心技术要点,包括权限申请、创建预览界面、掌握CameraAPI、初始化相机、设置预览回调、拍照和视频录制、处理相机事件、界面交互设计、兼容性测试及性能优化。通过逐步实践这些知识点,开发者可以定制出符合特定需求的相机应用,并确保其在多种Android设备上的表现。1.Android自定义照相机权限与界面创
- Django母婴商城项目实践(十一)- 用户信息模块之用户登录注册
ITB业生
Django数据库djangosqlitejavascript后端
11用户信息模块1、背景项目babys的用户信息模块分为:用户账户登录页面和个人中心页面,用户登录和注册在用一个页面实现,如果用户不存在,则执行注册操作,反之则执行登录操作;个人中心页面显示用户的基本信息和订单信息,而且订单信息需要设置分页展示。2、内置User实现登录注册由于Django内置了用户管理功能,即Auth认证系统,而且具有灵活的扩展性,因此可以满足多方面的开发需求。创建项目时,Dja
- Django母婴商城项目实践(九)- 商品列表页模块
ITB业生
Djangodjango数据库python后端
9、商品列表页模块1、业务逻辑商品模块分为:商品列表页和商品详情页商品列表页将所有商品按照一定的规则排序展示,用于可以从销量、价格、上架时间和收藏数量设置商品的排序方式,并且在商品左侧设置分类列表,选择某一个分类可以筛选出对应的商品信息。商品列表页设有商品搜索功能和导航栏,网页顶部下方划分为3个部分:分类列表、排序设置和商品列表,当在搜索栏搜索每个商品时,商品列表会展示符合搜索条件的数据,这些数据
- binwalk
白天的我最菜
错题本开发语言
windows使用这个命令时候发现要shift一直按住,右击打开cmd管理员运行才行pythonsetup.pyinstall否则没有作用自己安装python目录的Scripts文件夹里,参考如下https://www.cnblogs.com/0yst3r-2046/p/12218770.html
- django parler 使用教程
1.什么是DjangoParler?DjangoParler是一个强大的Django插件,用于实现多语言模型字段。它允许你在Django模型中定义可翻译的字段,使得每个语言版本的数据能够独立存储和管理。2.安装与配置首先,使用pip安装DjangoParler:pipinstalldjango-parler然后,在你的Django项目的settings.py中添加parler到INSTALLED_
- nodeJs笔记(一)
a_xiaotaotao
nodeJs笔记前端
nodeJs笔记(一)基础知识什么是nodejs?nodejs的生态系统结构nodejs的工作原理V8JavaScript引擎:libuv:异步I/O与事件循环引擎:事件循环(EventLoop)的详细阶段:非阻塞I/O的工作流程(以fs.readFile为例):单线程与高并发:核心依赖库:工作原理全景图关键点:node.js的优缺点核心优势(优点)高性能与高并发(I/O密集型场景):核心原理:结
- AJAX概述
出门撞大运
ajax前端
在现代网页开发中,我们早已习惯了无需刷新页面就能获取新数据的流畅体验——浏览电商网站时的实时库存更新、社交平台的动态加载内容、表单提交后的即时验证反馈……这些都离不开一项核心技术——AJAX。今天,我们就来深入探索AJAX的奥秘,带你全面掌握这门改变网页交互方式的关键技术。一、什么是AJAX?AJAX,全称异步JavaScript和XML(AsynchronousJavaScriptandXML)
- Vue Element-UI下拉框搜索功能
逆风g
要实现这样的功能:上代码:核心:给下拉框新增加属性filterable:filter-method=dataFilter//下拉框开启搜索功能dataFilter(val){if(val){this.showEquipments=this.equipments.filter((item=>{returnitem.equipments.includes(val)}))}else{this.showE
- 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