- C# 性能测试程序及编写要点
Rondapapi
c#性能测试要点
直接看程序:classTiming{TimeSpantimestart;TimeSpanduration;publicvoidStart(){GC.Collect();GC.WaitForPendingFinalizers();timestart=Process.GetCurrentProcess().TotalProcessorTime;}publicvoidStop(){duration=Pr
- DeepSeek的实用方法DeepSeek+kimi生成PPT
C_V_Better
AI人工智能人工智能pptai
在人工智能领域,DeepSeek和KimiAI作为强大的语言模型,为开发者和普通用户提供了丰富的功能。本文将详细介绍DeepSeek的实用方法,以及如何结合KimiAI生成PPT,帮助您快速上手并发挥其强大能力。一、DeepSeek的使用方法(一)注册与登录访问官网:打开浏览器,输入DeepSeek官网。注册账号:点击“注册”按钮,填写邮箱地址、设置密码,并完成邮箱验证。登录:注册成功后,使用注册
- 深度优先探索
^O^凡人多烦事
深度优先算法
DFS:时间复杂度:一位数组:O(n)二维数组+标记:O(n^2),有时候还可能使O(2^n),总而言之DFS的时间复杂度比较高。(个人认为)深度优先搜索算法(DFS)原理:深度优先搜索(DepthFirstSearch,DFS)是一种用于遍历或搜索树或图的算法。该方法从根节点(选择任意一个顶点作为起始节点,在无向图中适用)开始,尽可能深地沿着每条分支进行探索直到不能再前进为止;之后回退并重复这一
- java list如何让指定元素排在第一位
C_V_Better
javajavalist
可以通过以下几种方式实现:一、使用List的方法实现方法1:使用add(0,element)和remove()获取指定元素的索引。将该元素从当前位置移除。使用add(0,element)方法将其插入到第一位。示例代码:importjava.util.ArrayList;importjava.util.List;publicclassMain{publicstaticvoidmain(String[
- Django框架全面指南
ivwdcwso
开发djangosqlite数据库
Django是一个高级的PythonWeb框架,它鼓励快速开发和清晰、实用的设计。本指南将全面介绍Django的核心概念和使用方法。1.Django简介Django遵循"batteriesincluded"哲学,提供了Web开发所需的几乎所有功能。它的主要特点包括:ORM(对象关系映射)URL路由模板引擎表单处理认证系统管理界面安全特性2.安装和项目设置安装Djangopipinstalldjan
- Web开发中的可专利性分析:透过一个案例学习
CodePatentMaster
前端学习
Web开发工程师在创新过程中经常面临是否能申请专利并获得专利权的问题。本文通过一个详细的Web开发领域案例来阐释可专利性的分析过程。案例分析假设您是一名Web开发工程师,您开发了一种名为“动态响应式前端框架”(DynamicResponsiveFrontendFramework,DRFF)的新型前端框架。与传统前端框架相比,DRFF通过引入一种基于AI的组件化设计方法和实时数据流处理机制,显著提高
- 遍历HashMap,有6种方式,你学会了没?
程序员猫哥
pythonjava开发语言
在Java中,有多种方式可以遍历HashMap,下面为你详细介绍几种常见的遍历方法。1,使用keySet()遍历键,再通过键获取值创建一个HashMap对象,并向其中添加一些键值对。使用map.keySet()方法获取HashMap中所有键的集合。通过for-each循环遍历这个键的集合。在循环体中,使用map.get(key)方法根据当前键获取对应的值,并将键和值打印输出。packagecom.
- 前端 window.print() 打印图片
BillKu
前端
在使用document.write时,确保内容加载完成后再执行其他操作(如print),可以通过以下方法实现:1.使用window.onload事件window.onload事件会在页面所有资源(包括图片、脚本等)加载完成后触发。javascript复制window.onload=function(){document.write("页面已加载完成");window.print();//确保内容加
- vue3中<el-table-column>状态的显示
BillKu
vue.jselementuijavascript
方法1:使用作用域插槽+标签{{row.status===1?'启用':'禁用'}}consttableData=[{id:1,name:'数据1',status:1},{id:2,name:'数据2',status:0},//...]方法2:使用formatter格式化显示conststatusFormatter=(row)=>{returnrow.status===1?'启用':'禁用'}自定
- 合作伙伴中心Partner Center中添加了Copilot预览版
xueyunshengling
微软合作伙伴计划合作伙伴中心copilotCopilot预览版
目录一、引言二、Copilot功能概述2.1Copilot简介2.2Copilot的核心功能2.3Copilot的访问和使用三、Copilot的使用方法3.1Copilot功能区域3.2Copilot使用示例3.2.1编写有效提示3.2.2使用反馈循环四、负责任的人工智能4.1Copilot结果的可靠性4.2意外或冒犯性内容的处理4.3Copilot数据收集五、总结一、引言合作伙伴中心(预览版)中
- 使用 Docker 部署 Apache Spark 集群教程
努力的小T
dockerdockersparklinux运维服务器云计算容器
简介ApacheSpark是一个强大的统一分析引擎,用于大规模数据处理。本文将详细介绍如何使用Docker和DockerCompose快速部署一个包含一个Master节点和两个Worker节点的Spark集群。这种方法不仅简化了集群的搭建过程,还提供了资源隔离、易于扩展等优势。前置条件在开始之前,请确保你的环境中已经准备好了以下组件:安装并运行DockerEngine。安装DockerCompos
- Vue学习教程-11数组变化监测
番茄番茄君
vue.js学习javascript
文章目录前言一、vue侦听响应数组变更方法二、使用Vue.set或者this.$set三、替换数组总结前言在Vue中,数组变化监测是其响应式系统的一个重要特性。Vue2.x版本中,当使用Vue.set或者this.$set,或者在初始化时就声明好数组的每个元素或者调用数组方法,可以确保数组的变更能够被Vue检测到并触发视图的更新。然而,在某些情况下,直接通过索引修改数组元素,例如array[ind
- 从0开始到华五复试 字符串
DitanZ
算法数据结构
344.反转字符串-力扣(LeetCode)字符串本质就是数组,采用双指针的方法,一个在前一个在后即可,不断交换。而还有一个点是,字符串有奇数偶数的情况,我们可以用一个i&s){for(inti=0,j=s.size()-1;i
- c/c++蓝桥杯经典编程题100道(22)最短路径问题
tamak
算法数据结构图论c语言c++蓝桥杯
最短路径问题->返回c/c++蓝桥杯经典编程题100道-目录目录最短路径问题一、题型解释二、例题问题描述三、C语言实现解法1:Dijkstra算法(正权图,难度★★)解法2:Bellman-Ford算法(含负权边,难度★★★)四、C++实现解法1:Dijkstra算法(优先队列优化,难度★★☆)解法2:Floyd-Warshall算法(多源最短路径,难度★★★)五、总结对比表六、特殊方法与内置函数
- Java(JavaEE)学习线路图
太阳上的雨天
JAVAJAVA
Java学习线路图Java教程Java教程Java简介Java开发环境配置Java基础语法Java对象和类Java基本数据类型Java变量类型Java修饰符Java运算符Java循环结构Java分支结构JavaNumber类JavaCharacter类JavaString类JavaStringBuffer和StringBuilder类Java数组Java日期和时间Java正则表达式Java方法Ja
- React学习笔记04
充气大锤
React学习笔记react.js学习笔记vue.js前端
一、理解组件通信组件通信就是组件间的数据传递,根据组件嵌套关系的不同,有不同的通信方法。在Vue中组件通信是我们组件间传递数据的一种最常用的方法,我们在Vue中使用props来实现父传子,用$emit实现子传父,在React中如何实现呢?1.1、父传子:1、父组件传递数据:在子组件标签身上绑定属性2、子组件接收数据:props的参数functionSon(props){return{props.n
- 设计模式--访问者模式【行为型模式】
码农爱java
设计模式设计模式访问者模式23种设计模式面试原理Java
设计模式的分类我们都知道有23种设计模式,这23种设计模式可分为如下三类:创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设
- 设计模式--代理模式【结构型模式】
码农爱java
设计模式设计模式代理模式23种设计模式面试原理动态代理静态代理
设计模式的分类我们都知道有23种设计模式,这23种设计模式可分为如下三类:创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设
- 设计模式--建造者模式【创建型模式】
码农爱java
设计模式设计模式建造者模式23中设计模式原理面试Java
设计模式的分类我们都知道有23种设计模式,这23种设计模式可分为如下三类:创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设
- linux sudo -i 参数,Linux系统中su、sudo、sudo su、sudo -i命令的用法和区别小结
PixelPuzzlist
linuxsudo-i参数
在Linux系统软件中,因为root的权限过大,一般状况也不应用它。只能在一些独特状况下能选用登陆root实行管理方法每日任务,一般状况下临时性应用root权限多选用su和sudo命令。su命令就是说切换用户的专用工具,如何了解呢?例如人们以一般用户tom登陆的,但是加上用户每日任务,实行useradd,tom用户沒有这一权限,而这一权限刚好由root所有着。解决方案没法有2个,一是撤出tom用户
- 【elasticsearch】reindex 断点续传
infiniteWei
elasticsearchelasticsearch搜索引擎
在进行大规模reindex时,由于数据量庞大或者网络/硬件故障,可能会发生中断。为了确保数据的完整性并支持中断后的续传,Elasticsearch提供了一些方法来实现断点续传。尽管reindex操作本身没有直接的“断点续传”选项,但可以通过一些技巧和配置来模拟这一过程。POST_reindex{"source":{"remote":{"host":"http://远程ip:9200"},"inde
- 【力扣】45.跳跃游戏 II
shaozk_
力扣刷题算法leetcodec++贪心算法
文章目录一问题描述二解决方法1贪心法分析1—反向代码1分析2—正向代码2三总结一问题描述给定长度为n的整数数组nums,每个元素nums[i]代表从索引i向前跳跃的最大长度。初始位置为0,返回达到n-1的最小跳跃次数。(假定数组一定能跳到n-1)45.跳跃游戏II二解决方法1贪心法分析1—反向直接从前往后找到最优的跳跃位置并计算出其所需花费的跳跃次数,并不是很容易(因为无法从判定当前最优位置的下一
- C# 设计模式之中介者模式
鲤籽鲲
C#c#设计模式中介者模式
总目录前言在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊天的话,可能就需要当面才可以了。电话、短信也同样是一个中间平台,有了这个中间平台,每个用户都不要直接依赖与其他用户,只需要
- 海康SDK中NET_DVR_CapturePicture方法截图使用心得概述
Mr1Qian
springbootjavasdkman
前言鉴于实际应用需求,我们需要通过操控云台相机来捕捉其各个角度的图像。原先采用的方法NET_DVR_CaptureJPEGPicture,虽然能够成功截取图片,但所得图片格式为JPEG,这一格式由于采用了有损压缩技术,可能在后续的图像处理工作中影响图像质量。在深入研究了SDK使用手册后,我们发现了一个名为NET_DVR_CapturePicture的方法,它能够截取BMP格式的图片。相较于JPEG
- 《大话设计模式》学习记录
MatthewMao
设计模式c++设计模式
转载地址:1.理论支持1:https://www.cnblogs.com/ygsworld/p/10647954.html2.理论支持2:小菜编程成长记系列-伍迷-博客园前言:设计模式系列是参照IT前辈-程杰编写的《大话设计模式》的内容而来,由于其实现内容是按照依据.NetFramwork的C#来实现的,而我是搞C++,所以我想着用C++的知识将书上相应的例子来实现一遍,不过学习之前,得明确一下:
- pytest--测试的参数化
可爱又迷人的 反派角色
pytest
导言实际测试过程中,测试用例可能需要支持多种场景,可以把场景强相关的部分抽象为参数,通过对参数赋值来驱动用例的执行。参数化对的行为表现在不同的层级上:fixture的参数化测试用例的参数化:使用@pytest.mark.parametrize可以在测试用例、测试类甚至是测试模块中标记多个参数或者fixture的组合也可以通过pytest_generate_tests这个钩子方法自定义参数化的方案。
- 设计模式--中介者模式【行为型模式】
码农爱java
设计模式设计模式中介者模式23种设计模式面试原理Java
设计模式的分类我们都知道有23种设计模式,这23种设计模式可分为如下三类:创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设
- Springboot项目瘦身:将jar包与lib依赖分开打包
William-Yu
笔记springbootjar
方法一:项目和依赖完全分离maven-jar-plugin负责生成jar文件(jar文件中不包含如何依赖),并为jar文件的manifest.mf文件配置相关内容;maven-dependency-plugin插件用于在构建时将项目的运行时依赖项复制到指定目录。部署项目时,生产的jar文件要和lib依赖包在同一目录下。${project.artifactId}org.apache.maven.pl
- 一篇文章搞定《Android布局优化》
小孟来码
Android一篇文章搞定Androidandroid性能优化
------《一篇文章搞定Android布局优化》前言为什么要进行布局优化?Android绘制原理双缓冲机制布局加载原理布局加载优化的一些方法介绍AsyncLayoutInflater方案X2C方案Compose方案一些常规优化手段优化布局层级及复杂度mergeViewStub避免过度绘制前言在使用ViewPager时,如果我们的适配器使用的是Fragment。Android的绘制优化其实可以分为
- Android中Handler的post(Runnable)用法
莫空0000
Android
privateHandlermhandler=newHandler();privatevoidabc(){newThread(newRunnable(){@Overridepublicvoidrun(){try{/*dosomething*///里面执行的事件是被handler放在主线程中执行的,与Run所在线程无关。//.post方法一般用于更新UImhandler.post(newRunnab
- 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