- 知识篇:(二十三)深入理解 Vue 的异步更新机制:为何数据更新延迟
全栈探索者chen
vuevue.js前端javascript开发语言ecmascript性能优化学习
知识篇:(二十三)深入理解Vue的异步更新机制:为何数据更新延迟目录前言异步更新机制简介Vue异步更新的工作原理3.1nextTick与事件循环的关系3.2微任务与宏任务为什么Vue使用异步更新?4.1性能优化和批量更新4.2实例化组件的优化实际应用:数据更新延迟的常见问题和应对策略5.1数据更新延迟带来的问题5.2正确使用nextTick的策略实战案例:计数器组件的延迟更新问题深入分析:优化异步
- Vue 3 生命周期函数详解
licy__
vue.js前端javascript
Vue3生命周期函数详解引言Vue.js是一个渐进式的JavaScript框架,用于构建用户界面。Vue3在性能、API设计和开发者体验方面进行了重大改进。理解Vue3的生命周期函数(LifecycleHooks)对于开发高效的Vue应用至关重要。本文将详细介绍Vue3的生命周期钩子、每个阶段的作用及其代码示例,帮助读者更好地掌握这一重要概念。1.Vue3生命周期概述Vue实例从创建到销毁经历了一
- js:根据后端返回的数组取出每一个数组的keyword字段然后拼接成一个逗号分隔的字符串
fury_123
elementuivue3jsjavascript开发语言ecmascript
问:现在有一个el-select,后端接口返回数据为keyword:'xxx',referenceNum:1,tagId:'132sf32fasdfaf'组成的数组,现在select是多选,但是但我选择多个下拉框选项后,后端需要前端返回的数据tagIds字段需要时一个字符串,比方:'132sf32fasdfaf,132sf32fasdfaf,132sf32fasdfaf'这样的字符串,中间逗号要是
- Uniapp 小程序获取用户手机号功能实现
前端小雪的博客.
uni-app小程序
在开发Uniapp小程序时,获取用户手机号是一个常见的需求,比如用于用户注册、身份验证等场景。下面将详细介绍如何在Uniapp小程序中实现获取用户手机号的功能。前端代码实现1.uniapp自带按钮在页面中添加一个按钮,当用户点击该按钮时,会触发获取手机号的操作。这里使用v-if指令判断当前平台是否为微信小程序,只有在微信小程序环境下才显示该按钮。去绑定2.处理获取手机号事件在script部分,实现
- element-ui中树状图el-tree的使用(vue2)
前端小雪的博客.
javascript前端vue.js
热乎的,话不多说上代码html部分://data:展示的数据//accordion:是否每次只打开一个同级树节点展开//props:配置选项默认值//expand-on-click-node:默认为true,值为false时点击小箭头才会展开收缩节点//filter-node-method:返回true节点可以显示,false节点会被隐藏//node-key:每个树节点的唯一标识//default
- 关于uniapp和H5的通信交互传参问题
水水水水水水水水水水水
uni-app交互
在h5index.html中引入1.在uniapp中创建webview通信的vue页面2.h5通信webview中绑定@messageuvue中绑定@onmessage3.h5组件中获取从uniapp传过来的参数(生命周期中获取)constqueryString=window.location.search;//使用URLSearchParams对象解析查询字符串consturlParams=ne
- jenkins自动打包vuejs部署到docker
戚辰先生丶
流程1、配置jenkins-git项目克隆2、配置运行jenkins的shell脚本3、编写Dockerfile自动制作镜像并复制jenkins打包好的文件到容器里4、jenkins负责运行docker命令进行停止、删除原有镜像,并重新运行镜像docker部署jenkinsdockerrun-d-p8086:8080-p50000:50000-v/var/run/docker.sock:/var/
- Jenkins部署GitHub上的前端项目
2401_84150191
程序员jenkinsgithub前端
构建–选择执行shell,这里请安装cnpm,构建速度快,且容易报错。echo$PATHnode-vnpm-vnpminstall-gcnpm--registry=https://registry.npm.taobao.orgcnpminstallnpmrunbuild如果部署到服务器的话,建议打包cddisttar-zcvfdist.tar.gz*构建后步骤,发布到远程服务器这里我们时使用doc
- 探索未来科技:PositronV3 - 高性能全栈Web框架
毕艾琳
探索未来科技:PositronV3-高性能全栈Web框架去发现同类优质开源项目:https://gitcode.com/是一个强大且灵活的全栈Web开发框架,专为高效、可扩展和易于维护的应用程序设计。它集合了现代前端和后端技术,提供了一站式解决方案,让开发者能够快速构建复杂的Web应用程序。技术分析PositronV3的核心架构基于Node.js,利用其非阻塞I/O模型提供了高性能的服务端处理能力
- 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
从Chrome125开始,支持了一个全新的CSS特性-AnchorPositioning,翻译过来即是锚点定位。在之前的文章中,我们较为系统的讲述了这个新特性的使用,感兴趣的可以翻开一下前文:抢先体验!超强大的AnchorPositioning锚点定位。在本文中,我们将使用锚点定位,实现一个简化版本的Popover功能。下面,我们将一起一探究竟。传统Popover功能长话短说,在日常的前端需求开发
- vue组件间通信的八大方法
@LitterFisher
vuejavascript前端es6
再读vue官方文档系列文章目录vue组件间通信的八大方法文章目录再读vue官方文档系列文章目录前言一、通信种类?二、八大通信方式1.props和$emit2.$parent和$children3.provide和reject4.ref/refs5.Vuex6.slot7.$attrs和$listeners8.localStorage和sessionStorage总结前言刚开始学vue的时候只是读了
- 恢复更新--vue源码系列1之如何看源码
@LitterFisher
vuevue.jsjavascript前端
年过完了,是时候学习了(狗头)。文章目录前言一、前提二、如何看1.学会断点debuger2.整体看代码3.结合别人的vue源码解释总结前言本系列为vue2.6版本的源码分析系列一、前提你总不能一个vue的项目也没写过吧二、如何看1.学会断点debuger巧妙运用这个你会发现看源码会轻松很多。(相信我如果不是很快你就从入门到放弃)为什么?vue里面做了很多性能优化,参数初始化的工作,如果你全部看完,
- 当Vue组件的复用性不是很高的时候,组件化还有必要用vue吗?
百锦再@新空间代码工作室
包罗万象vue.js前端javascript前端框架组件复用
图片:Vue作为一个轻量级的前端框架,在个性化开发中的使用非常广泛,尤其是其组件化开发的思想可以有效提升开发效率、可维护性和代码复用性。不过,正如你提到的,当Vue组件的复用性不高时,组件化是否还必要、是否还有使用Vue的必要性就变得有些模糊了。一、Vue组件化开发的优势组件化思想Vue的组件化开发思想,使得开发者可以将UI和业务逻辑划分为不同的模块。每个模块(组件)都可以独立开发、调试、测试和维
- 与Vue共舞:从初识到构建数字世界的艺术之旅
skyksksksksks
综合个人杂记vue.js前端开发语言前端框架
第一章诞生记:一个框架的浪漫起源2013年的某个凌晨,上海某公寓的灯光依然明亮。前谷歌工程师尤雨溪在键盘前敲下第一行Vue代码时,或许并未想到这个框架将改变全球开发者的工作方式。当时的JavaScript世界正经历框架混战:Angular的复杂配置令人却步,React的函数式思维需要哲学顿悟。尤雨溪像一位精通东西方料理的主厨,将Angular的指令系统、React的组件化理念、Knockout的响
- vue3的实用工具库@vueuse/core
罗会
javascript前端vue.jsvueuni-app
1.什么是@vueuse/core是一个基于VueCompositionAPI开发的实用工具库,旨在通过封装高频功能为可复用的组合式函数(Composables),简化Vue应用的开发流程。提供200+开箱即用的函数,覆盖状态管理、浏览器交互、传感器、网络请求等场景,例如useStorage(状态持久化)1、useMouse(鼠标追踪)1;支持Vue2和Vue3,并通过@vueus
- Vue.js 编写组件单元测试
轻口味
VUE.JS入门与实践vue.js
Vue.js编写组件单元测试今天我们来聊聊如何编写Vue组件的单元测试。单元测试是确保我们组件逻辑正确、功能稳定的重要手段,通过自动化测试,我们可以及时发现问题,避免后期调试困难。下面我会详细介绍如何使用VueTestUtils和Jest来编写组件的单元测试,并提供一些实际的代码示例,帮助你快速上手。为什么需要编写组件单元测试在项目开发过程中,组件通常包含了各种业务逻辑和交互功能。编写单元测试能帮
- Vue函数式编程终极指南:像写诗一样写代码
lifire_H
vue.js前端javascript
引言:当Vue遇上函数式,优雅永不过时你是否见过这样的代码?组件间状态乱飞、副作用神出鬼没、单元测试如走钢丝……函数式编程就像代码界的“断舍离大师”,教你用纯函数、不可变数据和高阶魔法,让Vue代码变得干净、稳定且充满艺术感!本文不仅会揭秘函数式编程的核心心法,还会手把手教你:✅如何用CompositionAPI实现函数式优雅✅高阶函数与柯里化的实战妙用✅Vue3函数式组件性能优化秘籍✅配套工具链
- uniapp开发小程序手写板、签名、签字
故里2130
包教会专栏uni-app小程序
可以使用这个插件进行操作手写板-签名签字-lime-signature-DCloud插件市场但是目前这个插件没有vue3setupCompositionAPI的写法。所以对于此文档提供的可以直接使用,需要使用CompositionAPI方式实现的,可以继续看。因为CompositionAPI方式,更加的简单、灵活,在今后的编程之中要多用、多学,这样才能写出更加健壮的代码。1.首先建立一个可以运行的
- 蓝易云 - vue修改docker nginx版本
蓝易云
vue.jsdockernginx数据库正则表达式运维
要在Vue项目中修改Docker中的Nginx版本,可以按照以下步骤进行:打开项目目录,找到与Docker相关的配置文件,通常是Dockerfile。在Dockerfile中,找到关于Nginx的配置行,通常是类似于以下的命令:FROMnginx:version将version替换为你想要的Nginx版本,例如nginx:1.19.10。保存并关闭Dockerfile。执行Docker构建命令来
- uniapp+vue微信小程序项目中实现手机号授权登录
郭宝
Web前端微信java开发语言
效果图:实现方式:手机号授权登录open-type有效值值说明平台差异说明getPhoneNumber获取用户手机号,可以从@getphonenumber回调中获取到用户信息微信小程序、百度小程序、抖音小程序、支付宝小程序、快手小程序、京东小程序。App平台另见一键登陆getPhoneNumber(e){
- Springboot后台 uniapp前端 实现文件的下载与上传〖文件上传篇〗
ktoking
SpringbootUniapp工具utilSpringboot后台uniapp前端实现文件的下载与上传〖文件
Springboot实现文件的下载与上传最近一段时间要学习一下springboot为后台的文件上传也下载,前端部分我使用uniapp来写一.springboot后台部分注意Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录点此学习JAVA文件类controller实现上传单个文件(主要看注解)@Req
- 【uni-app】微信小程序使用lime-painter生成海报
cjsnyxz
前端
lime-painter是一个专为UniApp设计的插件,用于优雅地生成海报,并支持下载海报图片。它支持在多个平台中使用,并且提供了盒子、文字、图片、二维码等配置选项,允许开发者根据项目需求按照UI设计稿对海报进行高度还原。本文将介绍如何使用lime-painter插件在UniApp中实现海报的生成及下载。技术栈:uni-app、Vue3(3.4.21)、TypeScript(4.9.5)、wot
- 踩坑-vue3.0-uniapp-全局变量prototype失效
cometxd
原型模式javascript前端
项目场景:踩坑-vue3.0-uniapp-全局变量prototype失效问题描述踩坑-vue3.0-uniapp-全局变量prototype失效main.js中全局变量失效Vue.prototype.$testname="testNAME";解决方案:使用exportfunctioncreateApp(){constapp=createSSRApp(App)app
- 在React、Vue中使用vanilla-jsoneditor
ts_shinian_web
reactantdreact.js前端vuejson
在React中使用vanilla-jsoneditor一、使用vanilla-jsoneditor的场景1.安装依赖1.1安装vanilla-jsoneditor和React1.1安装vanilla-jsoneditor和Vue2.创建一个component组件2.1React创建一个新的组件,用于渲染vanilla-jsoneditor编辑器2.2Vue创建一个新的组件,用于渲染vanilla-
- React module CSS(React模块样式)
断下句号
reactjscsshtmlreact.js
React模块样式导入简介一开始开发react项目使用的是.css样式,在.js文件中引入并使用className,但是项目合并后发现.css样式会影响项目中其他组件的样式,然而在react中又不可以直接编写局部样式(在HTML和vue中可以编写scoped样式),所以改成以模块导入的形式编写组件样式。模块样式导入要点:选择器驼峰命名样式文件后缀名为.module.css在js文件中导入并使用1️
- 学习Flask:Day 2:模板与表单开发
昨今
学习flaskpython
学习目标:前后端混合开发#添加模板渲染fromflaskimportrender_template@app.route('/profile')defprofile():returnrender_template('profile.html',username="开发者",skills=['Vue','JavaScript'])✅实践任务:创建templates目录使用Jinja2语法制作包含循环和
- react module.scss 避免全局冲突类似vue中scoped
初遇你时动了情
reactvitecssreact.jsscssvue.js
创建index.module.scss文件src/components/MyComponent/index.module.scssindex.tsx2.编写index.module.scss内容//src/components/MyComponent/index.module.scss.container{padding:20px;background-color:#f0f0f0;.title{f
- JavaScript系列(87)--Webpack 高级配置详解
ᅟᅠ 一进制
JavaScript前端javascriptwebpack
Webpack高级配置详解️Webpack是前端工程化中最流行的构建工具之一,掌握其高级配置可以帮助我们构建更高效、更优化的应用。本文将深入探讨Webpack的高级配置技巧和最佳实践。Webpack核心概念回顾小知识:Webpack本质上是一个现代JavaScript应用程序的静态模块打包器。当Webpack处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这
- Svelte 最新中文文档教程(20)—— TypeScript
前言Svelte,一个语法简洁、入门容易,面向未来的前端框架。从Svelte诞生之初,就备受开发者的喜爱,根据统计,从2019年到2024年,连续6年一直是开发者最感兴趣的前端框架No.1:Svelte以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构建轻量级Web项目,也是我做个人项目的首选技术栈。目前Svelte基于Svelte5发布了最新的官方文档,但却缺少对应的中文
- canvas保存图片
初晨未凉
javascript前端开发语言
需求:上面有几个按钮,其中有一个切换是图片用v-if会导致图片加载慢实现方法:一进来就加载,通过监听元素显示,用于控制canvas的宽高,从而达到隐藏的效果组件dowolad.vue保存二维码exportdefault{props:['show'],data(){return{show:true,canvasId:'myCanvas',imagePath:'',canvaseAttr:{width
- 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