- day15|前端框架学习和算法
universe_01
前端算法笔记
T22括号生成先把所有情况都画出来,然后(在满足什么情况下)把不符合条件的删除。T78子集要画树状图,把思路清晰。可以用暴力法、回溯法和DFS做这个题DFS深度搜索:每个边都走完,再回溯应用:二叉树搜索,图搜索回溯算法=DFS+剪枝T200岛屿数量(非常经典BFS宽度把树状转化成队列形式,lambda匿名函数“一次性的小函数,没有名字”setup语法糖:让代码更简洁好写的语法ref创建:基本类型的
- 图论算法经典题目解析:DFS、BFS与拓扑排序实战
周童學
数据结构与算法深度优先算法图论
图论算法经典题目解析:DFS、BFS与拓扑排序实战图论问题是算法面试中的高频考点,本博客将通过四道LeetCode经典题目(均来自"Top100Liked"题库),深入讲解图论的核心算法思想和实现技巧。涵盖DFS、BFS、拓扑排序和前缀树等知识点,每道题配有Java实现和易错点分析。1.岛屿数量(DFS遍历)问题描述给定一个由'1'(陆地)和'0'(水)组成的二维网格,计算岛屿的数量。岛屿由水平或
- 力扣刷题记录 238. 除自身以外数组的乘积
lovfam
leetcode算法数据结构
题目描述:给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例:输入:nums=[1,2,3,4]输出:[24,12,8,6]误区:看到这个题目第一个映入脑子的就是把总的乘积分情况(数组中存在
- SQL97 验证刷题效果,输出题目真实通过率
折翼的恶魔
MYSQL数据库
牛客刷题记录表`done_questions_record`,为验证重复刷题率,输出题目通过率(哪些题目被通过了,这个人你一共刷题的题目)question_pass_rate60%的用户的提交正确率pass_rate与每题目平均提交次数question_per_cnt。result_info'是否通过,1:通过;0:不通过',查询返回结果名称和顺序user_idquestion_pass_rate
- Nvivo20 中文版安装包免费下载附详细安装教程|Nvivo20软件下载
[下载通道]:迅雷网盘[下载链接]:点击高速下载https://pan.xunlei.com/s/VOWJoryt_BBFsPixpPJxB1f0A1?pwd=5cei#⚠️:先用手机下载迅雷网盘保存到手机中,再用电脑登录下载,否则下载后文件容易报错❗保存的朋友点赞支持一下❗更多免费软件,影视,歌曲,游戏点这里https://docs.qq.com/sheet/DRkdWVFFCWm9UeGJP?
- Stm32中USB 对时钟的要求
lixzest
stm32单片机嵌入式硬件
1.USB对时钟的要求USB外设通常需要精确的48MHz时钟(全速USBFS模式),这个时钟可以由以下方式提供:HSI48(内部48MHzRC振荡器)PLL(锁相环,例如从HSI/HSE倍频得到48MHz)外部晶振(HSE+PLL分频/倍频)如果你的USB驱动需要使用内部RC振荡器(而不是外部晶振),那么HSI48必须启用,否则USB无法正常工作。2.当前配置的分析RCC_OscInitStruc
- ZooKeeper在Hadoop中的协同应用:从NameNode选主到分布式锁实现
码字的字节
hadoop布道师分布式zookeeperhadoop分布式锁
Hadoop与ZooKeeper概述Hadoop与ZooKeeper在大数据生态系统中的核心位置和交互关系Hadoop的架构与核心组件作为大数据处理的基石,Hadoop生态系统由多个关键组件构成。其核心架构主要包含HDFS(HadoopDistributedFileSystem)和YARN(YetAnotherResourceNegotiator)两大模块。HDFS采用主从架构设计,由NameNo
- 洛谷刷题记录:2025-1-13
Ceasteo
算法学习/刷题算法c++python
为了加深做过的题的印象和防止以后看到这题却忘记当时是怎么想的,做个记录,大多为最近做过的入门题单的题P1321单词覆盖还原链接P1321单词覆盖还原-洛谷|计算机科学教育新生态题目描述我有一个长度为lll的字符串,最开始时,这个字符串由lll个句号(.)组成。我在这个字符串中,将多次把boy或者girl两单词,依次贴到这个字符串中。后贴上单词,会覆盖之前贴上的单词,或者覆盖句号。最终,每个单词至少
- 算法入门:BFS与DFS详解(C++实现)
Jay_515
算法算法
深度优先与广度优先是算法世界的两大基石,掌握它们如同获得探索算法宇宙的钥匙一、初识BFS与DFS什么是BFS和DFS?BFS(广度优先搜索):逐层遍历数据结构,先访问离起点最近的节点DFS(深度优先搜索):沿着分支深入到底部,再回溯探索其他分支核心应用场景算法典型应用场景BFS最短路径问题、社交网络好友推荐、连通块分析DFS路径存在性判断、拓扑排序、解决回溯问题、图连通性检测二、BFS算法详解算法
- HDFS常用命令
BenChuat
大数据学习hdfshadoop大数据
常用命令说明:-put和-get:上传和下载文件,是HDFS和本地文件系统交互的关键命令。-rm和-mkdir:删除和创建文件/目录,-rm支持递归删除。-ls和-cat:文件查看操作中最常用的命令,分别用于列出文件和查看内容。权限管理:通过-chmod、-chown和-chgrp命令对HDFS文件的权限、所有者和所属组进行管理。检查文件状态:通过-stat和-checksum命令,可以查看文件的
- Hadoop中MapReduce和Yarn相关内容详解
接上一章写的HDFS说,Hadoop是一个适合海量数据的分布式存储和分布式计算的一个平台,上一章介绍了分布式存储,这一章介绍一下分布式计算——MapReduce。一、MapReduce设计理念map——>映射Reduce——>归纳mapreduce是一种必须构建在hadoop之上的大数据离线计算框架。因为mapreduce是给予磁盘IO来计算存储文件的,所以它具有一定的延时性,因此一般用来处理离线
- C++ BFS实例:从入门到实战
KENYCHEN奉孝
C++c++开发语言ai
基于C++的BFS(广度优先搜索)实例以下是基于C++的BFS(广度优先搜索)实例,涵盖常见应用场景,包括图遍历、最短路径、矩阵搜索等。每个例子均包含核心代码片段和关键思路说明。基本BFS框架模板#include#include#includeusingnamespacestd;voidbfs(vector>&graph,intstart){queueq;unordered_setvisited;
- 【优选算法】BFS解决FloodFill算法
目录FloodFill算法简介一、[图像渲染](https://leetcode.cn/problems/flood-fill/description/)二、[岛屿数量](https://leetcode.cn/problems/number-of-islands/description/)三、[岛屿的最大面积](https://leetcode.cn/problems/max-area-of-i
- 226. 翻转二叉树
bbruyew
力扣刷题数据结构算法深度优先leetcodec语言
题目给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。解题思路DFS广度有限搜索层序遍历二叉树,遍历过程中交换左右子树代码/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*//*DFS广度有限搜索层序遍历二叉树,遍历过程中交换左
- 111. 二叉树的最小深度
题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。解题思路BFS广度优先算法:使用队列进行层序遍历,自上而下、逐层地探索树的结构。一旦发现第一个叶子节点,立即返回当前深度作为最小深度。代码/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTre
- 大数据领域Hadoop集群搭建的详细步骤
AI天才研究院
ChatGPT实战ChatGPTAI大模型应用入门实战与进阶大数据hadoop分布式ai
大数据领域Hadoop集群搭建的详细步骤关键词:Hadoop集群、HDFS、YARN、大数据平台、分布式系统、集群配置、故障排查摘要:Hadoop作为大数据领域的基石框架,其集群搭建是数据工程师和运维人员的核心技能。本文从Hadoop核心架构出发,结合生产环境实践,详细讲解从环境准备、配置文件调优到集群启动验证的全流程,并涵盖常见问题排查与最佳实践。无论你是初学者还是需要优化现有集群的工程师,本文
- 代码随想录算法训练营第五十八天 | 图论part08
sagen aller
算法图论
117.软件构建在这一题中,只需要输出一种方法。使用BFS的方法,找到入度为0的节点,将其从树中删去,重复上述步骤,直到没有入度为0的节点。如果此时没有删除所有的节点,表明这个有向图有环,输出-1.否则,正常输出。#include#include#include#include#includeusingnamespacestd;intmain(){intn,m;ints,t;ifstreaminf
- FastDFS
FastDFS是分布式文件系统,使用FastDFS很容易搭建一套高性能的文件服务器集群提高文件上传、下载服务内部架构FastDFS架构包括Trackerserver和StorageserverStorageserver:文件存储服务器通过组,拓展文件存储容类,各个组通过集群解决单点故障Trackerserver:追踪调度服务器监控各个Storageserver,调度存储服务文件存储到Storage
- 代码随想录算法训练营第五十三天|图论part4
xindafu
图论
110.字符串接龙题目链接:110.字符串接龙文章讲解:代码随想录思路:把每个字符串看成图的一个节点。转换为求无权图两节点的的最短路径。求最短路径用bfs#include#include#include#include#includeusingnamespacestd;unordered_mapmymap;boolcanTransform(stringa,stringb){intcount=0;i
- P1019 [NOIP2000 提高组] 单词接龙c++
Charon.778
刷题记录c++深度优先算法
#includeusingnamespacestd;intn;stringarr[21];intvis[21];intmaxn;voiddfs(stringa,intx){maxn=max(maxn,x);//取最大值for(inti=1;i>n;for(inti=1;i>arr[i];}chart;cin>>t;for(inti=1;i<=n;i++){if(arr[i][0]==t){//寻找
- 题解 -- # P1019 [NOIP2000 提高组] 单词接龙
CaoGenJY
洛谷题解深度优先算法
题解–#P1019[NOIP2000提高组]单词接龙题目传送门典型搜索题,首先从每一个能够接在起始字母后面的单词开始dfs,每一次dfs尝试拼接所有能与其相接的单词(每个单词最多用两遍),然后继续dfs难点在如何拼接两个单词。对于两个单词xxx和yyy,枚举两个单词相同部分的长度,注意题目中说两个单词不能有包含关系,所以枚举的长度应该是小于min(x.length(),y.length())的,然
- 力扣刷题记录-第四题-合并两个有序链表
一.题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50]-100<=Node.val<=100l1和l2均按非递减顺序排列二.解题
- 算法日记 42 day 图论
橘子遇见BUG
算法日记算法图论
今天来看看广度优先搜索,并且写几个题。刷到这里我才想起来,当时第一次面试的时候问的就是这个题,当时大概知道一点思路,但不清楚是图论方面的,更别说写出来了。广度优先搜索(BFS)不同于深度优先,广度优先讲究的是先遍历完一层,在遍历下一层,就这转圈圈,直到遍历完所有。就像这样那么对于广搜的写法来说,不管是队列,栈,或者数组都可以。不过方便遍历,大多使用的是队列,接下来的题目我也使用队列。那么广搜的代码
- Hive/Spark小文件解决方案(企业级实战)–参数和SQL优化
陆水A
大数据hivehadoopsparkpython
重点是后面的参数优化一、小文件的定义在Hadoop的上下文中,小文件的定义是相对于Hadoop分布式文件系统(HDFS)的块(Block)大小而言的。HDFS是Hadoop生态系统中的核心组件之一,它设计用于存储和处理大规模数据集。在HDFS中,数据被分割成多个块,每个块的大小是固定的,这个大小在Hadoop的不同版本和配置中可能有所不同,但常见的默认块大小包括128MB、256MB等。基于这个背
- 【图论】倍增与lca
arin876
图论算法
voiddfs(longu,longfather){dep[u]=dep[father]+1;//只在这里初始化depfor(longi=1;(1=0;i--){//跳到同一个深度if(dep[fa[x][i]]>=dep[y])x=fa[x][i];if(x==y)returnx;}for(inti=20;i>=0;i--){if(fa[x][i]!=fa[y][i]){//一起跳x=fa[x]
- C++与Hive、Spark、libhdfs、ACID交互技巧
KENYCHEN奉孝
C++开发语言springC++hivespark
C++与Hive交互的实例以下是C++与Hive交互的实例代码片段,涵盖连接、查询、数据操作等常见场景。假设使用libhdfs或thrift接口实现,部分示例需要结合Hive环境配置。基础连接与查询示例1:通过Thrift连接HiveServer2#include#include#includeusingnamespaceapache::thrift;usingnamespaceapache::h
- 【c++】200*200 01灰度矩阵求所有的连通区域坐标集合
聿默
#c++c++矩阵深度优先
1.题目题目要求:给定一个200x200的01灰度矩阵,求所有的连通区域坐标集合。连通区域:相邻的1(上下左右,或者也可以包括对角线,这里通常使用4连通或8连通)。这里我们假设使用4连通(上下左右)即可,但题目没有明确,我们可以先按4连通实现,如果需要8连通可以稍作修改。2.算法思想算法思想:使用深度优先搜索(DFS)或广度优先搜索(BFS)来遍历每个连通区域。由于矩阵大小为200x200,DFS
- LeetCode | 0994. Rotting Oranges腐烂的橘子【Python】
Wonz
LeetCode0994.RottingOranges腐烂的橘子【Easy】【Python】【BFS】ProblemLeetCodeInagivengrid,eachcellcanhaveoneofthreevalues:thevalue0representinganemptycell;thevalue1representingafreshorange;thevalue2representinga
- 蓝桥杯竞赛向(C/C++语言)之博主掌握不太好的算法篇(DFS)
CAU界编程小白
蓝桥杯篇深度优先算法蓝桥杯
大纲1.DFS回溯剪枝(刚好博主也在剪枝)2.字符串相关算法KMPmanacher字符串哈希字典树01trie树(这么多感觉要趋势了)下次一定(也有可能去更新14届蓝桥杯A组真题)//会带一点AC自动机但是不会讲因为我不会蓝桥几乎不会考(看水的字数博主沉淀了几天(回来更新了,估计可能只能讲个搜索了,字符串东西很多,下次讲,主要讲搜索的原因是什么捏,(博主刷了一会题,发现搜索做的真的很不好…需要多刷
- 代码随想录算法训练营第五十天|图论part1
xindafu
算法图论c语言
98.所有可达路径题目链接:98.所有可达路径文章讲解:代码随想录输入输出格式:头文件#includecin>>x;(给x,所以是向着x的)cout#includeusingnamespacestd;vector>ans;vectorpath;voiddfs(vector>graph,intstart,intend){if(start==end){//终止条件ans.push_back(path)
- 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