- 从云端到私有:智慧任务管理工具的私有化转型之路
项目管理软件
智慧任务管理工具私有化是指将智慧任务管理工具部署在组织内部的私有服务器或云环境中,以确保数据的安全性、隐私性和完全控制权。以下是对智慧任务管理工具私有化的详细解析:一、私有化的优势●数据安全:私有化部署确保所有数据存储在组织内部的服务器或私有云中,避免数据泄露或被第三方访问,特别适合处理敏感信息或需要遵守数据保护法规(如GDPR、HIPAA等)的组织。●定制化开发:组织可以完全控制系统的配置、更新
- 构建专属工作流:私有化部署下的数据安全与效率双赢
项目管理软件
工作流管理软件私有化是指将工作流管理软件部署在组织内部的私有服务器或专有云环境中,以确保数据的安全性、隐私性和组织的完全控制权。以下是对工作流管理软件私有化的详细分析:一、私有化的优势数据安全:○私有化部署确保所有数据存储在组织内部的服务器或私有云中,避免了数据泄露或被第三方访问的风险。○特别适合处理敏感信息或需要遵守数据保护法规(如GDPR、HIPAA等)的组织。定制化开发:○组织可以完全控制系
- C++ 设计模式——代理模式
小冰子X
设计模式代理模式c++
代理模式指代理控制对其他对象的访问,也就是代理对象控制对原对象的引⽤。在某些情况下,⼀个对象不适合或者不能直接被引⽤访问,而代理对象可以在客⼾端和⽬标对象之间起到中介的作⽤。代理模式的结构包括⼀个是真正的你要访问的对象(目标类)、⼀个是代理对象。目标对象与代理对象实现同⼀个接口,先访问代理类再通过代理类访问目标对象。代理模式分为静态代理、动态代理:•静态代理指的是,在编译时就已经确定好了代理类和被
- JavaSE : 注解 Annotation
Edenyt
java-eejava
注解Java中的注解(Annotation)是一种元数据形式,用于向编译器或JVM提供有关程序元素(如类、方法、变量、参数和包)的附加信息。注解不会直接影响程序的行为或结构,但它们可以被编译器、开发工具或运行时环境用于生成代码、进行验证、执行处理或提供信息。以下是关于Java注解的几个关键点:1.注解的种类1.1.内置标准注解:@Override:指示一个方法覆盖了超类中的方法。@Deprecat
- Qt5.6在Linux中无法切换中文输入法问题解决
糯米藕片
经验分享qtlinux开发语言
注意Qt5.6.1要编译1.0.6版本源码chmod777赋权复制两个地方so重启QtCreatorsudocplibfcitxplatforminputcontextplugin.so/home/shen/Qt5.6.1/Tools/QtCreator/lib/Qt/plugins/platforminputcontextssudocplibfcitxplatforminputcontextpl
- 【Python专栏】Python的发展历程
雾岛心情
Python入门到精通python开发语言
Python的创始人为吉多·范罗苏姆(GuidovanRossum),人称龟叔1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧MontyPython’sFlyingCircus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。Python的具体发展历史和版
- redis集群迅速搭建(个人学习和测试用)
yinhezhanshen
redis学习java
笔者使用ubuntu操作系统下载redis地址:Indexof/releases/,选择最新的版本下载。解压后进入目录,直接make就可以编译。编译成功后在src目录下会生成redis-server和redis-cli可执行文件。进入redis目录下的utils/create-cluster目录,执行./create-clusterstart,快速启动6个实例zy@zy-VirtualBox:~/
- 驱动开发系列39 - Linux Graphics 3D 绘制流程(二)- 设置渲染管线
黑不溜秋的
GPU驱动专栏驱动开发
一:概述Intel的Iris驱动是Mesa中的Gallium驱动,主要用于IntelGen8+GPU(Broadwell及更新架构)。它负责与i915内核DRM驱动交互,并通过Vulkan(ANV)、OpenGL(IrisGallium)、或OpenCL(Clover)来提供3D加速。在Iris驱动中,GPUPipeline设置涉及多个部分,包括编译和上传着色器、设置渲染目标、绑定缓冲区、配置固定
- 验证环境中为什么要用virtual interface
m0_71354184
systemverilog
在UVM(UniversalVerificationMethodology)中使用virtualinterface的主要目的是解决SystemVerilog接口(interface)的静态特性与UVM验证环境的动态特性之间的不匹配问题。1.解决静态与动态的绑定问题SystemVerilog接口(interface)是静态的:在编译时确定,无法直接用于动态创建的UVM对象(如driver、monit
- nginx 安装(下载解压就行,免安装)
当归1024
nginxnginx运维
nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。nginx由C语言编写,内存占用少,性能稳定,并发能力强,功能丰富;可以在大多数UnixLinuxOS上编译运行,并有Windows移植版。1、nginx下载地址:nginx:download2、windows安装及启动nginx是绿色免安装的,解压后可以直接启动双击nginx.exe即可启动服务
- 【GO】学习笔记
勤不了一点
GOgolang学习笔记go
目录学习链接开发环境开发工具GVM-GO多版本部署GOPATH与go.modgo常用命令环境初始化编译与运行GDB--GNU调试器基本语法与字符类型关键字与标识符格式化占位符基本语法初始值&零值&默认值变量声明与赋值_下划线的用法字符类型const常量字符串类型转换与判断指针值类型和引用类型复杂数据类型数组:一个由固定长度的特定类型元素组成的序列切片(Slice):动态序列链表(list):没有元
- 利用DSPy优化LangChain RAG系统的实战指南
scaFHIO
langchainpython
利用DSPy优化LangChainRAG系统的实战指南技术背景介绍DSPy是一个用于大语言模型(LLMs)的出色框架,它引入了一个自动编译器,能够教会模型如何执行你程序中的声明性步骤。具体来说,DSPy编译器会在内部追踪你的程序,然后为大型语言模型(LLMs)创建高质量的提示(或为小型LLMs训练自动微调),以教会它们任务的步骤。感谢OmarKhattab的努力,现在DSPy可以与LangChai
- 文章精读篇——用于遥感小样本语义分割的可学习Prompt
LiXiang like coding吗
学习prompt人工智能
题目:LearnablePromptforFew-ShotSemanticSegmentationinRemoteSensingDomain会议:CVPR2024Workshop论文:10.48550/arXiv.2404.10307相关竞赛:https://codalab.lisn.upsaclay.fr/competitions/17568年份:2024任务背景小样本语义分割(Few-shot
- 现代前端框架渲染机制深度解析:虚拟DOM到编译时优化
桂月二二
前端框架
引言:前端框架的性能进化论TikTokWeb将React18迁移至Vue3后,点击响应延迟降低42%,内存占用减少35%。Shopify采用Svelte重构核心交互模块,首帧渲染速度提升580%。Discord在Next.js14中启用ReactServerComponents后,服务端数据吞吐量增加240%,客户端Bundle体积减少54%。一、主流框架技术架构差异1.1三大范式运行机制对比维度
- 【二分查找】P9698 [GDCPC2023] Path Planning|普及
闻缺陷则喜何志丹
#洛谷普及算法图论c++洛谷二分查找路径网格
本文涉及的基础知识点本博文代码打包下载C++二分查找[GDCPC2023]PathPlanning题面翻译【题目描述】有一个nnn行mmm列的网格。网格里的每个格子都写着一个整数,其中第iii行第jjj列的格子里写着整数ai,ja_{i,j}ai,j。从000到(n×m−1)(n\timesm-1)(n×m−1)的每个整数(含两端)在网格里都恰好出现一次。令(i,j)(i,j)(i,j)表示位于第
- Linux 的 C 语言环境中实现与 C++ 中 `release` 和 `acquire` 等效的内存顺序控制
最后一个bug
高质量嵌入式Linux应用开发linux单片机arm开发stm32c语言
首先,C11标准引入了原子操作和内存模型,一、用户空间C程序(C11标准)如果使用支持C11标准的编译器(如GCC或Clang),可以通过头文件直接使用类似C++的原子操作和内存顺序参数。对应release和acquire的语法cincludeatomic_boolready=ATOMIC_VAR_INIT(false);//原子变量structDatac;//共享结构体//线程A:写入数据后发布
- navicat premium 16/17无限试用脚本
frandiy
java服务器前端
我直接贴代码:echoDeleteHKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\UpdateregdeleteHKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update/fechoDeleteHKEY_CURRENT_USER\Software\PremiumSoft\Nav
- 【Linux基础】Linux下的C编程指南
Nebula嵌入式
#Linux基础linux嵌入式
目录一、前言二、Vim的使用2.1普通模式2.2插入模式2.3命令行模式2.4可视模式三、GCC编译器3.1预处理阶段3.2编译阶段3.3汇编阶段3.4链接阶段3.5静态库和动态库四、Gdb调试器五、总结一、前言在Linux环境下使用C语言进行编程是一项基础且重要的技能。本文将详细介绍在Linux下使用C语言编程的完整流程,包括代码编辑(使用vim)、编译(使用gcc)、调试(使用gdb)。对于大
- VQ-Diffusion 深度解析与实战指南
晏灵昀Odette
VQ-Diffusion深度解析与实战指南VQ-Diffusion项目地址:https://gitcode.com/gh_mirrors/vqd/VQ-Diffusion1.项目介绍VQ-Diffusion是一个用于文本到图像合成的深度学习模型,基于矢量量化变分自编码器(VQ-VAE)和去噪扩散概率模型(DenoisingDiffusionProbabilisticModel)。该模型通过将DDP
- Buildroot 添加自定义模块-内置文件到文件系统
ansondroider
Linuxbuildrootlinux
目录概述实现步骤1.创建包目录和文件结构2.配置Config.in3.定义cp_bin_files.mk4.添加源文件`install.sh``my.conf`5.配置与编译概述Buildroot是一个高度可定制和模块化的嵌入式Linux构建系统,适用于从简单到复杂的各种嵌入式项目.buildroot的源码中buildroot/package下面放着应用软件的配置文件,每个应用软件的配置文件有Co
- 31.C++多态4(静态多态,动态多态,虚函数表的存储位置)
橘子真甜~
c++开发语言
⭐上篇文章:30.C++多态3(多态的原理,虚指针,虚函数表,抽象类)-CSDN博客⭐本篇代码:c++学习/17.C++三大特性-多态·橘子真甜/c++-learning-of-yzc-码云-开源中国(gitee.com)⭐标⭐是比较重要的部分目录一.静态多态与动态多态二.派生类的虚表的内存分布2.1单继承派生类虚表的分布2.2多继承下派生类虚表的分布一.静态多态与动态多态静态多态是在编译的时候就
- 内核编译及安装步骤
蓝色的夏天qy
简介Linux内核是操作系统的核心,也是操作系统最基本的部分。Linux内核的体积结构是单内核的、但是他充分采用了微内核的设计思想、使得虽然是单内核、但工作在模块化的方式下、并且这个模块可以动态装载或卸载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。如是我们在了解Linux内核的基础上根据自己的需要、量身定制一个更高效,更稳定的内核,就需要我们手动去
- python获取当月最后工作日实现在数据库查询指定日期数据(python+sql)
桃子是唯一的水果
python开发语言sql
问题描述:处理数据库业务数据的时候,会遇到查询某一月最后一个工作日的数据此时可以使用sql+python结合实现自动获取当月最后一个工作日日期作为变量代码实现:python:defget_workingday(self):self.now=pd.Timestamp.now()#self.now.year:本年#self.now.month:当月,在这个基础上+-可以实现查询前几个月份的工作日sel
- C语言链接过程中的重定位
czme
c语言
在C语言程序的编译链接过程中,重定位是一个重要环节,以下是关于它的介绍:重定位的概念在C语言编译时,编译器会把源程序转换为目标文件,其中的指令和数据都有相对地址。链接器将多个目标文件和库文件组合成可执行文件时,需调整这些地址,使程序能在内存中正确运行,这个调整地址的过程就是重定位。重定位的原因-分离编译:大型C程序常由多个源文件组成,每个源文件独立编译成目标文件,此时无法确定全局变量、函数等在最终
- Node.js使用教程
m0_74823408
面试学习路线阿里巴巴node.jsvim编辑器
Node.js使用教程Node.js是一个基于ChromeV8引擎的JavaScript运行环境,它让JavaScript运行在服务器端。以下是一个简单的Node.js使用教程:一、Node.js开发环境和编译1.1安装Node.js访问Node.js官网下载并安装适合您操作系统的Node.js版本。1.2创建一个Node.js项目在您的工作目录中,创建一个新的文件夹作为项目目录,例如命名为my_
- 影刀 不同模块module间的变量交互 调用类方法
sc0_joker
python
最近在探索如何调用API大模型时,我遇到了一个有趣的问题。通常情况下,我们会创建一个文件,并在其中定义一个类方法。然后,在另一个文件中调用这个类方法。一开始我以为影刀也是同样的方法进行操作,然而,当我尝试将代码应用到影刀(Yingdao)时,程序运行出错,让我困惑不已。经过查阅大量文档和在论坛上提问,我终于找到了问题的症结所在。原来,由于影刀的Python环境与PyCharm不同,要使代码正确运行
- api调度运行影刀_启动应用
gf1321111_小曼
数据库
importrequestsfromtimeimportsleepaccessKeyId="xxx"accessKeySecret="xxx"accountName='xxx'robotUuid="xxx"#1.获取tokendefget_access_token():url="https://api.yingdao.com/oapi/token/v2/token/create"headers={
- 影刀上传文件api
gf1321111_小曼
python
影刀上传文件api#文件上传-影刀帮助中心importrequestsyingdao_Info={"accessKeyId":"XXX","accessKeySecret":"XXX","accountName":'xm@bjywz',"robotUuid":"XXX","file_path":"D:\\desktop\\影刀数据表格_20240822-101819.xlsx",#文件的新名字,自
- Java 编程基础:开启编程世界的大门
安年CJ
JAVAjava开发语言算法
一、Java环境搭建在开始编写Java代码之前,我们需要先搭建Java开发环境。1.安装JDK(JavaDevelopmentKit)JDK是Java开发的核心工具包,它包含了编译Java源文件所需的编译器(javac)以及运行Java程序的虚拟机(JavaVirtualMachine,JVM)等工具。你可以从Oracle官方网站下载适合你操作系统的JDK版本。下载完成后,按照安装向导进行安装。安
- 为 ARM 32 位平台交叉编译 FFTW 库(基于正点原子的阿尔法开发板)
学者候选
arm开发
首先:因为电脑是X86-64位,而我们需要arm-32位,所以要先导入交叉编译工具链。如果不会导入交叉编译工具链:请查看:导入交叉编译工具链echo$CCarm-poky-linux-gnueabi-gcc-march=armv7ve-mfpu=neon-mfloat-abi=hard-mcpu=cortex-a7--sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sy
- 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