- Swagger
辄也
java开发语言后端
1.什么是Swagger?Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个描述文件,连描述文件都不需要再去维护了。所有的信息,都在代码里
- nestjs+mysql+prisma + swagger项目搭建
哆啦咪唏
mysqljavascriptprismanestjs
nestjs学习(一)项目地址1.基础操作安装nestyarnadd-g@nestjs/cli创建项目nestnewproject-name启动服务器yarnrunstartyarnstart:dev监听文件变化,自动重启服务使用nest-cli快速创建service/controller,会自动引入Module中nestg[文件类型][文件名][文件目录(src目录下)]详细过程可以参考nest
- 微信小程序复制功能
青青子衿越
微信小程序小程序
在微信公众平台隐私协议中加剪贴板设置-基本设置审核通过后app.json中添加"permission":{"scope.writeClipboard":{"desc":"你的剪贴板将用于小程序的复制操作"}},index.ts//复制指定内容handleCopy(){console.log("复制");wx.setClipboardData({data:this.data.verification
- NestJS Console指南:强大的CLI工具集成方案
童霆腾Sorrowful
NestJSConsole指南:强大的CLI工具集成方案nestjs-consoleAnestjsmodulethatprovideaclitoyourapplication.项目地址:https://gitcode.com/gh_mirrors/ne/nestjs-console项目介绍NestJSConsole是一个专门为NestJS应用设计的CLI(命令行界面)扩展库,它旨在简化和增强开发者
- 使用NestJS的控制器与业务逻辑结合的入门教程
XymkMl
JavaScript
NestJS是一个用于构建高效、可扩展的Node.js应用程序的框架。它采用了现代化的JavaScript或TypeScript语言,并提供了强大的依赖注入、模块化和面向切面编程等功能。本教程将介绍如何在NestJS应用程序中结合控制器和业务逻辑,以实现灵活且可维护的代码结构。步骤1:创建NestJS应用程序首先,我们需要安装NestJSCLI工具,用于创建和管理NestJS应用程序。打开终端并执
- AI绘画副业爆火!一张图赚500+,新手也能轻松变现
乔代码嘚
AI作画人工智能stablediffusionAIGCmidjourney
小伙伴们是不是也想拥有一份时间自由、收入可观的副业?在互联网时代,副业已经成为许多小伙伴增加收入的重要途径。今天就给小伙伴们分享一个AI绘画小副业,也能赚米。在2025年,AI绘画副业是互联网上最热门赚钱方式之一。凭借强大的AI工具,即使是新手小白也能轻松上手,一张图居然卖到500+,甚至更高,不少新手靠它还实现了多渠道变X。今天,我们就来聊聊如何通过AI绘画副业赚钱,手把手教你从零开始!”AI绘
- Vue.js 详细介绍
DOMINICHZL
vue.jsvue.js
1.引言在前端开发领域,Vue.js无疑是一个备受瞩目的框架。它以其轻量、易用和高效的特点,迅速成为开发者们的首选。无论你是前端新手,还是有一定经验的开发者,Vue.js都能为你提供强大的支持。本文将带你从零开始,深入了解Vue.js的核心概念、使用方法以及最佳实践。2.Vue.js简介2.1什么是Vue.js?Vue.js是一套用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同
- 在 CentOS 上安装 Docker 和 Docker Compose(可指定版本或安装最新版本)
用数据说话用数据决策
centosdockerlinux
文章目录一、安装Docker1.1安装最新版本的Docker1.2安装指定版本的Docker二、配置Docker镜像加速器(国内镜像源)三、安装DockerCompose3.1安装最新版本的DockerCompose3.2安装指定版本的DockerCompose四、卸载Docker和DockerCompose4.1卸载Docker4.2卸载DockerCompose五、常见问题与解决方案六、总结一
- 上市公司财务报告数据大全1990-2022年度1387指标变量的详细说明参考
用数据说话用数据决策
动态规划数据结构
Symbol[证券代码]-以证券交易所公布的证券代码为准EndDate[统计截止日期]-YYYY-MM-DD,前四位表示会计报表公布年度StateTypeCode[报表类型]-1=合并会计报表;2=母公司会计报表Area[地区]-1、国内2、国外ApplyTypeCode[申请类型编码]-S5201=已申请;S5202=已获得;S5203=已授权;S5204=截至报告期末累计获得;S5205=截止
- 14-1.Java 多线程编程之 CountDownLatch(CountDownLatch 核心功能、CountDownLatch 核心方法、CountDownLatch 实例实操)
我命由我12345
Java-基础入门精美笔记java开发语言后端笔记java-ee后端开发学习
一、CountDownLatchCountDownLatch是Java并发编程中的一个同步工具类,用于协调多个线程的执行CountDownLatch允许一个或多个线程等待其他线程完成操作后再继续执行CountDownLatch的核心思想是通过一个计数器来实现线程的等待和通知机制二、CountDownLatch核心功能1、计数器CountDownLatch内部维护一个计数器,初始值为指定的正整数每当
- PyQT开发的简易有道词典
wangyiyan212
pythonpythonGUI有道翻译json
最近学习PyQt,写了一个比较简单的字典,使用了有道翻译OpenAPI,下面是代码:#-*-coding:utf-8-*-__author__='Cullen'importurllibimportjsonimporturllib2fromPyQt4importQtGui,QtCoreimportsysAPI_KEY='1349304933'KEYFROM='cullen'classMyDict(Q
- 模板分享:树状数组
pystraf
数据结构与算法#数据结构算法数据结构c++
Codeintlowbit(intx){returnx&-x;}templatestructfenwick{intn;vectorc;fenwick(){}fenwick(int_n):n(_n){c.resize(n+1);}fenwick(constvector&a):n(a.size()){c.resize(n+1);for(inti=1;i::fenwick(intn);初始化一个大小为n
- P10289 [GESP样题 八级] 小杨的旅游
pystraf
洛谷题解算法图论c++数据结构
Description给定一棵nnn个点的树,每条边权值均为111,树上有kkk个关键点,关键点们在000的时间内相互可达,qqq次询问,求s→ts\tots→t的最短路。Analysis考虑暴力建图,则图上共有(n−1+n(n−1)2)(n-1+\frac{n(n-1)}{2})(n−1+2n(n−1))条边,在n,kn,kn,k均为最大的情况下,图上共有大约2×10102\times10^{1
- 每日一题012-贪心和堆-洛谷p3045买奶牛
YQ_ZJH
每日一题算法java数据结构c++蓝桥杯贪心算法堆
P3045USACO12FEBCowCouponsG题目背景Subtask0为原数据,Subtask1,2为hack数据。题目描述FarmerJohnneedsnewcows!ThereareNcowsforsale(1#include#include#definePIIstd::pair//使用pair记录编号usingi64=longlong;i64n,k,m;i64cur;//记录目前花的钱
- Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
m0_74825238
面试学习路线阿里巴巴node.jshttp服务器
Node.jsHTTP模块详解:创建服务器、响应请求与客户端请求Node.js的http模块是Node.js核心模块之一,它允许你创建HTTP服务器和客户端。以下是一些关键知识点和代码示例:1.创建HTTP服务器使用http.createServer()方法可以创建一个新的HTTP服务器实例。这个方法接受一个回调函数,该函数在服务器接收到请求时被调用,参数为req(请求对象)和res(响应对象)。
- 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_
- 【影刀_常规任务计划_API调用】
gf1321111_小曼
python
影刀_常规任务计划1、在常规任务计划被关闭或者设置了定时任务的情况下(非手动执行),通过API的方式启动任务,任务仍然可以被正常执行。2、如果在常规任务计划里面应用中填写的参数的话,如果通过api执行,没有指定应用的uuid和应用的输入参数,计划任务中的所有应用都会被执行,并且输入参数取自在控制台中设置的默认值。如果指定了一个应用的uuid和应用的输入参数,而实际上计划任务里面有多个应用,那么也是
- k8s拉取harbor镜像部署
舌尖上的五香
kubernetes容器云原生
在k8s中创建凭证首先在节点docker登录harbor,登录成功之后会在$HOME/.docker/生成一个config.json文件,这个就是登录凭证,后面dockerpull就不需要再登录了。但是如果在k8s发布pod或者deploment时,这个凭证要在k8s中创建一个对应secret,然后挂载到pod或deployment中的yaml中,这样k8s才能下载镜像,否则提示权限验证错误。生成
- nginx 配置代理本地文件并支持跨域
nginx
nginx配置报错invalidnumberofargumentsin"default_type"directiveinI:\nginx-1.22.0/conf/nginx.conf:19Nginx配置中default_type指令的参数格式有误。该错误通常由以下两种原因引起:错误原因分析参数缺失:default_type指令必须指定一个合法的MIME类型(如text/html),但你的配置中可能
- 指针高级03【野指针与悬空指针】-黑马程序员C语言
c
指向不明的指针野指针:指针指向的空间未分配悬空指针:指针指向的空间已分配,但是被释放了#include"stdio.h"int*method();intmain(){//野指针:指针指向的空间未分配inta=10;int*p1=&a;printf("%p\n",p1);printf("%d\n",*p1);//p2野指针int*p2=p1+10;printf("%p\n",p2);printf("
- 补充:文件上传、下载传输给前端之直接传递图片二进制数据:网络中的图片、音频、视频等非字符数据的传输
JU HE
JavaWeb开发基础网络音视频
文章目录1Base64编码传递图片、视频二进制数据2后端直接传递图片二进制数据案例2.1后端:创建专用DTO(推荐方案)2.2前端处理建议1Base64编码传递图片、视频二进制数据前面我们在学习Java的IO流的时候讲过字节流和字符流。字符的传输:前后端字符的传输JSON中就是直接传字符就可以了讲一下实际中的变换过程:字符流中字符的传输是参考博客字符串—>(编码方式对应起来)字符数组—>二进制数据
- [oAuth2授权]Web前端+Node&Coze API Web后端程序+Coze授权服务器工作流程架构流程图详解
GISer_Jinger
项目人工智能node.js前端javascript架构
嗯,用户之前已经了解了如何使用React和Node.js结合CozeAPI实现OAuth2授权,现在他们具体想实现的是在Web应用中,当用户点击一个按钮(比如“和Bot对话”)时,触发授权流程,重定向到Coze的授权服务器获取code。用户还提供了一个具体的cURL请求示例,展示了如何通过302重定向获取授权页面的URL,然后从响应头中的location字段得到跳转链接,引导用户完成授权。首先,我
- P8598 [蓝桥杯 2013 省 AB] 错误票据
qystca
算法模拟
题目背景某涉密单位下发了某种票据,并要在年终全部收回。题目描述每张票据有唯一的ID号,全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。数据保证断号不可能发生在最大和最小号。输入格式一个整数N(N>t)之后用ctrl+z结束输入代码:#include#
- 使用vim做笔记-vimwiki
vimwiki
前两天刚写了篇自己的实践过程,目的是在vim中搭建一个方便写LaTeX文档的环境,现在又来搞一个vimwiki,这是为啥呢首先LaTeX确实很强大,但同时也是更专注于数学相关的排版;如果我用来在边听些网课边做笔记,这想必是极好的,因为课程本身是系统的,连续的,最后出来的笔记也比较完整。但同时我感觉我还需要搭建一个自己的知识库,然后我就看到了VimWiki,能够用类似wiki一样的方式组织自己各种或
- CORS Missing Allow Origin
打怪升级&
前后端结合小白学习记录前端json后端
自用小总结问题出现背景:前后端交互问题描述:脚本无法获取响应主体(原因:CORSMissingAllowOrigin问题分析:前后端交互数据形式不匹配自我检查:用postman检查后端接口是否能用,排除前端和后端其中一个尝试更改1.前端是form-data/x-www-form-urlencoded数据,后端则需要使用@RequestParam2.前端是application/json数据,后端则
- pandas使用Timeseries初步记录
qq_22254539
Pandas使用pandastimeseries
1、获取到的数据转为pd.timestamp2、转换数据日期时遇到时区问题3、数据转换清理start_time=1541347200end_time=start_time+86400*7filters={'occur_time__gte':start_time,'occur_time__lt':end_time,}objs=AcLogin.objects.filter(**filters).exc
- 自动驾驶之BEVDet
maxruan
BEV自动驾驶自动驾驶人工智能机器学习
BEVDet主要分为4个模块:1、图像视图编码器(Image-viewEncoder):就是一个图像特征提取的网络,由主干网络backbone+颈部网络neck构成。经典主干网络比如resnet,SwinTransformer等。neck有==FPN==,PAFPN等。例如输入环视图像,记作Tensor([bs,N,3,H,W]),提取多尺度特征;其中bs=batchsize,N=环视图像的个数,
- Linux 常用命令大全及详解
诚信爱国敬业友善
Linuxlinux服务器
在使用Linux系统时,掌握一些常用的命令是非常重要的。这些命令可以帮助我们高效地完成各种任务。本文将介绍30个以上的Linux常用命令,并详细说明它们的作用和用法。一、目录操作命令1.pwd作用:显示当前所在的工作目录的全路径名称。示例:pwd常用参数:无需参数。2.cd作用:更改当前工作目录。示例:cdDocuments常用参数:目标目录名称。3.ls作用:列出指定目录中的文件和子目录名称。示
- 百度的17年产品史——突围、霸权、迷失、焦虑与变革
zoomla188
市场百度变革软件企业
本文作者为范晓俊和黄有璨。范晓俊为三节课志愿者,3.3计划第一期学员,现供职于某音乐类互联网创业公司市场部。黄有璨为三节课联合创始人。我们相信,对于一家互联网公司来说,它的产品发展和演化史,会更忠实地映射出它的发展和成长轨迹。我们也相信,去了解一家互联网公司的产品发展、迭代和演化,会更有助于你理解互联网,理解产品。2天前,李彦宏发布百度2017年内部信,宣布将全力出击“内容分发”,绕了一圈的百度,
- Koa中的loader使用场景
没资格抱怨
node.js前端javascriptnode
在Koa中,Loader并不是一个内置概念,通常指的是加载和初始化中间件、配置或其他资源的机制。以下是常见的Loader使用场景:1.中间件加载Loader可以用于自动加载和注册中间件。例如,从指定目录加载所有中间件文件并注册到Koa应用:constfs=require('fs');constpath=require('path');constKoa=require('koa');constapp
- 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