- 三子棋游戏
2401-
游戏linux算法
目录1.创建项目2.主函数编写3.菜单函数编写4.宏定义棋盘行和列5.棋盘初始化6.打印棋盘7.玩家下棋8.电脑下棋9.平局判断10.输赢判断11.game函数三子棋游戏(通过改变宏定义可以变成五子棋),玩家与电脑下棋1.创建项目新建项目,并在源文件中添加test.c、game.c文件,在头文件中添加game.h文件。2.主函数编写intmain(){srand((unsignedint)time
- flutter在使用gradle时的加速
LuiChun
flutter
当我使用了一些过时的插件的时候,遇到了一些问题比如什么namespace问题等,因为有些插件库没有更新了,或者最新版本处于测试阶段于是我就删除这些旧插件(不符合我要求的插件)于是根据各论坛的解决方法去做了以下的工作1:项目中删除了这些插件2:项目中删除了这些引用3:删除了gradle的缓存4:更换了新版本的gradle的版本5:清除flutter缓存6:重新下载构建插件7:运行后报错这个办法居然行
- Spring 6 第6章——单元测试:Junit
qw949
Spring6spring单元测试junit
一、整合JUnit5在之前的测试方法中,几乎都能看到以下两行代码:ApplicationContextcontext=newClassPathXmlApplicationContext("xxx.xml");Xxxxxxx=context.getBean(Xxxx.class);这两行代码的作用是创建Spring容器,最终获取到对象,但是每次测试都需要重复编写针对上述问题,我们需要的是程序能自动帮
- C++数据结构——中序遍历二叉树
祖安大龙
C/C++算法数据结构数据结构c++算法
中序遍历二叉树按完全二叉树的层次遍历给出一棵二叉树的遍历序列(其中用0表示虚结点),要求输出该二叉树的深度及中序遍历该二叉树得到的序列。输入格式:首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据首先输入一个正整数n(n≤1000),代表给出的二叉树的结点总数(当然,其中可能包含虚结点)。结点编号均为正整数,且各不相同。然后输入n个正整数,表示按完全二叉树(即第1层1个结点,
- Logback 未按预期过滤到控制台输出的日志级别
肉三
Javajvmjava开发语言
目标是:-Dlog.level=DEBUG通过JVMargs()(默认)仅将所需的日志级别写入控制台输出INFO。(不起作用)将DEBUG级别写入ROLLING_FILE_DEBUG文件附加器。(工作正常)将INFO级别写入ROLLING_FILE文件附加器。(工作正常)我想定义在控制台中应输出什么,通过使用INFO默认方式传递JVM参数,RollingFileAppender附加程序按预期工作。
- python md5加密
计算机辅助工程
python前端javascript
在Python中,可以使用hashlib模块来进行MD5加密。以下是一个简单的例子:importhashlibdefmd5_encryption(data):md5=hashlib.md5()#创建一个md5对象md5.update(data.encode('utf-8'))#使用utf-8编码数据returnmd5.hexdigest()#返回加密后的十六进制字符串#使用函数data="Hell
- python解奥赛运算题
Python数据分析与机器学习
python开发语言算法贪心算法
有一个以文字代替数字的算术表达式如下图所示,已知4个替代数字的文字中没有重复,编写程序求出文字所替代的数字。按逻辑思维:如果3位数和3位数相加等于4位数,则“青”只能是1:“山”+“青”大于等于10,因此“山”只能是9,得出“龙”是0:个位的两个“山”相加,推得“外”等于8。而按计算思维,则注重于程序的实现,用穷举法设计嵌套的4层循环,把所有的数字都试一遍,找出4个数字不相互重复的合满足加法等式条
- leetcode763.划分字母区间
努力d小白
#贪心算法leetcode职场和发展
标签:哈希表合并区间给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。示例1:输入:s="ababcbacadefegdehijhklij"输出:[9,7,8]示例2:输入:s="eccbbbbdec"输出:[10]思路:遍历字符串,得到每个字母第一
- TypeScript语言的字符串处理
轩辕烨瑾
包罗万象golang开发语言后端
TypeScript语言的字符串处理在现代编程语言中,字符串处理是非常重要的一部分。对于TypeScript这样的语言,更是让开发者在处理字符串时得到了更为安全和强大的工具。本文将深入探讨TypeScript中的字符串处理技术,包括字符串的基本操作、模板字符串、字符串方法、正则表达式以及常用的字符串处理技巧等。一、TypeScript基础与字符串的基本操作TypeScript是JavaScript
- C语言——课程实验报告
Tubishu
算法开发语言c语言
任务一:将1,2,…,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。输入格式无输出格式若干行,每行3个数字。按照每行第1个数字升序排列。输入无输出192384576…(每行***表示一个答案)#includeintmain(){inta,b,c;inti,j,s[9];for(a=100;a#includemain(){intflag
- 前k个高频元素力扣--347
嘻嘻哈哈樱桃
栈和队列算法leetcode算法数据结构
目录题目思路代码题目给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1]提示:1pq=newPriorityQueueo1[1]-o2[1]);int[]res=newint[k];//答案数组为k个元素Mapmap=newHas
- 【网络安全 | Python爬虫】URL、HTTP基础必知必会
秋说
爬虫http网络安全
文章目录URL概念及组成结构HTTP概念简述浏览器接收资源HTTP协议的结构请求结构请求行请求头请求体请求差异及参数说明响应结构状态行响应头响应体推广URL概念及组成结构在开始爬虫的开发实战前,需要了解的是URL的概念及组成结构,这具有基础性和必要性。URL(UniformResourceLocator,统一资源定位符)是用于在互联网上定位和标识资源的字符串。它提供了一种标准的方式来指示资源的位置
- 【数据结构】_顺序表
_周游
数据结构(C&C++)C语言数据结构c语言
目录1.概念与结构1.1静态顺序表1.2动态顺序表2.动态顺序表实现2.1SeqList.h2.2SeqList.c2.3Test_SeqList.c线性表是n个具有相同特性的数据元素的有限序列。常见的线性表有:顺序表、链表、栈、队列、字符串等;线性表在逻辑上是连续的线性结构,在物理结构上并不一定是连续的。线性表在物理上存储时,通常以数组和链式结构的形式存储,分别称之为顺序表和链表。本文介绍顺序表
- 【MWORKS】MWORKS 使用感想
tsumikistep
EE_MATLABmatlabword
文章目录前言实验感想前言进行DSP实验实验感想遇到的问题:Julia编译失败,转用.m可能是设置的问题,julia脚本运行有点慢m文件编写时不显示无分号输出m文件无法像MATLAB一样分段有些函数不支持,不太好用说实话感想界面长得像VScode+matlab,可拓展性不如VScode个人比较喜欢有树状资源管理器的m文件软件认为现阶段最好还是精进matlab或者py,如果在前两者没有学得较好的情况下
- WPF快速入门3——XAML对象属性赋值
阿卡蒂奥
WPFWPF
对象属性赋值1、Attribute=Value形式优点:赋值方便。缺点:Value为字符串,但是对象属性未必是字符串,因此无法赋太复杂的值。示例:绘制一个矩形,填充颜色并设置圆角;绘制一个路径,将路径闭合并填充颜色;效果如图所示:2、属性标签优点:可以为对象属性赋较为复杂的值。缺点:程序量大(因此在允许条件下可部分采用Attribute=Value形式,或使用属性默认值)。示例:在按钮对象上绘制一
- 如何使用 LangChain 组合提示符模板
GEAWfaacc
langchainpython
在现代AI应用中,构建灵活且易于重用的提示符(Prompt)是开发者的核心需求之一。LangChain提供了一种直观的方法来组合不同部分的提示,从而实现提示符模板的高效组合和再利用。本篇文章将通过几个具体的例子,带您了解如何在LangChain中进行提示符的组合。技术背景介绍LangChain是一个用于处理语言模型提示符的框架,它支持将字符串提示符和聊天提示符进行组合,从而提高开发效率和代码复用性
- 开源的未来 10 年:中国开源社区建立是关键
开源社
开源社KAIYUANSHE以下文章来源于CSDN,作者陈绪[CSDN.成就一亿技术人](#)【CSDN编者按】从EricRaymond在自由软件的范畴下进一步提出OpenSource开源软件至今,已经过去30余年,今天,开源不仅完全渗透互联网,更成为众多IT公司的基石。不过,中国的开源一直却呈现着企业热使用热社区冷开发冷的景象,真正参与开源产品开发和社区贡献的开发者凤毛麟角。同时,在过去的一年多里
- vim在末行模式下的删除功能
千航@abc
vim编辑器linux
删除:d:1d#删除第1行:1,5d#删除第一行至第五行:g/^\s*$/d#删除文件中的空白行——g所有——^表示行首——$表示行尾——\s空白符——*0至多个示例:
- 登录授权方案:JSON Web Tokens (JWT)
Java牛马
javaJWT登录授权授权校验
登录授权方案:JSONWebTokens(JWT)JWT官方文档:https://jwt.io/introduction1.简介:JWT即jsonwebtokens,通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输,在数据传输过程中还可以完成数据加密、签名等相关处理。可用于登录授权或者其他服务之前的信息交换;JWT本质就是一个字符串,它是一个开放标准(rfc7
- MongoDB权限讲解
只想按时下班
mongodbmongodb数据库
文章目录MongoDB权限说明普通用户管理用户授权用户超级管理员创建管理用户mongdb库创建读写用户一个用户多个权限MongoDB权限说明权限误区:并不是说下面的排序就证明权限越来越大除了readWrite权限用户外(root权限用户也包括),其它用户都不具备对数据库的写入权限,除read权限外,其它用户都不具备对数据库中的读权限,每个权限的功能各不一样(除root外)普通用户普通用户只是拥有下
- MongoDB 索引 聚合
许墨の小蝴蝶
mongodb数据库nosql
createIndex()方法MongoDB使用createIndex()方法来创建索引。>db.collection.createIndex(keys,options)>db.col.createIndex({"title":1})语法中Key值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。createIndex()方法中你也可以设置使用多个字段创建索引(
- OpenCV 笔记(25):图像的仿射变换
Java与Android技术栈
opencv笔记人工智能计算机视觉
1.几何变换图像的几何变换是指将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置,其实质是改变像素的空间位置,估算新空间位置上的像素值。几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。以下是常用的几种几何变换:旋转:将图像旋转指定角度。缩放:按缩放因子调整图像大小,使其变大或变小。平移:将图像从当前位置移动到新位置。错切:沿特定轴倾斜图像。仿射变换:一个更广泛的类别,包括单个变换
- python字符串处理函数汇总
程序媛小本
python开发语言
Python是一种充满活力的编程语言,其用途范围广泛,其中包括字符串处理。Python提供了许多强大的字符串处理函数库,可以方便地对字符串进行各种操作。在本文中,我们将讨论Python字符串处理函数的各种用途和方法,以及如何利用这些函数来解决常见的字符串处理问题。一、字符串的基本操作字符串是Python中最常用的数据类型之一,它们可以用单引号或双引号来表示。Python字符串处理函数可以处理许多字
- python字符串函数
忠言睿长
Python地信GISpython
对于月份不足两位补零操作如下:strYearMonth=str(year)+str(month).zfill(2)#不足两位补充0生成字符串变量str='pythonStringfunction'字符串长度获取:len(str)例:print'%slength=%d'%(str,len(str))连接字符串sStr1='strcat'sStr2='append'sStr1+=sStr2prints
- 线性查找与哨兵查找法
雾里看山
C语言c语言笔记开发语言数据结构
当我们在编写程序时,经常需要找寻一个数组或者字符串中某个元素的下标,本篇文章就对如何用最简单的方法找到该元素的下标进行了讲解。目录线性查找(顺序查找)简介代码实现哨兵查找法简介代码实现特别注意线性查找(顺序查找)简介当我们需要找寻数组(字符串)中的目标元素的下标(位置)的时候,通常说要遍历整个数组(字符串)即可,此处提到的遍历,就是进行的线性查找,其过程就是按照顺序从头至尾按照下标依次寻找,直至找
- Python常见字符串函数
流着口水看上帝
python
1.字符串基本操作函数-len():-功能:返回字符串的长度,即字符的个数。-示例:string="Hello"print(len(string))输出结果为5。-str():-功能:将其他数据类型转换为字符串类型。-示例:num=123string_num=str(num)print(type(string_num))输出结果为,说明num被成功转换为字符串类型。2.字符串查找函数-find()
- PAT甲级-1014 Waiting in Line
玉蜉蝣
算法队列银行排队问题PAT甲c++
题目题目大意一个银行有n个窗口,每个窗口最多站m个人,其余人在黄线外等候。假设k个人同时进入银行按先后次序排队,每个人都有相应的服务时间。每个顾客都选择最短队列站,如果有多个相同长度的队列,按序号小的站。给出要查询的人的序号,要求输出该人结束服务的时间。如果顾客开始服务的时间晚于17:00,则输出Sorry。思路银行排队问题,根据题目模拟。先考虑数据结构,根据题目很容易想出队列,这里我直接用m行n
- Flask、Tornado
本咸鱼也有梦想啦
Web后端
文章目录flaskflask响应flask请求蓝图TornadoTornado环境搭建Tornado中的响应方式Tornado中的请求的操作用Tornado实现WebSocket服务器的搭建flask相比django更轻量级支持wsgi协议flask响应1、直接return一个字符串(可以是HTML代码)2、跳转到一个模板页面render_template3、重定向到一个路由中redirectfl
- 机器学习算法(八):基于BP神经网络的乳腺癌的分类预测
墨枣
机器学习算法神经网络分类人工智能
机器学习算法(八):基于BP神经网络的乳腺癌的分类预测本项目链接:https://www.heywhale.com/home/column/64141d6b1c8c8b518ba97dcc1.算法简介和应用1.1算法简介BP(BackPropagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经
- MySQL学习笔记(8)--连接查询
绿皮豚二号
MySQLmysql数据库
·概念将多张表连在一起查询(会导致记录数行和字段数列发生改变)意义:在关系型数据库设计过程中,实体与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一,一对多,多对多。通常在实际操作中,需要利用这层关系来保证数据的完整性。·交叉连接将两张表的数据与另外一张表彼此交叉(笛卡尔积)表1crossjoin表2--实例select*frommy_studentcrossjoi
- 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