- 封装el-table 基于element封装可配置JSON表格组件
心肝到爆
前端jsonjavascript开发语言vue.js前端elementui前端框架
基于element封装可配置JSON表格组件话不多说直接贴代码,复制运行即可查看效果子组件全部代码<
- Class10代码实现
Morning的呀
深度学习python深度学习pytorch
Class10代码实现importtorchfromtorchimportnnfromd2limporttorchasd2l#定义丢弃法函数#X:输入张量#dropout:丢弃概率(0~1)defdropout_layer(X,dropout):#丢弃概率在0-1之间assert0dropout:对每个位置判断是否保留#float():将布尔类型转换为浮点类型mask=(torch.rand(X.
- 快速排序Java代码简洁实现
SKY技术修炼指南
算法
学习过数据结构的同学们都知道,快速排序算法是一种时间复杂度为O(nlogn)的排序算法,在各种排序算法中算是较为高效的方法,企业面试中也经常有手撕快排的环节。本文将阐述算法的基本思想,并用Java代码的形式实现快速排序代码。算法思想快速排序主要采用分治的基本思想,每次将一个位置上的数据归位,此时该数左边的所有数据都比该数小,右边所有的数据都比该数大,然后递归将已归位的数据左右两边再次进行快排,从而
- Vue的ubus emit/on使用
搞个项目
前端vue.js前端javascript
这段代码是Vue.js组件中的mounted生命周期钩子函数,主要作用是监听一个名为“macSelectData”的全局事件。具体行为如下:分步解释:mounted()生命周期钩子当组件被挂载到DOM后,Vue会自动调用mounted()方法。这里常用于初始化操作,比如数据请求、事件监听等。this.$bus.on("macSelectData",this.open)this.$bus:通常指通过
- 深入理解 UniApp:跨平台开发的终极解决方案
深入理解UniApp:跨平台开发的终极解决方案一、UniApp概述:重新定义跨平台开发(一)UniApp的诞生背景在移动互联网高速发展的今天,多端适配成为开发者面临的主要挑战。传统开发模式下,针对iOS、Android、微信小程序、H5等不同平台需要编写多套代码,开发成本高且维护困难。DCloud公司于2019年推出的UniApp,正是为了解决这一行业痛点而生。它基于Vue.js语法规范,实现了"
- 如何防止重复提交订单?
天天摸鱼的java工程师
java
如何防止重复提交订单?作者:Java后端开发工程师一、背景介绍:为什么会产生重复提交?在电商平台中,用户提交订单是一个非常敏感的动作。这通常涉及:库存扣减优惠券核销支付下单消息发送但用户总喜欢:点两次“提交订单”按钮网络卡顿时刷新页面使用浏览器回退再次提交结果就是:重复提交订单,造成资源浪费,甚至业务损失!二、问题分析:重复提交的常见场景场景示例用户行为多次点击按钮、浏览器刷新接口幂等性差接口无幂
- 如何设计一个高并发短链接服务(如 bit.ly)?
天天摸鱼的java工程师
java
如何设计一个高并发短链接服务(如bit.ly)?引言:在社交媒体营销、短信推广等场景中,短链接服务已成为互联网基础设施的关键组件。全球每天有数十亿短链接被创建,如Bitly、TinyURL等服务每天处理数十亿请求。作为一名拥有8年经验的Java架构师,我曾主导设计过日处理千万级短链接的系统。今天我将从原理到实现,深度解析如何构建一个高性能、高可用、可扩展的短链接服务。一、业务场景与技术挑战1.1核
- 如何将电商单体应用拆分为微服务?拆分粒度如何权衡?
天天摸鱼的java工程师
微服务java
如何将电商单体应用拆分为微服务?拆分粒度如何权衡?引言:在电商行业高速发展的今天,系统扩展性和交付速度成为核心竞争力。许多企业初期采用单体架构快速上线,但随着业务规模扩大,单体应用逐渐成为制约发展的瓶颈。你是否也面临这样的挑战:代码库臃肿不堪、发布周期越来越长、局部故障导致全局瘫痪、技术栈升级举步维艰?作为一名有8年开发经验的Java工程师,我曾主导多个大型电商系统的微服务拆分。今天我将分享从业务
- uni-app跨平台开发知识点总结
uni-app简介uni-app概述:uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。uni-app由来:是为了解决跨平台开发的问题。在移动应用开发中,不同平台(如iOS、Android)有不同的开发语言和技术栈,这导致开发者
- 如何设计一个社交平台的关注/粉丝系统?一位8年Java开发者的架构心路
天天摸鱼的java工程师
java架构开发语言
如何设计一个社交平台的关注/粉丝系统?——一位8年Java开发者的架构心路当你的社交平台面临百万用户实时互动,如何确保关注操作毫秒级响应?如何保证粉丝列表的实时性和一致性?这个看似基础的功能背后,隐藏着读写扩散、数据一致性、热点用户等架构难题。本文将带你从业务模型到代码落地,构建一个支撑千万级关系的社交系统。一、业务场景与核心挑战典型关注业务流程:未关注已关注用户A关注用户B关系检查写入关注关系更
- 解密 Python 的 MRO:C3 线性化如何优雅解决多重继承的菱形难题》
《解密Python的MRO:C3线性化如何优雅解决多重继承的菱形难题》引言:继承的优雅与复杂在Python的面向对象编程中,继承是一种强大的机制,它让我们能够复用代码、构建抽象层次、实现多态行为。然而,当我们引入多重继承时,继承体系的复杂性也随之而来,尤其是著名的“菱形继承问题”。Python通过一种称为C3线性化(C3Linearization)的算法来解决方法解析顺序(MethodResolu
- 数据库重构:提升数据库响应速度的策略
AI天才研究院
计算AI大模型企业级应用开发实战AI人工智能与大数据数据库重构ai
数据库重构:从"拥堵路口"到"高速通道"的性能进化指南关键词:数据库重构、性能优化、索引策略、表结构设计、查询优化、数据分区、分库分表摘要:当你的数据库开始出现"响应变慢"“查询超时"的预警信号,单纯的"打补丁"优化已无法解决根本问题。本文将带你系统了解数据库重构的核心策略,通过生活化比喻、实战案例和代码示例,从索引优化到表结构重构,从查询调优到数据分区,一步步将"拥堵的数据库"改造成"流畅的信息
- 2024搬砖手游还赚钱吗?新手怎么做搬砖手游?
优惠券高省
在现今的手游市场中,越来越多的玩家选择参与游戏中的“搬砖”活动,即通过游戏内的任务、副本等方式获取虚拟物品或货币,再将其转化为实际收益。今天,我们就来为大家介绍一下2024年手游搬砖排行榜前十名,这些游戏不仅玩法丰富多样,而且非常适合长期搬砖。第一款:《梦幻西游手游》《梦幻西游手游》是一款深受玩家喜爱的角色扮演游戏。其核心玩法围绕着搬砖金币展开,玩家可以通过做任务、刷日常、运镖、挖宝图、师门、洗宝
- 云平台健康检查全攻略:从入门到精通
AI云原生与云计算技术学院
AI云原生与云计算ai
云平台健康检查全攻略:从入门到精通关键词:云平台、健康检查、监控指标、自动化运维、高可用性、故障诊断、性能优化摘要:本文全面解析云平台健康检查的核心技术与实践方法。从基础概念到高级应用,详细讲解健康检查的原理、实现方式和最佳实践。内容包括监控指标体系设计、自动化检查工具开发、常见故障诊断方法以及性能优化策略。通过实际案例和代码演示,帮助读者掌握构建健壮云平台的关键技术,提升系统可靠性和运维效率。1
- junit mockito_如何学习Java中的单元测试:JUnit和Mockito课程
dfsgwe1231
单元测试编程语言python人工智能java
junitmockito大家好,今天我将讨论JUnit和单元测试,这是任何软件开发人员的关键技能之一。您可能已经知道JUnit和Mockito是Java应用程序中最受欢迎的两个测试库,并且几乎在每个Java应用程序类路径中都可以找到它们。我经常与Java开发人员见面并一起工作,这些Java开发人员非常了解Java但还没有编写单个单元测试。当我问他们为什么不编写单元测试时,他们提出了许多借口,例如他
- .net core session 存储到redis缓存数据库
1.Startup.cs文件ConfigureServices方法加入以下代码#region使用Redis保存SessionvarredisConn=Configuration["WebConfig:Redis:Connection"];varredisInstanceName=Configuration["WebConfig:Redis:InstanceName"];//Session过期时长分
- (二十三)Java反射机制深度解析:原理、应用与最佳实践
MeyrlNotFound
JAVA开发语言java
一、反射机制概述1.1什么是反射机制Java反射机制(Reflection)是Java语言中一种强大的内省(introspection)能力,它允许程序在运行时(runtime)获取类的内部信息,并能直接操作类或对象的内部属性及方法。这种"动态性"使得Java程序可以突破编译时的限制,实现许多灵活的功能。反射的核心思想是:在运行时而非编译时获取类型信息并执行操作。这与传统的静态编程形成鲜明对比,在
- 动力节点Spring学习笔记-王鹤(一)IOC控制反转
架构师指路
Spring框架学习笔记(一)IOC控制反转官方下载地址动力节点spring资料视频观看地址https://www.bilibili.com/video/BV1nz4y1d7uy一、IOC控制反转1.1概述控制反转(IoC,InversionofControl),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移
- Django基础(五)———模板结构
前言上篇文章给大家介绍了模板常用过滤器这篇文章将讲述DTL模板中的模板结构一、模板结构1.include模板有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Pvthon中的的数一样,以后想要使用这些代码的时候,就通过inc1ude包含进来。这个标签就是include。编写视图函数#app应用views.py
- python基础语法复习04——函数
洛华363
pythonpython
python基础语法目录python基础语法01——基本类型python基础语法02——复合类型python基础语法03——语句构成文章目录python基础语法目录一、初识函数1.定义2.调用二、函数的传参1.位置传参2.关键词传参3.参数默认值4.可变位置参数5.可变关键词参数6.参数解包7.值传递与引用传递总结一、初识函数函数是Python中可重复使用的代码块,用于执行特定任务。通过将代码封装
- ubuntu18.04安装geemap
阿西是有梦想的咸鱼
python编程之路遥感影像处理可视化可视化pythonubuntu
文章目录安装测试GEE提供了JavaScript和PythonAPI,可以向EarthEngine服务器发出计算请求。与GEEJavaScriptAPI相比,PythonAPI缺乏易于理解的操作文档和交互式可视化结果的功能。由此,geemap诞生并填补了这一空白[1]。这里给大家介绍下我折腾了一晚上才搞定的geemap的安装及测试过程。这里是geemap的GitHub参考链接。安装如Github中
- API开发全攻略:从入门到精通的企业级API架构与实战
Android洋芋
架构API设计RESTfulAPI微服务架构实战案例
简介API开发已成为现代软件架构的核心能力,掌握API设计与实现技术能显著提升开发效率和系统可扩展性。本文将从零开始,全面解析API的基础概念、架构设计、安全认证、性能优化等关键技术点,并提供完整的Python和Go语言代码实战示例,帮助开发者构建高性能、可扩展的企业级API系统。本文旨在为初学者和进阶开发者提供一份全面的API开发指南。内容涵盖API的基础概念、类型分类、架构设计、安全认证、性能
- 【OpenCV+Cpp】day04图像混合
【OpenCV+Cpp】day04图像混合文章目录【OpenCV+Cpp】day04图像混合前言一、理论——线性混合操作二、相关API三、代码演示前言继续记录C++图像处理的学习过程,学习课件参考B站OpenCV_C++图像处理课程。OpenCV_C++图像处理课程本文分为理论、相关API和代码实现部分。一、理论——线性混合操作图像的线性混合即将两张图像以线性方式混合为一张图像,具体公式如下。以上
- 读书提升自己
镇赉420赵晓丹
读书习惯的养成来自平时的积累,从小开始,从我做起!作为一位语文老师,我在平时授课的时候经常渗透给我的学生,告诉他们多读书,而且要做好读书笔记,可以摘抄一些好词好句,可以写写读后感,一二年级的话几句话就可以!我认为从小养成一个好的习惯有助于以后的日常!图片发自App图片发自App图片发自App
- Swift 初见(一)
bearIT
Swift是一种安全,快速和互动的编程语言。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的系统编程语言。它支持代码预览(playgrounds)Swift通过采用现代编程模式来避免大量常见编程错误:变量始终在使用前初始化。检查数组索引超出范围的错误。检查整数是否溢出。可选值确保明确处理nil值。内存被自动管理。错误处理允许从意外故障控制恢复。使用let来声明常量,使用var来声明变量。
- java list使用
奋斗live
一、增加、删除、查询可使用add、remove、get方法,如下System.out.println("list的添加、获取和删除元素");Listanimal=newArrayListanimal=newArrayListanimal=newArrayListanimal=newArrayListanimal=newArrayListanimal=newArrayListphone=newArr
- C语言:第11天笔记
Star在努力
c语言笔记开发语言
C语言:第11天笔记内容提要函数函数的概述函数的分类函数的定义形参和实参函数的返回值函数的调用函数的声明函数函数的概述**函数:**实现一定功能的,独立的代码模块,对于函数的使用,一定是先定义,后使用。使用函数的优势:①我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数,减少代码量。②借助函数可以减少重复性的代码。③实现结构化(模块化:C语言中的模块化其实就是多文件+函数)程序设
- JUC——创建线程的方法
机器滴小白
JAVA学习笔记java开发语言JUC并发编程
1.继承Thread类原理:通过继承Thread类并重写其run()方法,定义线程的执行逻辑。(Thread类实现了Runnable接口)调用start()方法启动线程(JVM会自动调用run())。特点简单直接,适合快速实现线程逻辑。局限性:Java是单继承的,继承Thread后无法再继承其他类。//1.继承Thread类classMyThreadextendsThread{@Overridep
- TextControl文档只读设置
有时候我们需要对文档内容进行写保护,如果是对文档全部内容都只能读,我们可以对TextControl进行以下设置:textControl1.EditMode=TXTextControl.EditMode.ReadAndSelect;//或者textControl1.EditMode=TXTextControl.EditMode.ReadOnly;复制代码有些时候我们的需求可能会更复杂一些,可以允许用
- java 结合 FreeMarker 和 Docx4j 来生成包含图片的 docx 文件
liangblog
Java生产环境全栈开发Java进阶javapython开发语言
使用FreeMarker生成HTML,然后通过Docx4j将HTML转换为.docx文件;步骤1.添加依赖确保你的项目中包含了FreeMarker和Docx4j的依赖。以下是Maven的pom.xml示例:
- 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