- JS深入解析函数及变量
天涯学馆
大前端&移动端全栈架构javascriptecmascript前端架构
目录构造函数new关键字的运作机制严格模式函数表达式与函数声明变量提升函数组合深递归与尾递归构造函数定义构造函数
- JS 深度解析Function模式
天涯学馆
大前端&移动端全栈架构javascriptecmascript前端架构原型模式
目录函数作为基本数据类型函数作为对象函数作为构造函数函数作为类的替代品函数作为高阶组件箭头函数与常规函数的区别
- JS 深入理解代码复用模式
天涯学馆
大前端&移动端全栈架构javascript原型模式前端
目录对象Object构造函数组合/混入(Mixins)模块化高阶函数装饰器设计模式其他复用技术JavaScript中的代码复用模式,需要探讨多种实现代码复用的技术手段和策略,包括但不限于原型继承、构造函数、
- JS 全面解析Module模式
天涯学馆
大前端&移动端全栈架构javascript前端开发语言
目录基本结构与原理优点应用场景扩展与变体JavaScriptModule模式是一种设计模式,用于封装和管理代码,提供私有变量、私有方法和公有接口,实现模块化编程。Module模式通过闭包来创建一个封装的私有作用域,同时允许对外暴露必要的接口。基本结构与原理Module模式的核心是一个自执行的匿名函数,它返回一个对象,该对象包含公有接口。基本结构如下:constMyModule=(
- CSS实验性功能及CSS4特性
天涯学馆
大前端&移动端全栈架构css前端
CSS4目前仍然是一个宽泛的概念,因为CSS的发展通常是通过一系列逐步完善的模块来进行的,而不是一次性推出一个全新的“第四代”。许多所谓的“CSS4”特性实际上是正在开发或已经草案阶段的CSS模块,它们可能在未来的CSS规范中被正式采纳。选择器4::is()和:where()伪类允许动态选择一组元素。:has()伪类选择器允许基于子元素选择父元素。:scope伪类用于在ShadowDOM中选择元素
- CSS预处理器Stylus
天涯学馆
大前端&移动端全栈架构cssstylus前端
CSS预处理器StylusStylus是一款高效的CSS预处理器,它提供了简洁灵活的语法来帮助开发者更高效地编写和管理CSS代码。下面是一些基础到进阶的Stylus代码教程,涵盖变量、嵌套、混合、继承、运算符等核心特性。1.安装Stylus在项目中使用Stylus前,你需要先安装Stylus编译器。如果你使用的是Node.js,可以通过npm安装:npminstall-Dstylus2.基本使用变
- CSS3过滤与混合模式
天涯学馆
大前端&移动端全栈架构css3前端css
过滤与混合模式filterfilter属性应用于元素本身,允许您对元素的内容(包括其子元素)应用图形效果,如模糊、阴影、颜色调整等。这有助于实现图像编辑软件中常见的视觉效果。其基本语法如下:element{filter:none|[]*|;}none:无滤镜效果。:滤镜函数,常见的包括:blur(px):模糊效果,参数为模糊半径(像素值)。
- HTML5 拖拽API应用
天涯学馆
大前端&移动端全栈架构html5前端html
HTML5拖拽API应用目录设置可拖动元素监听拖拽事件设置目标区域使用dataTransfer对象传递数据自定义拖动图像HTML5拖拽API允许开发者创建交互性强的web应用,让用户能够直接在浏览器中拖动元素,并将其放置到其他位置或目标元素上。设置可拖动元素要使一个HTML元素可拖动,需要为其添加draggable=“true”属性。Dragme!监听拖拽事件可拖动元素上可以绑定以下拖拽相关事件的
- Vue 3 30天精进之旅:Day 03 - Vue实例
码上飞扬
vue.js前端javascript
引言在前两天的学习中,我们成功搭建了Vue.js的开发环境,并创建了我们的第一个Vue项目。今天,我们将深入了解Vue的核心概念之一——Vue实例。通过学习Vue实例,你将理解Vue的基础架构,掌握数据绑定、模板语法和指令的使用方法。1.什么是Vue实例?Vue实例是Vue.js应用的根实例,作为应用的核心,它将数据与视图联系起来。每个Vue应用都是通过创建一个Vue实例来启动的。Vue实例通过配
- 如何用python读取流量包
谛听汪
网络
要用Python读取流量包,你可以使用网络编程库,例如scapy或pyshark。使用scapy,你需要安装它并导入scapy库。然后,你可以使用sniff()函数捕获流量包。例如:fromscapy.allimport*defpacket_callback(packet):print(packet.show())#使用默认的网卡捕获流量包sniff(prn=packet_callback)#使用
- 构建一个安全可靠的身份认证中心和资源服务中心:SpringSecurity+OAuth2.0的完美结合(一)
凛鼕将至
Java技术栈高级攻略java安全架构安全
本系列文章简介:本系列文章将详细介绍如何使用SpringSecurity和OAuth2.0构建身份认证中心和资源服务中心。我们将从基本的认证和授权开始,逐步扩展到高级功能,如单点登录、多因素认证等。同时,我们还将介绍如何使用SpringSecurity和OAuth2.0提供的其他功能,如注销、记住我等。通过本系列文章的学习,大家将掌握如何使用SpringSecurity和OAuth2.0构建一个安
- python scapy模块_python使用scapy模块实现ping扫描
漆园吏
pythonscapy模块
关于scapyScapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。换言之,Scapy是一个强大的操纵报文的交互程序。它可以伪造或者解析多种协议的报文,还具有发送、捕获、匹配请求和响应这些报文以及更多的功能。Scapy可以轻松地做到像扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试
- spring security oauth2.0 实现
weixin_33726943
json数据库java
oauth应该属于security的一部分。关于oauth的的相关知识可以查看阮一峰的文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html一、目标现在很多系统都支持第三方账号密码等登陆我们自己的系统,例如:我们经常会看到,一些系统使用微信账号,微博账号、QQ账号等登陆自己的系统,我们现在就是要模拟这种登陆的方式,很多大的公司已经实现了这种
- Vue 实现mvvm框架
Jarvan大熊
Vue.js
最近手痒,当然也是为了近阶段的跳槽做准备,利用周五时光,仿照vue用法,实现一下mvvm的双向绑定、数据代理、大胡子{{}}模板、指令v-on,v-bind等。当然由于时间紧迫,里面的编码细节没有做优化,还请各位看官多多包涵!看招:实现原理数据的劫持观察(observe)观察者模式(watcher)使用es6的类class实现(当然,没有考虑到兼容性,只是为了实现而已)代码:数据劫持_observ
- android嵌入式开发环境搭建,2024最新腾讯Android面试分享
2401_84414990
程序员android面试职场和发展
Android开发面试的几部分1、基础知识基础知识包括几个部分:Java(JDK、JVM)、Android、数据结构和算法、计算机基础、设计模式,有的还会问Flutter。Java部分:不太推荐这部分只看博客,因为很多博客并不系统也不完整,推荐完整看一遍《深入理解Java虚拟机》这本书,基本上这里面涵盖了JVM相关的所有面试问题,包括内存分区、GC机制、内存模型、锁、字节码、类加载等。JDK的部分
- 设计模式-策略模式
whale fall
设计模式设计模式策略模式
策略模式(StrategyPattern)是一种行为设计模式,它定义了一系列算法(策略),并将每个算法封装起来,使得它们可以互相替换。策略模式让算法的变化独立于使用算法的客户端。即将不同的算法封装成独立的策略类,然后在运行时根据需求选择具体的策略进行操作。下面是一个使用Python实现策略模式的示例。1.定义策略接口首先,定义一个策略接口(在Python中通常是一个抽象基类),该接口描述所有策略类
- python list列表删除指定元素的四种方法
whale fall
python进阶python
在Python中,要删除列表中的某个元素,可以使用几种不同的方法,具体取决于你希望如何删除该元素。以下是一些常见的方法:1.使用remove()方法remove()方法会删除列表中第一次出现的指定元素。如果该元素不存在,会引发ValueError错误。my_list=[1,2,3,4,5]#删除值为3的元素my_list.remove(3)print(my_list)输出:[1,2,4,5]2.使
- 小米盒子显示服务器断开,小米盒子故障原因排查及检修方法
未登录导
小米盒子显示服务器断开
小米盒子无法开机怎么办?小米盒子没有关机功能,通电即会自动开机;无法开机的原因可能与供电不足或者系统数据异常有关。1.检查电源插座是否正常工作。检查插座指示灯,或者连接其它插座验证。(小米盒子mini没有指示灯)2.若可以显示系统启动界面,但无法正常进入系统桌面的,参考如下2个方面排查:①将盒子断开电源,再重新通电。设备会重新尝试加载系统。②从关机状态进入“系统恢复”模式,清除数据再尝试开机。小米
- 探索Labelbox:打造自定义标注应用的利器!
孔旭澜Renata
探索Labelbox:打造自定义标注应用的利器!去发现同类优质开源项目:https://gitcode.com/项目介绍Labelbox是一款专为企业级客户设计的高级数据标注工具。它允许用户构建自己的定制标注界面(编辑器),提供强大的API和SDK,以适应各种复杂的数据标注需求。无论你是人工智能研究者、数据科学家还是软件开发者,Labelbox都能帮助你高效、精准地处理你的数据。技术分析Label
- 2025美赛数学建模F题:网络安全强大——思路+代码+模型
灿灿数模分号
web安全安全网络
详细思路更新见文末名片2025ICM问题F:网络安全强大?背景:我们世界的更多部分已经通过现代技术的奇迹互联起来。尽管这种在线连接性提高了全球生产力,并使世界变得更小,但它也增加了我们个人和集体在网络犯罪方面的脆弱性。网络犯罪之所以难以应对,原因有很多。许多网络安全事件跨越国界,使得调查和起诉这些犯罪时的管辖问题变得复杂。此外,许多机构,如投资公司,宁愿支付赎金而不报告被黑客攻击,避免让客户和潜在
- 2025美赛数学建模MCM/ICM选题建议与分析,思路+模型+代码
灿灿数模分号
数学建模
2025美赛数学建模MCM/ICM选题建议与分析,思路+模型+代码,详细更新见文末名片一、问题A:测试时间:楼梯的恒定磨损(ArchaeologicalModeling)适合专业:考古学、历史学、数学、机械工程难度:中等开放度:中等问题A让学生探索如何根据楼梯的磨损情况推断楼梯的使用情况。这个问题涉及到对磨损的定量分析,并通过历史记录推测使用模式。该题目适合对历史、考古以及机械磨损有兴趣的学生,尤
- 重修设计模式-行为型-责任链模式
丶白泽
重修设计模式设计模式okhttp责任链模式
重修设计模式-行为型-责任链模式将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。责任链模式(ChainofResponsibilityPattern)也叫职责链模式,通过将请求的处理分配给一系列的处理对象,这些处理对象通过链式结构组织起来,以实现对请求的灵活处理。比如,一个请求先经过A处理器处理,
- 集群部署时的分布式 Session 如何实现?
码农小旋风
后端
面试题集群部署时的分布式Session如何实现?面试官心理分析面试官问了你一堆Dubbo是怎么玩儿的,你会玩儿Dubbo就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务、接口幂等性、分布式锁,还有最后一个就是分布式Session。当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的时候常问的几个。面试题
- pip 修改国内源
sftxlin
pip
在Windows系统中修改Python的pip源,可以让你更快地安装Python包,特别是在中国地区,使用国内的源可以显著提高下载速度。下面是详细的步骤:打开命令提示符按下Win+R键,输入cmd,然后按下回车,打开命令提示符。创建或修改pip配置文件在命令提示符中输入以下命令,以创建或修改pip配置文件:arduinoCopycodepipconfigsetglobal.index-urlhtt
- [Python] MacOS 修改 pip 源为国内源
Cassius_Zeo
pythonpythonmacospip
Step1:创建.pip文件夹mkdir~/.pipStep2:设置国内源(如果你是python3,需将pip修改为pip3)--清华源pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple--阿里源pipconfigsetglobal.index-urlhttps://
- sqlite基础
CherishTaoTao
sqlitesqliteoracle数据库
在SQLite中,可以使用CREATEINDEX语句为表中的字段添加索引,以加速查询操作。1.为单个字段添加索引假设有一个表users,并且你想为email字段创建索引:CREATEINDEXidx_users_emailONusers(email);这条语句会为users表的email字段创建一个名为idx_users_email的索引。2.为多个字段添加复合索引如果你希望为多个字段创建联合索引
- flutter中常见的跨组件通讯方式
面壁思过程
flutter开发flutter跨组件通讯
在Flutter开发中,事件管理和组件间通信是非常重要的。EventBus和NotificationListener是两种常用的模式,它们各自有不同的使用场景和优势劣势。本文将对这两者进行比较分析,并提供代码示例。在Flutter开发中,事件管理和组件间通信是非常重要的。EventBus、NotificationListener和观察者模式是常用的三种模式,它们各自有不同的使用场景和优势劣势。本文
- 面试官:Kafka是什么,它有什么特性与使用场景?
字节全栈_rJF
kafkalinqwpf
坐上了进京的大巴车,车子缓缓开动,我的内心五味杂陈,这一去不知道几天才能找到工作,晚上不知道去哪里落脚呢。车子越来越堵,我就知道快要到了,看着窗外慢慢从破旧平房转变成了高楼大厦,我不由得感慨,什么时候这里才能有我的一席之地啊。二、面试==================================================================进了京我一刻也不敢停歇,马上找到要
- 遥感中的反演
ximenchuixuezijin
工作农业算法金山网络io
反演在遥感中是什么意思?按楼主的需求回答:一句话--遥感的本质是反演。具体解释:遥感的本质是反演,而从反演的数学来源讲,反演研究所针对的首先是数学模型。因此,遥感反演的基础是描述遥感信号或遥感数据与地表应用之间的关系模型,也就是说,遥感模型是遥感反演研究的对象。要进行遥感反演研究,首先要解决的问题是对地表遥感像元信息的地学描述。遥感像元尺度上的地学描述是十分有意义的课题,由于地球表面是一个复杂的系
- 1.Introduction to Spring Web MVC framework
Freeking1024
SpringMVC前端mvcspring
WebMVCframework文档:22.WebMVCframework(spring.io)概述WebMVC框架(WebModel-View-ControllerFramework)是一种用于构建Web应用程序的软件架构模式。MVC模式将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种分离有助于组织代码和简化开发和维护过程。以下是MVC框架的三
- 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