- 设计模式:工厂方法模式(Factory Method)
java
1.什么是工厂方法模式?工厂方法模式是一种创建型设计模式,其核心思想是将对象的创建过程延迟到子类,让子类决定实例化哪个具体类。核心目标:解耦对象的创建逻辑与使用逻辑,提升代码的灵活性和扩展性。关键角色:抽象产品(Product):定义产品的接口。具体产品(ConcreteProduct):实现抽象产品的具体类。抽象工厂(Creator):声明工厂方法(createProduct()),返回抽象产品
- typescript快速入门--面向对象编程
Mr.Lee jack
anyscripttypescriptjavascript前端
typescript面向对象接口interface接口是对象属性,方法的抽象,也可以理解为预定义//使用接口来抽象方法,接口是需要具体去实现的interfaceAnimals{name:string;age:number;eat:(some:string)=>string;}//定义一个类型来具体实现上面的接口,这种情况可以看作是一个json对象来理解varDog:Animals={name:"d
- python保存字典到xml文件_如何将Python字典序列化为XML?
weixin_39725193
使用dicttoxml包将Python字典转换为xml表示形式。首先,安装dicttoxml软件包pip3installdicttoxml创建一个字典对象>>>D1={"name":"Ravi","age":21,"marks":55}现在dicttoxml()从dicttoxml包中导入函数,并使用D1作为参数。该函数返回已编码的字符串作为字典的xml表示形式>>>fromdicttoxmlim
- TypeScript系列01-类型系统全解析
Mr.NickJJ
Typescript系列typescript前端javascript
本文总结了TypeScript的类型系统基础,涵盖了:TypeScript的价值:静态类型检查为JavaScript添加了类型安全保障基本类型系统:从原始类型到特殊类型(any、unknown、never)的完整介绍类型注解与推断:理解何时依赖自动推断,何时显式标注类型类型兼容性:掌握TypeScript结构类型系统的核心规则1.TypeScript介绍1.1与JavaScript的关系TypeS
- Es5 javascript实现继承的5种方式及对应缺点(超详细)
没资格抱怨
JS核心javascript前端
1.原型链原型链作为实现继承的主要方法,其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。简单理解为:将父类构造函数的实例对象作为子类构造函数的原型对象,通过修改原型的方式实现继承另一个引用类型的属性和方法。代码演示:functionParent(name){this.name=name;this.children=["a","b"];}functionChild(){}Child
- [前端笔记——HTML介绍] 3.<head>标签里有什么?
弓早早o_O
前端#前端html
[前端笔记——HTML介绍]3.head标签里有什么?1.标题2.元数据:元素3.在站点增加自定义图标4.HTML中应用CSS和JavaScript5.为文档设定主语言元素的内容不会再浏览器中显示,它的作用是保存页面的一些元数据。接下来介绍几个head中重要的常用元素:1.标题元素可以为文档添加标题。注意和的区别:元素在页面加载完毕时显示在页面中,是为body添加标题的,通常只出现一次,用来标记页
- python:类属性与方法
muxue178
python开发语言
1.类的属性'''类属性:不能用实例化对象对类属性进行修改只类用类对象对其属性进行修改'''classPolice(object):name='警察'Police.name='交通警察'print(Police.name)police=Police()police.name='民警'print(police.name)print(Police.name)运行结果:交通警察民警交通警察即原理是在对类
- 9.1go结构体
chxii
go语言基础golang
Go不是完全面向对象的,没有类的概念,所以结构体应该承担了更多的责任。结构体定义使用type和struct关键字定义:typePersonstruct{NamestringAgeint}字段可以是任意类型,包括其他结构体或指针。字段名以大写开头表示可导出(公开),小写表示私有(仅在包内可见)。实例化方式一:声明变量后赋值varp1Personp1.Name="Alice"p1.Age=30方式二:
- GPO 配置的 4 种常见安全错误及安全优化策略
前端
组策略对象(GPO)是微软ActiveDirectory(AD)的核心功能,使管理员能够管理和保护AD环境。即使是一个被攻陷的账户也可能导致整个组织的安全受损,影响多个用户和系统。因此,解决GPO的安全威胁和漏洞对于维护AD环境的完整性至关重要。一、常见的GPO安全错误以下是管理员常见的GPO安全错误:GPO设置配置错误:不安全或配置不当的GPO可能为攻击者提供直接途径,利用AD环境的漏洞进行攻击
- Node.js学习分享(上)
miraculous111
node.js学习笔记javascript
Node.jsfs文件系统模块fs.readFile()fs.writeFile()path路径模块路径拼接path.join()获取路径中的文件名path.basename()的语法格式获取路径中的文件扩展名path.extname()的语法格式http模块服务器相关概念IP地址域名和域名服务器端口号创建最基本的web服务器创建web服务器的基本步骤request请求对象解决中文乱码问题根据不同
- jQuery学习笔记:属性操作、内容文本值、元素操作、尺寸、位置操作、事件注册与处理、对象拷贝(浅拷贝与深拷贝)、多库共存问题
miraculous111
jquery学习笔记前端
文章目录jQuery属性操作设置或获取元素固有属性值prop()设置或者获取自定义属性值attr()数据缓存data()jQuery内容文本值普通元素内容html()(相当于原生innerHTML)普通元素文本内容text()(相当于原生innerText)表单的val()jQuery元素操作遍历元素语法一:语法二:创建元素添加元素内部添加外部添加删除元素jQuery尺寸、位置操作jQuery尺寸
- 【python数据挖掘之numpy】-数组及对象属性和数据转换
sc.溯琛
python数据挖掘numpy
Numpy是一个Python库,用于处理多维数组和矩阵,以及针对这些数组执行数学运算的函数。它提供了高效的数组对象和相关的操作,可以用于快速处理大量数据。Numpy的主要功能包括:创建数组、数组运算、数组索引和切片、线性代数、随机数生成等。Numpy在科学计算、数据分析、机器学习等领域都广泛应用。tips:(本博文在jupyter中实训)目录一、创建数组对象1.array()函数来创建数组的对象2
- 带你深入了解前端【HTML+JavaScript】
软件技术NINI
前端htmljavascript
DeepSeek-R1满血版思考完成嗯,用户想要深入了解前端中的HTML和JavaScript,所以我需要整理相关的信息,参考提供的搜索结果,特别是和,因为它们直接提到了HTML和JavaScript的结合使用。首先,确定HTML和JavaScript的基本关系,然后看看各个搜索结果里的内容有什么可以整合的。比如,搜索结果详细介绍了src和href的区别,而则讲解了如何在HTML中使用sc
- 【C++】类的const成员
这学芝士 多是一件美事
C++c语言c++数据结构算法linux
1const成员1.1const修饰类的成员函数在日期类中,我们实例化一个普通对象,普通对象调用成员函数要传参,传给隐含的this指针。普通对象调用Print(),要把d1的地址传给this指针,那如果是const对象呢?const对象取地址是constDate*,所指向的内容不能被修改,此时如果只是一个普通的成员函数是不能编译通过的。因此此时我们要将this指针变成constthis*,但是我们
- 解锁 ES6 访问器属性 Getter & Setter
代码里的小猫咪
前端访问器属性GetterSetter
在JavaScriptES6及其后续版本中,可以使用访问器属性(AccessorProperties)来定义getter和setter,从而拦截对象属性的访问和赋值。这种机制不仅提供了更灵活的属性管理方式,还能增强数据的封装性和安全性。1.访问器属性(Getters和Setters)在ES6的class语法中,可以使用get和set关键字定义访问器属性,这样可以像访问普通属性一样调用方法,而不需要
- for根据ID去重_Vue中的v-for踩坑之旅(继上一章key的案例)
weixin_39958137
for根据ID去重vuekey重复vue判断同一数组内的值是否一直
用过Vue的同学都知道,v-for指令常用于遍历数组或者对象,然后依次渲染出指定的内容。同时,我们也知道,官方文档也建议,在使用v-for指令时,记得要加上key属性,方便提升应用性能。例如一个简单的增删Todo应用如下所示:代码很简单明了,也运行的很高效。我们用了v-for指令,也加了key,一切都和完美,感叹Vue真好用,真是高效哇!组件封装在Vue中,官方建议我们多进行组件封装和抽象,这样方
- Vue3新特性指南:探索新增指令、内置组件和改进
山川湖海
Vuevue.js
Vue.js是一款流行的JavaScript框架,用于构建现代Web应用。Vue3是Vue.js的最新版本,引入了许多新特性和改进。本文将介绍Vue3新增的指令、内置组件以及其他值得关注的改进,并提供使用组合式API的用法示例。一、新增指令v-is指令:v-is指令用于动态组件,可以根据表达式的值来渲染不同的组件。用法:示例代码:import{ref}from'vue';importCompone
- 前端开发手册大全
而 已
webjavascriptcsshtmljquerycss3
web前端开发手册大全(学习参考)html中文中文参考手册:https://www.html.cn/shouce/html/1.htmlJavaScript中文参考手册:https://www.html.cn/shouce/js/11.htmlCSS3.0参考手册:https://www.html.cn/doc/css3/CSS教程手册(新):https://www.html.cn/book/cs
- maven的基本思想与基本操作
无足鸟丶
mavenjava
Maven是一个强大的项目管理和构建自动化工具,广泛应用于Java项目开发中。以下是Maven的一些常用知识:基本概念项目对象模型(POM):Maven项目的核心是pom.xml文件,它是一个XML文件,描述了项目的基本信息(如项目名称、版本、开发者等)、依赖关系、构建配置等。通过pom.xml,Maven可以了解项目的结构和需求,从而进行相应的构建和管理操作。约定优于配置:Maven遵循约定优于
- 线程wait后的等待队列
DanceDonkey
java开发语言
常规情况在Java里,无论是使用Object类的wait()、notify()、notifyAll()方法,还是使用ReentrantLock搭配Condition的await()、signal()、signalAll()方法,基本遵循“哪个对象调用wait/await,线程就进入该对象对应的等待队列,且需由该对象来唤醒”的规则。使用Object的wait()、notify()、notifyAll
- 数据结构与算法必知基础知识
程序员bigsai
文章精选数据结构与算法数据结构算法数据结构与算法
原创公众号:bigsai文章已收录在全网都在关注的数据结构与算法学习仓库欢迎star前言数据结构与算法是程序员内功体现的重要标准之一,且数据结构也应用在各个方面,业界更有程序=数据结构+算法这个等式存在。各个中间件开发者,架构师他们都在努力的优化中间件、项目结构以及算法提高运行效率和降低内存占用,在这里数据结构起到相当重要的作用。此外数据结构也蕴含一些面向对象的思想,故学好掌握数据结构对逻辑思维处
- 设计模式:单例模式
java
1.什么是单例模式?单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。它的核心目标是控制对象的创建过程,避免资源重复占用或状态不一致。核心原则:私有化构造函数:禁止外部通过new创建实例。自行创建实例:类内部负责创建唯一实例。全局访问点:通过静态方法(如getInstance())提供实例访问。2.应用场景单例模式适用于需要全局唯一对象的场景,例如:数据库连接
- 常用Python数据分析库详解
weixin_34092370
pythonshell
Python之所以这么流行,这么好用,就是因为Python提供了大量的第三方的库,开箱即用,非常方便,而且还免费哦,学Python的同学里估计有30%以上是为了做数据分析师或者数据挖掘,所以数据分析相关的库一定要熟悉,那么常用的Python数据分析库有哪些呢?1.NumPyNumPy是Python科学计算的基础包,它提供:1).快速高效的多维数组对象ndarray;2).直接对数组执行数学运算及对
- 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
deepseek
一、基础原则1️⃣说人话最重要"不用专业术语,就像和朋友聊天一样描述需求"。❌️错误示范:"请用SWOT分析法输出新能源汽车行业报告"。✅正确示范:"我要给老板汇报比亚迪谈判进展,完全不懂电池技术,请用买菜大妈都能听懂的话说明:他们的核心技术强在哪?报价大概多少?谈判时怎么装专业?"。2️⃣场景化公式"我要做___(具体事项),给___(使用对象)看,重点突出___(核心需求),担心___(潜在问
- java 线程基础
java
Java线程基础创建线程在java编程中,我们可以继承Tread类并复写其run方法,然后new一个该对象,并调用其start方法,这样就可以开启一个新线程了。或者创建实现一个Runnable接口的类。然后将该对象传递给一个Thread队象。这样也可以开启一个线程。另外还一个使用线程池创建线程,或者使用带有返回值的Callable创建线程其实这些方式的本质都是一样的,本质上只有一种创建线程的方式。
- 翻译-Java字符串池
java
原文地址正如名字所示:Java中字符串池存储在堆内存中。我们知道java中String是一个特殊的类,我们可以通过new操作符或者使用双引号“”创建一个String对象。Java里的字符串池字符串池中创建了多少字符串对象?Java里的字符串池下面是一个图,清晰的解释了java堆内存怎么管理字符串池的。以及当我们使用不同的方式创建字符串时发生了什么。字符串池是可行的,只是因为在Java中String
- AJAX与PHP数据交互的精细指南
t0_54coder
ajaxphp交互个人开发
在当今的Web开发中,AJAX(AsynchronousJavaScriptandXML)与PHP的结合使用非常普遍,用于实现无刷新页面更新或后台数据处理等功能。今天,我们将通过一个实例,详细讲解如何使用AJAX与PHP进行数据交互,并解决常见的问题。实例背景假设我们有一个用户注册表单,当用户提交表单时,我们需要将数据插入到MySQL数据库中,同时在前端实时显示插入是否成功。前端代码首先,我们在H
- 探秘React:构建现代界面的利器
ai_todo
从0到0.01入门Reactreact.js前端前端框架
文章目录React是一个用于构建用户界面的JavaScript库1.组件化开发2.JSX语法3.虚拟DOM4.单向数据流5.组件生命周期6.状态管理7.ReactRouter8.生态系统9.兼容性和跨平台vue3和react的异同点vue3和react的语法上的异同点附录:「简历必备」前后端实战项目(推荐:⭐️⭐️⭐️⭐️⭐️)「作者简介」:不知名十八线技术博主「推荐主页」:阿珊和她的猫「简历必备
- AJAX和JSONP:前端异步请求与跨域解决方案
创意前端
前端ajaxokhttp编程
AJAX和JSONP是前端开发中常用的异步请求和跨域解决方案。本文将详细介绍它们的使用方法和源代码示例。一、AJAX(AsynchronousJavaScriptandXML)AJAX是一种在不刷新整个页面的情况下,通过JavaScript与服务器进行异步通信的技术。它可以实现页面的局部刷新,提升用户体验。发起AJAX请求以下是一个简单的AJAX请求的示例:varxhr=newXMLHttpReq
- fs-读取文件内容
还是鼠鼠
node.jsjavascriptvscode前端框架node.jsweb
目录1.fs模块简介2.示例一:异步读取文件内容文件说明文件:sample.txt文件:readFile.js运行步骤及结果3.示例二:同步读取文件内容文件说明文件:readFileSync.js运行步骤及结果4.小结下面提供一个详细的教程,介绍如何使用Node.js的fs模块读取文件内容,包含同步与异步两种方式。文章中会详细标注文件名和代码类型(如JavaScript文件、文本文件等),便于你直
- 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