- Spring 中 Bean 的生命周期
笑衬人心。
JAVA学习笔记springjava后端
一、什么是Bean生命周期?Spring中的Bean生命周期是指一个Bean从被容器创建到最终销毁所经历的一系列过程。它体现了SpringIOC容器在管理Bean实例时所执行的各个钩子流程,包括初始化、依赖注入、增强处理、销毁等多个环节。二、Bean生命周期完整流程(逻辑顺序)1.实例化(Constructor)2.属性注入(依赖注入,DI)3.感知阶段(Aware接口)4.初始化前处理(Bean
- Ubuntu 22.04 庙算平台训练环境搭建指南
笑衬人心。
ubuntulinux深度学习
本文记录了基于Ubuntu22.04.3LTS的训练环境搭建过程,适用于需要部署庙算推演离线平台的用户,支持GPU(可选)。一、训练环境搭建●硬件要求操作系统:Linux(推荐Ubuntu22.04.3LTS)可选配置:NVIDIAGPU(CUDA支持)1.Linux环境搭建建议双系统安装Ubuntu,具体参考如下教程:参考教程:Windows和Ubuntu双系统的安装和卸载(哔哩哔哩)2.GPU
- 【零基础入门unity游戏开发——2D篇】SpriteEditor图片编辑器
向宇it
#unity编辑器游戏引擎c#开发语言
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把【零基础入门unity游戏开发】分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unit
- 深刻解析如何解决在pycharm中导入tensorflow的子模块keras时的报错(导入语法正确)
lovingf
pycharmpythontensorflowkeras
只是导入时报错,但代码仍可以运行1.导入方式正确,但pycharm将其标红2.通过查看tensorflow的官方文件,猜测可能是python版本不适配python需为python3.6-3.9,而我的为python3.113.配置python3.9的环境(详情可看我的另一篇文章),但依然报错4.经过仔细分析,觉得可能是pycharm与tensorflow的适配问题,pycharm无法寻找到tens
- 如何快速开发一个鸿蒙app
深山技术宅
鸿蒙harmonyos华为
快速开发一个鸿蒙(HarmonyOS)App的关键在于利用好官方提供的工具链、模板和资源。以下是一个高效且实用的步骤指南,帮助你快速上手:核心步骤概览:环境搭建创建项目(选择模板)理解核心概念&编写UI实现基础功能预览&调试编译&运行(可选)发布到AppGallery1.环境搭建(基础,必须)操作系统:Windows10(64位)/macOS10.13或更高版本。安装Node.js(>=14.19
- 链表重排序问题
VictorWuuu
算法链表数据结构后端
链表重排序问题(1→2→…→n变为1→n→2→n-1→…)问题分析这道题目要求我们将一个链表从1→2→...→n重排为1→n→2→n-1→...的形式,并且要求空间复杂度为O(1)。例如:输入:1→2→3→4→输出:1→4→2→3输入:1→2→3→4→5→输出:1→5→2→4→3解题思路由于空间复杂度限制为O(1),我们不能使用额外的数据结构(如数组)来存储节点。可以通过以下步骤实现:找到链表中点
- 计算整数二进制中1的个数
VictorWuuu
算法算法后端
Golang实现:计算整数二进制中1的个数(包含负数补码)问题分析这道题目要求我们计算一个整数的二进制表示中1的个数,对于负数需要考虑其补码形式。例如:输入:5(二进制:101)→输出:2输入:-3(二进制补码:1111...1101)→输出:31(32位系统下)解题思路我们可以利用位运算中的与运算(&)来检查整数的每一位是否为1。具体步骤如下:初始化计数器为0通过循环检查整数的每一位:将整数与1
- 我的第一个开源项目:用Python搭建轻量级静态网页服务器—— 零基础也能实现的Web开发初体验
一、为什么选择静态服务器?极简高效:无需数据库或复杂后端逻辑,适合展示简历、作品集等静态内容学习曲线平缓:是理解HTTP协议和Web服务原理的最佳入门方式资源消耗低:单文件Python脚本即可运行,内存占用小于10MB二、完整开发流程(含代码逐行解析)第一步:创建项目结构PWS/#项目根目录├──static/#静态资源文件夹│├──index.html#主页│├──style.css#样式表│└
- 安装milvus数据库
weixin_44080967
milvus数据库
#创建保存目录mkdir-pdocker_images_backupcddocker_images_backup#1.保存Milvus镜像dockersave-omilvus_latest.tarmilvusdb/milvus:latest#2.保存MinIO镜像dockersave-ominio_latest.tarminio/minio:latest#3.保存ETCD镜像dockersave-
- goland设置goroot_GoLand安装及环境配置
weixin_39885383
goland设置goroot
前因后果:新学期新气象,开学的第一节课是zw老师的区块链技术与应用领域,congratulations!涉及编程实验,使用Go语言,需要安装GoLand软件进行下一步。进去之后选择对应的版本下载,这里我下的Windows64的。完成之后开始安装,一路next直到完成,需要注意的就是安装路径,默认是C盘,这里我更改为了E盘。接下来进行Go语言坏境变量的配置,非常熟练的打开环境变量。坏境变量打开方式:
- 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历(多种解法的进阶)
小可爱amour
每日一题算法技巧leetcode二叉树
144.二叉树的前序遍历题目:给定一个二叉树,返回它的前序遍历。示例:输入:[1,null,2,3]1\2/3输出:[1,2,3]解法1:递归classSolution{private:voidtakeVal(TreeNode*root,vector&res){if(NULL==root)return;res.push_back(root->val);takeVal(root->left,res)
- Svelte学习笔记六:谈谈双向绑定的使用
月半叫做胖
Svelte前端学习svelte前端框架
表单元素的双向绑定1.input受控绑定使用bind关键字进行绑定,svelte通过bind关键字来完成类似v-model的双向绑定textcheckboxnumberrangeselectletquestions=[{id:1,text:'question1'},{id:2,text:'question2'},{id:3,text:'question3'}];letselected=1;{#ea
- 新手如何本地构建Milvus向量数据库
BeMiracle~
milvus数据库
简单构建一个Milvus数据库一、前言:什么是Milvus数据库二、安装Docker官方下载地址:配置Docker三、安装Milvus四、Milvus关键概念介绍1、首先创建数据库2、然后创建逻辑定义3、添加字段4、创建集合collection5、建立索引(有索引才能查询数据)6、插入更新删除数据7、查询数据(查询limit个相似向量)一、前言:什么是Milvus数据库Milvus是一款开源向量
- 鸿蒙内核源码分析(互斥锁篇) | 互斥锁比自旋锁丰满多了
OpenHarmony_小贾
移动开发HarmonyOSOpenHarmonyharmonyos移动开发OpenHarmony鸿蒙开发内核机制
内核中哪些地方会用到互斥锁?看图:图中是内核有关模块对互斥锁初始化,有文件,有内存,用消息队列等等,使用面非常的广.其实在给内核源码加注的过程中,会看到大量的自旋锁和互斥锁,它们的存在有序的保证了内核和应用程序的正常运行.是非常基础和重要的功能.概述自旋锁和互斥锁虽都是锁,但解决的问题不同,自旋锁解决用于CPU核间共享内存的竞争,而互斥锁解决线程(任务)间共享内存的竞争.自旋锁的特点是死守共享资源
- strings.ToLowerSpecial 使用详解
幸享龙枫
golanggolang
目录1.官方包2.支持版本3.官方说明4.作用5.实现原理6.推荐使用场景和不推荐使用场景推荐场景不推荐场景7.使用场景示例示例1:官方示例示例2:德语内容处理(保留ß不变)8.性能及同类对比性能特点对比其他方法(转换100KB土耳其语文本)9.总结特性说明对比总结表最终建议1.官方包是的,strings.ToLowerSpecial是Go语言标准库strings包中的函数,属于官方提供的核心功能
- WIN11实现链路聚合/端口聚合
蒙山蒙水
硬件网络链路聚合端口聚合win11windows11
引用:https://www.ejiadc.cn/2024/07/1719831104322提示:配置链路聚合/端口聚合时,交换机和电脑之间只能有一根网线相连,否则会导致环路。端口聚合配置完成后,再加上多条网线。创建过程win11目前只支持通过自带的powershell进行链路聚合配置,简单配置过程记录如下:
- GDAL读取Jpeg2000格式图像
蒙山蒙水
C++算法图像处理c++GDAL遥感JPEG2000
JPEG-2000标准支持无损和有损压缩,并且支持单图像分量(如灰度图像)和多图像分量(如彩色图像)。除了基本的图像压缩功能外,还支持其他的功能:1)对图像进行按精度或者按分辨率来渐进显示。2)感兴趣编码,就是对不同的图像区域给予不同的精度。3)对图像的某个区域进行随机访问时,不用对整个码流进行解码。4)提供一种灵活的图像格式,这种格式能够分辨出那些是图像数据信息,那些是码流内部信息。5)具有较好
- Golang ToLower和ToLowerSpecial源码探究
ob767
golang
本文简单探索ToLower方法及SpecialCase的使用方法和实现,如果只关注SpecialCase方法的同学可以直接跳转至分割线以下问题起因是使用strings包中的ToLower时转换小写结果与预期不相符a:="ADASD$%^*@%3Ω"fmt.Println(strings.ToLower(a))//adasd$%^*@%3ω本只想将A-Z进行大小写转换,但strings.ToLowe
- Linux性能优化原理和实战 文章汇总【建议收藏】
锅锅来了
Linux性能优化原理和实战linux性能优化运维
Linux性能优化原理和实战【网络】Linux内核优化实战-net.ipv4.neigh.default.gc_stale_time发布于2025-07-0112:43:21【网络】Linux内核优化实战-net.ipv4.conf.default.arp_announce发布于2025-07-0112:39:34【网络】Linux内核优化实战-net.ipv4.conf.all.rp_filte
- 第十三节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门 - 接口操作审计日志功能
锅锅来了
Vbenpythonflask开发语言
Vben5系列文章目录基础篇✅第一节:VbenAdmin最新v5.0(vben5)+PythonFlask快速入门✅第二节:VbenAdmin最新v5.0(vben5)+PythonFlask快速入门-PythonFlask后端开发详解(附源码)✅第三节:VbenAdmin最新v5.0(vben5)+PythonFlask快速入门-对接后端登录接口(上)✅第四节:VbenAdmin最新v5.0(v
- Python XPath语法完全指南:从基础到高级应用
红皮西瓜绿了心
python爬虫
PythonXPath语法完全指南:从基础到高级应用XPath(XMLPathLanguage)是一种用于在XML和HTML文档中查找信息的语言,广泛应用于网页抓取、数据提取和自动化测试等领域。本文将全面介绍XPath的核心语法和高级用法,帮助您掌握这一强大的数据定位工具。一、XPath基础语法1.1节点选择XPath提供了多种节点选择方式:/:从根节点开始的绝对路径(如/html/body/di
- 【基础】Golang语言开发环境搭建(Linux主机)
锅锅来了
Golang运维开发实战手册linux运维开发golang
目录1.下载并安装Go语言2.配置环境变量3.验证安装4.配置Go模块5.安装常用开发工具6.配置IDE(可选)7.第一个Go程序在Linux主机上搭建Golang开发环境,你可以按照以下步骤进行操作:1.下载并安装Go语言首先从官网下载Go语言的Linux版本,然后解压到指定目录:#下载Go1.23.10版本(根据需要选择最新稳定版)wgethttps://golang.google.cn/dl
- 设置cursor、vscode的默认终端
啥都不会工程师
vscodeide编辑器
一般来说设置为command会比较好,比较方便和anaconda连用。但是正常来说默认是powershel,参考了别的帖子先用ctrl+shift+p调出命令输入settingsjson进入修改为:{"terminal.integrated.profiles.windows":{"CommandPrompt":{"path":"C:\\Windows\\System32\\cmd.exe"},"P
- 【数据库】-2 mysql基础语句(上)
艾伦_耶格宇
数据库数据库mysql
文章目录1、SQL语句1.1SQL语句的简要介绍2、SQL语句的四种基本类型2.1DDL-数据库定义语言管理对象修改表的结构2.2DML-数据库操纵语言2.3DQL-数据库查询语言2.4DCL-数据库控制语言1、SQL语句1.1SQL语句的简要介绍SQL(StructuredQueryLanguage,结构化查询语言)是用于管理关系型数据库的标准语言,广泛应用于数据存储、查询、更新和管理等场景。它
- libc6 2.38下载包
c+m+n
ubuntu
Ubuntu–软件包下载地址选集--libc6_2.38-1ubuntu6.3_amd64.deb
- 数据库Mysql基础------第一部分 数据的准备与基础命令
Judy~judy
数据库数据库mysql
一、初识数据库一、为什么要用数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库数据库随时随地的存在,并且使用,简单的说,数据库就是收集数据的结构。数据涉及很多,例如一个产品属于种类,并且有自己的数据标签,这就是为什么要用关系型数据。在关系数据库,我们建模数据包括产品,品类,标签等等,所有这些都用一个表格,包含行和列,就像Excel中的电子表格。从文件中读取数据的反序列化操
- python安装apk到手机_Python3 UI 自动化通过线程解决安装 apk 时的权限弹窗 (一)
张云雷宝宝
python安装apk到手机
#-*-coding:utf-8-*-#@author:xiaoxiao#@date:2019/4/6importthreadingimportosimportuiautomator2asu2driver=u2.connect("882QADT9UWT")classusb_install_thread(threading.Thread):#安装确认def__init__(self):threadi
- js实现的前端水印
k0933
记录javascript前端开发语言
效果vardefaultConfig={content:[],//水印内容数组fontSize:14,//字体大小(px)fontFamily:'sans-serif',//字体color:'rgba(255,255,255,.3)',//字体颜色rotate:-20,//旋转角度(度数)zIndex:2147483647,//层级globalAlpha:0.5,//透明度canvasWidth:
- 统信UOS_麒麟KYLINOS上安装特定版本python_统信uos安装python
m0_60635001
程序员pythonlinux开发语言
获取:17https://professional-packages.chinauos.com/desktop-professionaleagle/mainamd64libgpg-error-devamd641.35.3-1+dde[123kB]获取:18https://professional-packages.chinauos.com/desktop-professionaleagle/mai
- LD_TRACE_LOADED_OBJECTS
想和我重名?
小Tipslinux
LD_TRACE_LOADED_OBJECTSExample:LD_TRACE_LOADED_OBJECTS=1$(可执行程序)#LD_TRACE_LOADED_OBJECTS=1/bin/busyboxlibc.so.0=>/lib//libc.so.0(0xb6f3c000)ld-uClibc.so.1=>/lib/ld-uClibc.so.0(0xb6fc8000)#LD_TRACE_LOA
- 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