- 如何快速的用pdfjs建立一个网页可以在线阅读你的PDF文件
宇凡网络
pdfpdfjs
#如何快速的用pdfjs建立一个网页可以在线阅读你的PDF文件#也许很多人都用过这个pdfjs,我之前也用过,但是每次配置也是挺麻烦的,于是就写了一个页面远程调用CDN文件,这样一个页面就可以搞定,话不多说直接上代码:PDFViewer#pdf-container{width:100%;height:100vh;overflow:auto;display:flex;flex-direction:c
- Spring Boot如何利用Twilio Verify 发送验证码短信?
HBLOGA
SpringBootDemospringboot后端java
Twilio提供了一个名为TwilioVerify的服务,专门用于处理验证码的发送和验证。这是一个更为简化和安全的解决方案,适合需要用户身份验证的应用。使用TwilioVerify服务的步骤以下是如何在SpringBoot中集成TwilioVerify服务的步骤:1.添加依赖确保在pom.xml中添加Twilio的依赖(如果尚未添加):springboot-democom.et1.0-SNAPSH
- Sqlserver 常用的分页方式
呀243
sqlserver数据库sql
下面以取第11-15的数据为例1.row_number()over()加序号,通过序号取分页select*from(selectrow_number()over(orderbycreateTimedesc)asid,*fromtest)tmpwhereidbetween11and15总结:这种方式采用RowIdBETWEEN当前页数-1*页大小+1and页数*页大小,而且包含起始值与结束值。2.o
- JavaOOP03——多态
搬码红绿灯
java数据结构开发语言
目录一、多态的概念及重要性二、向上转型三、使用父类作为方法参数四、向下转型五、instanceof运算符一、多态的概念及重要性定义:多态是指同一个行为具有多种形态。在面向对象编程中,多态允许我们使用一个统一的接口来处理不同类型的对象。具体来说,多态可以通过方法重载(Overloading)和方法重写(Overriding)来实现。方法重载(Overloading)是在同一个类中定义多个同名方法,但
- el-table 手动选择展示列
前端小趴菜05
vue.jsjavascriptelementui
需求:由于表格的列过多,用滚动条进行滚动对比数据不方便,所以提出,手动选择展示列实现思路:表格默认展示所有字段,每个字段通过v-if属性来进行判断是否显示;点击设置按钮图标(表格右上角),弹出选择框el-popover;选择框中包括:全选复选框、所有字段复选框组el-checkbox-group、取消按钮、确定按钮;选择展示字段后,点击“确定”按钮:更新每个字段值的show属性(true/fals
- 我们为什么需要服务发现?服务发现的基本概念和流程,并通过实践案例说明如何利用服务发现构建微服务架构 Why Do We Need Service Discovery?
AI天才研究院
Python实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介在现代分布式系统架构中,服务发现(ServiceDiscovery)在微服务架构、云计算和容器化架构等方面扮演着至关重要的角色。服务发现旨在根据服务名、IP地址或其他标识符动态查找服务提供者的位置信息,包括网络地址、端口号、协议类型、QoS参数等。通常情况下,客户端应用需要通过服务发现模块获取服务提供者的可用性信息,并选择合适的服务实例进行访问,从而实现分布式系
- vue3+element plus@2.8.8 el-drawer在父组件内打开
md3356
前端elementuivue.js
解决问题后自存一下,这种小问题容易忘记遇到的问题:el-drawer默认附到body,使用append-to-body=false也无效内容内容核心问题:drawer_container和el-drawer中间其实还会自动添加一个div包裹住el-drawer,并且在element@2.8.8中没有class了,之前是el-overlay。解决方法:找到drawer_container的直接子节点
- IPoIB驱动中UD传输模式的实现原理与技术解析
109702008
编程#C语言网络linux网络tcp/ip
1.IPoIB传输模式概述IPoverInfiniBand(IPoIB)是Linux内核中实现的一种网络协议,允许在InfiniBand(IB)网络上传输IP数据包。IPoIB支持两种底层传输模式:UnreliableDatagram(UD):无连接传输模式,支持多播和广播ReliableConnected(RC):面向连接的可靠传输模式默认情况下,IPoIB选择UD模式作为数据传输的基础方式。本
- Ardusub源码剖析——GCS_Mavlink.h
我想发发发
#Ardusubc++无人机开源嵌入式硬件
代码#pragmaonce#includeclassGCS_MAVLINK_Sub:publicGCS_MAVLINK{public:usingGCS_MAVLINK::GCS_MAVLINK;protected:uint32_ttelem_delay()constoverride{return0;};MAV_RESULThandle_flight_termination(constmavlink
- webView2 隐藏滚动条
雾散睛明
WebView2webview2隐藏滚动条
参考:wenview2隐藏滚动条查看该链接内容,得知其主要是通过css修改body的overflow属性为:hide.这里贴出原链接的解决方案:privatevoidWebView2_NavigationCompleted(objectsender,CoreWebView2NavigationCompletedEventArgse){if(e.IsSuccess){((WebView2)sende
- hive alter table add columns 是否使用 cascade 的方案
houzhizhen
hivehive
结论altertablexxxaddcolumns时加上cascade时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。如果分区都是insertoverwrite生成的,并且旧分区的数据不再重新生成,可以在addcolumns不用cascade,这样旧的分区对应的列显示null。新的分区正常显示新增的列。如果分区都是
- NCU使用指南及模型性能测试(pytorch2.5.1)
Jakari
cudagpuncupythondocker深度学习pytorch
本项目在原项目的基础上增加了NsightCompute(ncu)测试的功能,并对相关脚本功能做了一些健硕性的增强,同时,对一些框架的代码进行了更改(主要是数据集的大小和epoch等),增加模型性能测试的效率,同时完善了模型LSTM的有关功能。OverviewNsightCompute(NCU)是NVIDIA提供的GPU内核级性能分析工具,专注于CUDA程序的优化。它提供详细的计算资源、内存带宽、指
- 粒子代码模块
倾听醉梦语
表白html
粒子特效body{margin:0;overflow:hidden;background:#000;}canvas{position:absolute;top:0;left:0;width:100%;height:100%;}import*asTHREEfrom"https://cdn.skypack.dev/three@0.136.0";import{OrbitControls}from"htt
- 微信小程序实现nfc功能(读取,写入)
_lucky_boy
新手小白微信小程序nfc标签卡前端微信小程序小程序
标签读取功能可以放到onLoad中,也可以是一个点击事件//获取NFC实例constnfc=wx.getNFCAdapter()//绑定监听NFC标签nfc.onDiscovered(res=>{//监听到数据进行返回根据返回的数据在进行处理console.log(9999,res)})//开始监听不能缺少nfc.startDiscovery({success(res){console.log(5
- Composer install 报错
要加油呀
问题整理composerphp
Composerinstall报错项目构建命令:composerinstall--no-dev--no-interaction-o--ignore-platform-reqs构建输出:没有错误,陷入死循环>Illuminate\Foundation\ComposerScripts::postAutoloadDump>@phpartisanpackage:discover--ansiDiscover
- Java基础语法练习37(枚举、注解(@Override、@Deprecated和@SuppressWarnings))
橙序研工坊
小白Java的成长java开发语言
一、枚举在Java中,枚举(enum)是一种特殊的数据类型,它允许开发者定义一组命名的常量集合先看正常示例,如下代码:publicclassEnum01{publicstaticvoidmain(String[]args){System.out.println(Season.SPRING.getName());}}classSeason{privateStringname;privateStrin
- Redis 哨兵模式
William Dawson
redis数据库缓存
哨兵模式(Sentinel)是Redis提供的一种高可用性(HighAvailability,HA)解决方案,用于监控和管理Redis主从架构中的主节点(Master)和从节点(Slave)。当主节点出现故障时,哨兵可以自动进行故障转移(Failover),将一个从节点提升为新的主节点,从而保证服务的持续可用。1.哨兵模式的作用监控:哨兵会不断检查主节点和从节点的健康状态。通知:当某个节点出现故障
- Flink SQL的Top-N实战
听挽风讲大数据
Flinkflink大数据
1Top-N目前仅Blink计划器支持Top-N。Top-N查询时根据列排序找到N个最大或最小的值。最大值集合最小值集都被视为是一种Top-N的查询。若在批处理或流处理的表中需要显示出满足条件的N个最底层记录或最顶层记录,Top-N查询将会十分有用。得到的结果集将可以进行进一步的分析。Flink使用OVER窗口条件和过滤条件相结合以进行Top-N查询。利用OVER窗口的PARTITIONBY子句的
- [Unity Mirror] 组件
RuntimeCube
UnityMirrorunity网络Mirror
这些核心组件包含在Mirror中:NetworkAnimatorNetworkAnimator组件允许您同步网络对象的动画状态。它同步来自AnimatorController的状态和参数。NetworkAuthenticator网络验证器有助于将用户帐户和凭据集成到您的应用程序中。NetworkDiscovery网络发现使用LAN上的UDP广播,使客户端能够找到正在运行的服务器并连接到它。Netw
- 缓冲区溢出漏洞的原理、成因、类型及最佳防范实践(借助Perforce 的Klocwork/Hleix QAC等静态代码分析工具)
代码质量代码分析
本文来源perforce.com,由Perforce中国授权合作伙伴-龙智翻译整理。缓冲区溢出(bufferoverflow/overrun)是最常见的代码漏洞之一。如果缓冲区溢出漏洞未得到解决,不可信的代理可能会利用该漏洞并发起攻击。本文将详细介绍什么是缓冲区溢出、如何防止缓冲区溢出并提供常见示例,帮助您更简单、更轻松地保护软件免受此类威胁。什么是缓冲区溢出?缓冲区溢出(bufferoverfl
- jenkins配置SSH远程服务器连接
放学后一起去放牛啊
jenkinsjenkinsssh服务器
之前用jenkins做了一个自动发布测试,配置任务的PostSteps时,选择的是执行shell命令。如下图:这是在本192.168.26.233服务器上测试的,此服务器上运行jenkins,tomcat。现在换另一种方式,把jenkins打好的包远程发送到另一台服务器上运行。第一步:安装pulishOverSSH插件在系统管理,插件管理里面搜索PulishOverSSH插件安装。第二步:安装好后
- Python解决Segmentation Fault错误
代码飞翔
网络linux运维Python
在Python编程中,有时候你可能会遇到"SegmentationFault"(分段错误)的错误。这通常是由于程序访问了无效的内存地址或者出现了内存访问冲突导致的。本文将向你介绍一些常见的原因和解决方法,帮助你解决Python中的SegmentationFault错误。缓冲区溢出(BufferOverflow)缓冲区溢出是导致SegmentationFault错误的常见原因之一。当你使用数组或者其
- 【Address Overfitting】解决过拟合的三种方法
HP-Succinum
机器学习机器学习数据分析
目录1.收集更多数据实践方法:适用场景:优缺点:2.特征选择方法介绍:实践示例:适用场景:优缺点:3.正则化(Regularization)正则化类型:实践示例:适用场景:优缺点:总结与对比总结在机器学习中,过拟合(Overfitting)是模型训练过程中常见的问题。它指的是模型在训练集上表现优秀,但在测试集或新数据上表现较差,无法很好地泛化。过拟合通常源于模型过于复杂或数据不足。本文将详细介绍解
- DeepSeek-OpenSourceWeek-第六天-Inference System Overview
数据分析能量站
机器学习人工智能
开源周的第6天,DeepSeek对DeepSeek-V3/R1推理系统进行了深入概述。本文将深入探讨该系统的设计原则、优化策略以及性能统计数据,重点突出在吞吐量和延迟优化方面取得的显著进展。1SystemDesignPrinciplesDeepSeek-V3/DeepSeekR1推理系统旨在实现更高的吞吐量(即单位时间内处理的数据量)和更低的延迟(即处理数据所需的时间)。为了达成这些目标,该系统采
- 从Google白皮书看企业安全最佳实践10
XSY- MT
安全
前不久Google发布了一份安全方面的白皮书GoogleInfrastructureSecurityDesignOverview,直译的版本可以参考“网路冷眼”这版《Google基础设施安全设计概述》,直译+点评的版本可以参考“职业欠钱”的《Google基础设施安全设计概述翻译和导读》。此前Google在安全领域披露的信息一直很少,适逢其大力发展云计算业务,需要展示云安全方面的实力,才有了这份白皮
- 基础篇——深入解析SQL多表操作与关联查询:构建复杂数据关系的桥梁
暴怒的代码
后端sqljavaandroid
一、关系型数据库的核心:多表协作的艺术在真实业务场景中,94%的SQL查询涉及多表操作(据2023年StackOverflow开发者调查)。理解多表关联机制是成为SQL高手的必经之路。本文将从基础连接类型到复杂子查询,系统讲解数据关系的处理技巧。二、连接类型:数据关系的不同维度2.1INNERJOIN:精确匹配的交集--订单与客户信息关联SELECTo.order_id,c.customer_na
- 谈谈 HTTPS 的工作原理,SSL / TLS 握手流程是什么?
程序员黄同学
前端开发JavaScriptnode.jshttpsssl网络协议
一、HTTPS核心机制:非对称加密+对称加密HTTPS=HTTPoverTLS/SSL,通过混合加密体系解决三大问题:防窃听-对称加密传输内容(如AES)防篡改-数字签名验证数据完整性防冒充-数字证书验证服务器身份//前端感知的典型场景:混合内容拦截//在HTTPS页面加载HTTP资源会被浏览器拦截//控制台报错:MixedContent:ThepagewasloadedoverHTTPS...二
- addPointers - overlap with incoming pointers 异常分析
惠(xi)斌
framework稳定性android
一.描述项目做老化测试,遇到systemserver重启,导致执行中间.报错信息:Buildfingerprint:'Dish/Spence/T715DS:15/AP3A.240905.015.A2/1732765343:user/release-keys'Revision:'0'ABI:'arm64'Timestamp:2024-12-0510:45:07.201198654+0800Proce
- 配置 DNS over HTTPS阻止DNS污染
网安-轩逸
https网络网络协议
概念介绍DOH简介DNS(域名系统)的主要功能是将域名解析成IP地址,域名的解析工作由DNS服务器完成。从安全角度来看,域名解析的请求传输时通常不进行任何加密,这导致第三方能够很容易拦截用户的DNS,将用户的请求跳转到另一个地址,常见的攻击方法有DNS劫持和DNS污染。因此,使用不加密的DNS服务是不安全的。而DoH(DNSoverHTTPS)是一个安全的域名解析方案。其意义在于以加密的HTTPS
- 使用STM32实现火焰检测器
CrMylive.
stm32单片机嵌入式硬件
火焰检测器是一种用于检测火焰的设备,可用于监控火灾安全和预防火灾事故。在本篇文章中,我们将使用STM32微控制器实现一个简单的火焰检测器。STM32是意法半导体(STMicroelectronics)公司推出的一系列32位微控制器产品,具有丰富的外设和强大的处理能力,非常适合用于开发各种嵌入式系统。我们将在本项目中使用STM32F4Discovery开发板,它基于STM32F407VG微控制器,具
- 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