- python 微信群发_Python-Pyqt5编写微信群发软件
weixin_39624816
python微信群发
环境:Python3.7,Eric6,Pyqt5Python库:wxpywxpy在itchat的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能##扩展。成品图微信群聊功能点:单个好友,单个群发送,以及全部好友,全部群聊发送待完善:图片,文件发送(不想玩了,有兴趣的自己玩)按钮样式border-style:none;border:1pxsolid#3f3f3f;padding:5px;
- python微信库itchat_用python写一个微信群发工具(基于itchat库)
weixin_39654619
python微信库itchat
fromwxpyimport*fromtimeimportsleepimportrandombot=Bot(cache_path=True)#print('防止微信账号违规操作被封,每次发送信息时间间隔为随机0-1.5s')message=input('请输入要发送的微信信息:')friends_number=input('请输入账号好友数量:')number=int(friends_number
- C++中的std::initializer_list详解
一倾而尽
C++/STLC++11/C++14C++
initializer_list是C++11提供的一种新类型,其定义于头文件中,此头文件是工具库的一部分,定义如下:namespacestd{templateclassinitializer_list{public:usingvalue_type=E;usingreference=constE&;usingconst_reference=constE&;usingsize_type=size_t;
- java list找到最小值_Java查找 List 中的最大最小值实例演示
ZzzCola
javalist找到最小值
以下实例演示了如何使用Collections类的max()和min()方法来获取List中最大最小值:/*authorbyw3cschool.ccMain.java*/importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Listlist=Arrays.asList("oneTwothreeFourfivesixo
- python 内存数据库,python 内存数据库
博博de宝宝
python内存数据库
场景:python打开sqlite3内存数据库,操作完毕将数据保留到文件数据库python打开sqlite3内存数据库,操作完毕将数据保存到文件数据库#encoding=utf-8#甄码农代码20120306#打开sqlite3内存数据库,执行操作,将内存数据库保存到文件importsqlite3importStringIO#使用:memory:标识打开的是内存数据库con=sqlite3.con
- Matplotlib教程
weixin_30905133
pythonc/c++人工智能
Matplotlib是用于数据可视化的最流行的Python包之一。它是一个跨平台库,用于根据数组中的数据制作2D图。它提供了一个面向对象的API,有助于使用PythonGUI工具包(如PyQt,WxPythonotTkinter)在应用程序中嵌入绘图。它也可以用于Python和IPythonshell,Jupyter笔记本和Web应用程序服务器。面向读者本教程专为希望获得数据可视化基础知识的学员而
- python 单因子方差分析_假设检验之F检验-方差分析
雏Carnation
python单因子方差分析
这一次我们来了解一下假设检验中另一个重要检验-F检验什么是F检验?F检验(F-test),最常用的别名叫做联合假设检验(英语:jointhypothesestest),此外也称方差比率检验、方差齐性检验,方差分析,它是一种在(H0)之下,统计值服从的检验。其通常是用来分析用了超过一个参数的统计模型,以判断该模型中的全部或一部分参数是否适合用来估计总体F检验对于数据的正态性非常敏感,因此在检验方差齐
- 82. Remove Duplicates from Sorted List II
caisense
LeetCode
https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/description/删除增序链表中的重复结点思路:用pre记录前驱,i往后遍历,遇到重复的就继续向前,直到非重复,然后修改pre的后继即可classSolution:defdeleteDuplicates(self,head):""":typehead:Lis
- chatgpt赋能python:Python群发微信消息:解决方案
suimodina
ChatGptpythonchatgpt微信计算机
Python群发微信消息:解决方案肆无忌惮的群发微信消息,是否是你目前所需的解决方案?如果是,那么你来对地方了。Python是一门十分强大的编程语言,广泛用于各种人工智能、计算机视觉、机器学习等领域。Python可以用于开发各种应用程序,它也可以用于批量处理和发送微信消息。本文将概述如何用Python发送微信消息。我们将介绍用Python实现微信消息的流程和步骤,并提供一些有关如何使用Python
- 【拥抱AIGC】知识库构建与管理指南
soso1968
AIGC
通义灵码能够结合企业知识库的私域数据,生成贴合企业特点的回答。充分发挥检索增强技术的优势,构建高质量的企业知识数据以及合理的知识库权限管理是必不可少的。本文将为您详细介绍如何构造与管理一个高质量的企业知识库。前提条件适用版本:通义灵码企业标准版、通义灵码企业专属版。适用人员:通义灵码管理员、组织内全局管理员(专属版)。场景介绍通义灵码虽然具备广泛的通用知识,但缺乏企业独有的专业知识和数据。通过引入
- 新书速览|鸿蒙之光HarmonyOS NEXT原生应用开发入门
全栈开发圈
harmonyos华为
《鸿蒙之光HarmonyOSNEXT原生应用开发入门》1本书内容《鸿蒙之光HarmonyOSNEXT原生应用开发入门》以HarmonyOSNEXT版本为核心,从基础知识到实战案例,引领读者逐步探索“纯血鸿蒙”原生开发的奥秘。全书共16章,内容涵盖HarmonyOS架构、DevEcoStudio使用、应用结构解析、ArkTS编程语言、Ability组件、ArkUI开发、公共事件处理、窗口管理、网络编
- 一文读懂数据仓库构建流程(超详细)
嗨皮一会吧
数仓构建数据仓库
相信大家都知道数仓分层架构(ods、dwd、dim、dws等)。但是面对一个从0开始的数仓,我们难免会有一个疑问,应该如何去构建各层,以及数仓规划中要有哪些事实表和维度表,这个理论依据从何而来呢,相信大家看完本篇文章,可以在搭建数仓的时候有一个理论依据。1、数仓构建整体流程数仓构建核心图:我们可以发现其实数据开发占比整个数仓构建流程只是很小的部分,只要我们将前期的数据调研,各种数仓模型设计好,剩下
- Python内存数据库/引擎(sqlite memlite pydblite)
ronon77
内存数据库sqlitememlitepydblite
1初探在平时的开发工作中,我们可能会有这样的需求:我们希望有一个内存数据库或者数据引擎,用比较Pythonic的方式进行数据库的操作(比如说插入和查询)。举个具体的例子,分别向数据库db中插入两条数据,”a=1,b=1″和“a=1,b=2”,然后想查询a=1的数据可能会使用这样的语句db.query(a=1),结果就是返回前面插入的两条数据;如果想查询a=1,b=2的数据,就使用这样的语句db.q
- 算法打卡:第十一章 图论part02
菜鸟求带飞_
数据结构与算法数据结构java算法图论
今日收获:岛屿数量(深搜),岛屿数量(广搜),岛屿的最大面积1.岛屿数量(深搜)题目链接:99.岛屿数量思路:二维遍历数组,先判断当前节点是否被访问过&是否是陆地。如果满足条件则岛屿数量加1,再通过深度优先遍历将其上下左右的陆地设置为访问过。注意:每次传入dfs函数的节点都是符合结果收集条件的,所以不用写结束条件。也可以将判断条件(访问过/不是陆地)写入dfs的结束条件中。方法:importjav
- MySQL中LIMIT x,y; 语句的意思与用法。
海宁不掉头发
笔记allLIMIT分页查询数据库查询语法性能优化
举例:LIMIT表示分页查询,LIMIT0,5;表示从索引为0的位置,就是第一个往后查5条数据。再比如:LIMIT4,8;表示从索引为4的位置也就是第五条开始往后查8条数据。好的想法是十分钱一打,真正无价的是能够实现这些想法的人。
- vue使用阿里云视频点播
像山里的风
vue.jsjavascript阿里云
vue使用阿里云视频点播——videoId+playauth的方式一.上传视频官方文档https://help.aliyun.com/document_detail/52204.htm?spm=a2c4g.11186623.0.0.4885a393kRPguB#task-19956481.在index.html页面引入JavaScript脚本。具体代码,已有视频时回显并且可以查看视频、删除视频;没
- 【深度学习】Huber Loss详解
小小小小祥
深度学习人工智能算法职场和发展机器学习
文章目录1.HuberLoss原理详解2.Pytorch代码详解3.与MSELoss、MAELoss区别及各自优缺点3.1MSELoss均方误差损失3.2MAELoss平均绝对误差损失3.3HuberLoss4.总结4.1优化平滑4.2梯度较好4.3为什么说MSE是平滑的1.HuberLoss原理详解HuberLoss是一种结合了MSE(均方误差)与MAE(平均绝对误差)的损失函数,旨在克服两者的
- 【YOLOV8】YOLOV8模型训练train及参数详解
小小小小祥
YOLO
介绍训练深度学习模型涉及为其提供数据并调整其参数,以便它能够做出准确的预测。UltralyticsYOLOv8的训练模式专为有效、高效地训练目标检测模型而设计,充分利用现代硬件的能力。本指南旨在涵盖使用YOLOv8强大功能集训练自定义模型所需的所有细节,帮助你快速入门。为什么选择UltralyticsYOLO进行训练?高效性:无论是单GPU设置还是跨多个GPU扩展,都能充分利用你的硬件。多功能性:
- 【YOLOV8】目标检测任务中应该如何选择YOLOV8n/s/m/l/x模型及输入尺寸大小
小小小小祥
YOLO目标检测人工智能
问题描述:YOLOV8作为目前主流的深度学习网络,支持图像分类、目标检测、实例分割、姿态检测、旋转目标检测等功能。对于目标检测任务官方提供了n/s/m/l/x五个模型,我们在使用YOLOV8模型进行自己任务训练时,应该如何选择YOLOV8的模型以及输入尺寸大小呢?YOLOV8官网:https://github.com/ultralytics/ultralyticsYOLOV8n/s/m/l/x信息
- c++ 类模板
飞yu流星
c++开发语言
1.类模板语法类模板类模板作用:建立一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟的类型来代表。语法:templateclass类名{}templateclassPerson{public:Person(NameTypename,AgeTypeage){m_Name=name;m_Age=age;}NameTypem_Name;AgeTypem_Age;voidshowPerson(){
- 用java 实现 Zigzag Conversion Z 字形变换(leetCode 算法)
用心去追梦
算法javaleetcode
Z字形变换(ZigzagConversion)是LeetCode上一个有趣的字符串操作问题。题目要求我们把给定的字符串按照Z字形排列,并且按行读取这些字符,最后返回重新排列后的字符串。例如,输入字符串“PAYPALISHIRING”和行数numRows=3时,Z字形排列如下:PAHNAPLSIIGYIR然后按行读取得到的结果字符串为“PAHNAPLSIIGYIR”。下面是用Java实现这个算法的方
- 用java 实现 Longest Substring Without Repeating Characters 无重复字符的最长子串(leetCode 算法)
用心去追梦
算法javaleetcode
无重复字符的最长子串(LongestSubstringWithoutRepeatingCharacters)是LeetCode上一个非常经典的滑动窗口问题。这个问题要求我们找到给定字符串中没有重复字符的最长子串的长度。下面是一个使用Java实现的解决方案,它使用了滑动窗口和哈希集合来跟踪当前窗口内的字符:importjava.util.HashSet;importjava.util.Set;pub
- 用java 实现 Longest Palindromic Substring 最长回文子串(leetCode 算法)
用心去追梦
算法javaleetcode
最长回文子串(LongestPalindromicSubstring)是LeetCode上一个经典的问题,它要求我们找到给定字符串中最长的回文子串。这个问题可以通过多种方法来解决,其中一种高效的方法是中心扩展法。该算法的基本思想是遍历每个字符,并以该字符为中心尝试向两边扩展,寻找最长的回文子串。下面是用Java实现这个算法的方法:publicclassLongestPalindromicSubst
- cannot open shared object file: No such file or directory解决方法
Turn X7
工作问题总结linux服务器运维
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,比如:errorwhileloadingsharedlibraries:libavformat.so.58:cannotopensharedobjectfile:Nosuchfileordirectory原因一般有两个:一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对,遇到这种情况那就去网上下
- 【5】WLC上的CIMC
剪刀石头布Cheers
CiscoWirelessLearning运维网络无线思科WLCCMICUCS-C
1.概述CIMC全称是CiscoIntegratedManagementController,是C系列服务器的管理服务,而思科的WLC5520、8540等无线控制器,硬件是基于思科UCS-C系列的(其中WLC5520基于C220,WLC8540基于C240),所以这些控制器上是有CMIC的。虽然平时在WLC上不是那么容易用到或者有相关的操作,但是还是需要知晓一下相关的内容。CIMC是内置于设备主板
- HighCharts 交互式图表-01-入门介绍
后端java
常见的图形库系列常见的图形库概览-00-overview常见的图形库概览-01-Chart.js入门例子常见的图形库概览-03-D3.js入门例子HighCharts交互式图表-01-入门介绍Plotly函数图像绘制ApexCharts图表入门例子Victory图表基于React,适合React项目,支持移动端Recharts入门例子AntVG2入门例子图表库C3.js入门例子图表库GoogleC
- NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
后端java
拼写纠正系列NLP中文拼写检测实现思路NLP中文拼写检测纠正算法整理NLP英文拼写算法,如果提升100W倍的性能?NLP中文拼写检测纠正Paperjava实现中英文拼写检查和错误纠正?可我只会写CRUD啊!一个提升英文单词拼写检测性能1000倍的算法?单词拼写纠正-03-leetcodeedit-distance72.力扣编辑距离NLP开源项目nlp-hanzi-similar汉字相似度word-
- C# delegate 委托使用教程
c#.net
什么是委托?委托是定义方法签名的引用类型数据类型,可以定义委托的变量,就像其他数据类型一样,可以引用与委托具有相同签名的任何方法。它允许方法作为参数传递,并允许事件驱动编程。它们提供了一种以类型安全的方式封装方法引用的方法。委托是一种类型,类似于C++的函数指针,但更安全和灵活。委托可以存储对方法的引用(或者多个方法)。委托是实现事件和回调的基础。为什么使用委托?类型安全:委托提供一种类型安全的方
- 【赵渝强老师】MongoDB的Journal日志
数据库nosqlmongodb
数据是MongoDB的核心,MongoDB通过使用Journal日志保证数据的安全。Journal日志用于记录上一个检查点之后发生的数据更新,并将更新的信息顺序写入Journal日志文件中。通过使用Journal日志能够将数据库从系统异常终止事件中还原到一个有效的状态。通过6.5.1.3小节的介绍了解到,MongoDB使用预写日志机制实现数据的持久化。每个Journal日志文件的大小是100M,并
- C# dynamic 类型详解
c#.net
简介C#中的dynamic是一种特殊类型,它允许在运行时确定对象的类型和成员,而不是在编译时。dynamic的定义dynamic是一种类型,它告诉编译器对其进行“动态类型解析”。dynamic类型的变量会跳过编译时类型检查,所有的操作会推迟到运行时进行。适合处理未知类型的对象,或需要与动态语言(如Python、JavaScript)互操作的场景。dynamic的使用动态类型赋值dynamicobj
- 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