- Java创造型模式之原型模式详解
菜就多练少说
设计模式java开发语言
设计模式是面向对象设计中的一种标准方法,用于解决常见的设计问题。原型设计模式(PrototypePattern)是23种经典设计模式之一,属于创建型模式,它允许通过复制现有对象来创建新对象,而不是通过构造函数或工厂方法来创建。这样,开发者可以在运行时通过复制原型对象来快速生成新的对象,极大地提高了程序的灵活性和性能。本文将深入讲解Java中的原型设计模式,解释其概念、使用场景、以及如何在Java中
- Java JDK代理、CGLIB、AspectJ代理分析比较
骚年编程去
JAVA之美springjavaaop动态代理ASPECTJ
前言什么是代理,在DesignpatternsInjava这个本书中是这样描述的,简单的说就是为某个对象提供一个代理,以控制对这个对象的访问。在不修改源代码的基础上做方法增强,代理是一种设计模式,又简单的分为两种。静态代理:代理类和委托类在代码运行前关系就确定了,也就是说在代理类的代码一开始就已经存在了。动态代理:动态代理类的字节码在程序运行时的时候生成。静态代理先来看一个静态代理的例子,Calc
- Spring Boot - Spring Boot 静态资源映射(默认静态资源映射、自定义静态资源映射)
我命由我12345
Java-简化库与框架编程springboot后端javajava-eespringintellij-ideaintellijidea
一、静态资源映射在SpringBoot中,静态资源的映射是指将特定的URL路径与静态资源关联起来静态资源有例如,HTML、CSS、JS、图片等这使得客户端可以通过URL路径访问这些资源二、默认静态资源映射概述SpringBoot默认会将以下目录中的文件映射为静态资源classpath:/static/classpath:/public/classpath:/resources/classpath:
- Python的路径pathlib库
活跃家族
python开发语言
1、读取文件默认只会从当前代码操作文件的目录下读取文件。找不到就会报错。解决方式:1、方式一:绝对路径是指:电脑里从根目录开始的一个完整的路径--不推荐注意事项:路径特殊符号\t一定要转义在路径前面加一个r绝对路径弊端:1)移植给其他人电脑上用,文件前面的目录不对,要手动修改。2)\/不同平台路径分隔符不一样,绝对路径不能兼容不同平台。2、相对路径:不会写死每一级的路径,相对层级管理,找文件路径借
- 使用独立Ironpython 脚本运行Ansys electronics进行建模(二)————脚本自动打开项目并自动运行
加点油。。。。
Ironpython电机建模python自动化
参考文档官方文档——Maxwellhelp—2022R1官方文档——MaxwellScriptingGuide代码实现功能通过Pycharm运行脚本,来自动打开已有程序,进行运行importsyssys.path.append(r"F:\ProgramFiles\AnsysEM\v221\Win64")sys.path.append(r"F:\ProgramFiles\AnsysEM\v221\W
- python的导包使用
power_kai
python
1、查看文件的创建时间importtimeimportosprint(time.localtime(os.path.getatime('E:\\a.txt')))2、查看文件的修改时间print(time.localtime(os.path.getmtime('E:\\a.txt')))3、pickle数据转换模块,这个写入的文件是一个二进制文件,普通文本编辑器打开是乱码importpickle#
- python 导包
amaicsdn
python
__init__.pyisneededunderthepackagewhereyouwanttoputyourownpyfilesorthisdirectorywontberecongnisedasapythonpackage__init__.pycanbeemptyfileusefillpathyoucanaccessthedefinedmethodmethodunder__init__.pyc
- linux环境下快速输出电脑的系统/硬件/显卡/网络/已安装软件等信息
Tipriest_
Ubuntulinux电脑网络信息输出
在Linux环境下,可以通过以下命令快速获取系统和硬件信息。最后将这些命令整合成一个脚本(如`sysinfo.sh``),一键输出所有信息。1.系统信息#内核信息uname-a#发行版信息lsb_release-a2>/dev/null||cat/etc/*release*#系统启动时间uptime#环境变量echo"PATH:$PATH"2.硬件信息#CPU信息lscpucat/proc/cpu
- 【异常】 The engine “node“ is incompatible with this module. Expected version “^14.18.0 || >=16.0.0“.
本本本添哥
007-大前端技术前端yarnnpm
一、报错内容二、报错说明这个错误提示表示你的Node.js版本与该模块不兼容。三、报错解决3.1使用cnpm来安装cnpminstall3.2将Node.js版本升级到14.18.0或更高版本需要将Node.js版本升级到14.18.0或更高版本,或者降级到16.0.0或更高版本。你可以通过以下命令查看当前Node.js版本:node-v如果你需要升级或降级Node.js版本,可以访问Node.j
- 单例模式详解:实现方法、优缺点及应用场景
技术拾光者
设计模式单例模式java设计模式
在软件设计中,单例模式(SingletonPattern)是一种常用的设计模式。它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。单例模式在许多场景中都有广泛的应用,例如日志记录器、配置管理器、线程池等。本文将详细介绍单例模式的定义、实现方法、优缺点以及应用场景,并通过代码示例帮助你更好地理解和应用这一设计模式。单例模式是一种创建型设计模式,其核心思想是确保一个类只有一个实例,并提供一个
- 设计模式详解:提高代码复用性与可维护性的关键
誰能久伴不乏
设计模式
文章目录设计模式详解:提高代码复用性与可维护性的关键1.设计模式的分类2.创建型设计模式2.1单例模式(SingletonPattern)工作原理:代码示例:线程安全:2.2工厂方法模式(FactoryMethodPattern)工作原理:代码示例:适用场景:2.3抽象工厂模式(AbstractFactoryPattern)工作原理:代码示例:适用场景:2.4建造者模式(BuilderPatter
- Unity 设计模式-单例模式(Singleton)详解
白茶等风12138
Unity设计模式单例模式设计模式
设计模式设计模式是指在软件开发中为解决常见问题而总结出的一套可复用的解决方案。这些模式是经过长期实践证明有效的编程经验总结,并可以在不同的项目中复用。设计模式并不是代码片段,而是对常见问题的抽象解决方案,它提供了代码结构和模块间交互的一种设计思路,帮助开发者解决特定的设计问题。设计模式总共有23种,总体来说可以分为三大类:创建型模式(CreationalPatterns)、结构型模式(Struct
- 设计模式详解(十二):单例模式——Singleton
jungle_pig
单例模式设计模式android
什么是单例模式单例模式(SingletonPattern)是一种常见的设计模式,用于确保一个类在整个应用程序运行期间只有一个实例,并提供全局访问点。本文将详细介绍单例模式的定义、实现方式、优缺点,以及Android源码中的使用实例,配以图解与注释。单例模式的核心目标是:唯一性:确保类只有一个实例。全局访问:提供对该实例的全局访问。UML类图以下是单例模式的UML类图:Singleton-stati
- 批量将将xlsx转为csv,将csv转为csv utf-8
Znnjcidmslz
数据pythonpandas
csv转换为csvutf-8将csv格式文件批量转换为csvutf-8格式文件,以下为使用Python处理的代码:importosimportpandasaspd#存有文件的路径current_path=os.getcwd()#current_path=os.path.dirname('G:/weather_output2')#转换之后存放的路径为“UTF8”,会检查当前路径是否有,没有就创建ut
- 桥接模式:解耦抽象与实现的利器
wrx繁星点点
#设计模式javaandroid开发语言桥接模式intellij-ideaspringcloudjvm
1.引言在软件设计中,将抽象与实现分离是一项重要的原则。若将这两者耦合在一起,系统的灵活性和可扩展性将受到限制。桥接模式(BridgePattern)是一种结构型设计模式,旨在通过分离抽象与具体实现,来提高系统的灵活性和可维护性。2.桥接模式的定义桥接模式通过将抽象部分与具体实现部分分离,使得两者可以独立变化。它使用组合的方式,通过引入桥接接口来减少二者之间的耦合,灵活地调整和扩展系统的功能。3.
- 桥接模式:解耦抽象与实现的设计良方
技术拾光者
设计模式java设计模式桥接模式
桥接模式(BridgePattern)是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式的主要目的是解决多维度变化带来的复杂性问题,使代码更具扩展性和可维护性。桥接模式通过提供一个抽象层,将抽象部分与具体实现部分分离。这样,抽象部分和实现部分可以独立地扩展,而不会相互影响。一,模式结构桥接模式的结构包括以下几个部分:抽象类(Abstraction):定义抽象接口,并
- 探索现代Android开发的杰作:基于Kotlin的MVVM应用
郁楠烈Hubert
探索现代Android开发的杰作:基于Kotlin的MVVM应用kotlin-mvvm-hilt-flow-appKotlinfirstappusingCleanArchitecturewithMVVMpatternalongwithAndroidArchitectureComponentssuchasLiveData,ViewModel,NavigationandidiomaticKotlinu
- 结构型模式之桥接模式:解耦抽象和实现
菜就多练少说
设计模式桥接模式java网络
在面向对象设计中,我们经常遇到需要扩展某些功能,但又不能修改现有代码的情况。为了避免继承带来的复杂性和维护难度,桥接模式(BridgePattern)应运而生。桥接模式是一种结构型设计模式,旨在解耦抽象部分和实现部分,使得两者可以独立变化。通过桥接模式,可以避免由于功能扩展而导致的类爆炸问题。本文将详细介绍桥接模式,讲解其概念、应用场景、优缺点,并通过Java代码示例帮助大家理解如何在实际开发中使
- lxml模块的学习
bad kid's cute
lxml模块lxml模块python爬虫
1.lxml的认识在前面学习了xpath的语法,那么在代码中我们如何使用xpath呢,对应的我们需要lxm博文链接:xpath和lxml类库安装方式:pipinstalllxml2.lxml的使用1.导入lxml的etree库(导入没有提示不代表不能用)fromlxmlimportetree2.利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回
- 实现组件裁剪鸿蒙示例代码
本文原创发布在华为开发者社区。介绍对Image组件设置clipShape属性,并通过PathShape传入不同的裁剪命令,将Image组件裁剪为不同形状。使用Path组件,通过设置commands属性,并传入不同的绘制命令,绘制出带圆角的不同形状的组件。实现组件裁剪源码链接效果预览使用说明安装到手机后点击应用图标即可进入本应用。点击不同按钮,查看clipShape裁剪组件和Path绘制圆角形状组件
- Java高级常用类
星星不打輰
Javajava开发语言
LocalDateTime,StringBuilder,BigDecimalLocalDateTime使用(通过这个类创建一个日期时间的实例对象)//LocalDate-->日期//LocalTime-->时间//LocalDateTime-->日期和时间对于日期时间进行格式化输出:DateTimeFormatter.ofPattern(“指定的格式”)y表示年份,M表示月份,d表示日期,H表示小
- 假设arr是一个int型数组,为什么int (*p)[4]=arr报错initialization of ‘int (*)[4]‘ from incompatible pointer type ‘i‘
freshman_y
C/C++c语言c++
数组名在大多数情况下会退化为指向其首元素的指针。一维数组会退化指向数组第一个元素的地址,二维数组会退化指向第一行的指针。目录一、一维数组1.数组名的类型2.int(*p)[4]的类型3.错误原因分析4.正确写法如下二、二维数组1.二维数组实质2.数组名的退化规则3.退化目的:简化多维访问4.示例代码:一、一维数组1.数组名的类型假设arr声明为:intarr[N];//N是数组长度,例如N=4数组
- 设计模式之外观模式:原理、实现与应用
wenbin_java
设计模式外观模式
引言外观模式(FacadePattern)是一种结构型设计模式,它通过提供一个统一的接口来简化复杂系统的使用。外观模式隐藏了系统的复杂性,使得客户端可以通过一个简单的接口与系统交互。本文将深入探讨外观模式的原理、实现方式以及实际应用场景,帮助你更好地理解和使用这一设计模式。1.外观模式的核心概念1.1什么是外观模式?外观模式是一种结构型设计模式,它通过提供一个统一的接口来简化复杂系统的使用。外观模
- Maven 插件
先睡
mavenjava
为Maven插件配置环境变量通常涉及到设置Java环境变量以及Maven相关的环境变量。以下是一些基本步骤:1.设置Java环境变量Maven需要Java运行环境,因此您需要确保Java的环境变量已经正确设置。-**JAVA_HOME**:指向您的Java安装目录。-**PATH**:包含`%JAVA_HOME%\bin`,使得`java`和`javac`命令可以在命令行中直接使用。在Window
- 详细的讲一下Vite 在 Vue3 项目中最常用和最重要的配置项
asecretman!
vue.jsjavascript前端
Vite在Vue3中的配置详解基础配置结构首先让我们看一个基础的Vite配置文件结构:import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'importpathfrom'path'exportdefaultdefineConfig({//配置项})详细配置项解析1.基础路径配置(base)exportdefaultdefine
- Hadoop MapReduce 词频统计(WordCount)代码解析教程
我不是少爷.
Java基础hadoopmapreduce大数据
一、概述这是一个基于HadoopMapReduce框架实现的经典词频统计程序。程序会统计输入文本中每个单词出现的次数,并将结果输出到HDFS文件系统。二、代码结构packagecom.bigdata.wc;//Hadoop核心类库导入importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;//数据类型定义
- docker容器导出导入
大得369
docker容器运维
第一种,导出在运作中的容器dockerexport-o/path/to/exported_container.tar使用这个导入dockerimport/path/to/exported_container.tarnew_image_name:tag导出不是在运行中的,和导入导出在运行中的,和导入宝塔直接点导出的使用这一种导入dockerload-i容器.tar
- 在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库
乙龙
kylinubuntulinux运维kylin
在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库,可以按照以下步骤操作:步骤1:准备依赖工具#安装生成仓库元数据的工具sudoapt-getinstalldpkg-dev步骤2:收集所有需要的DEB包将离线环境所需的.deb软件包(包括依赖包)复制到一个目录中,例如:sudomkdir-p/var/my-repocp/path/to/debs/*.deb/var/my-
- 安装gdal
whyguu
gdal地理信息gdal
在ubuntu下直接安装apt-getinstalllibgdal-devexportCPLUS_INCLUDE_PATH=/usr/include/gdal/exportC_INCLUDE_PATH=/usr/include/gdal/pipinstallGDAL==1.11.2目前pipinstallGDAL会出错,必须加上==1.11.2。至于==1.11.3之类的没试过。够用万岁。虚拟环境
- 注意力机制+多尺度卷积
一只小小的土拨鼠
解构前沿:文献精读深度学习python人工智能YOLO深度学习
多尺度卷积先提供丰富的特征信息,注意力机制再从中筛选出关键信息,这样结合起来,不仅可以进一步提高模型的识别精度和效率,显著提升模型性能,还可以增强模型的可解释性。MPARN:multi-scalepathattentionresidualnetworkforfaultdiagnosisofrotatingmachines方法:论文介绍了一种用于旋转机械故障诊断的多尺度卷积神经网络结构,称为多尺度路
- 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