- 在 Linux/Ubuntu/Debian 上安装 SQL Server 2019
理工男老K
ubuntulinux运维debiansqlserver
Microsoft为Linux发行版(包括Ubuntu)提供SQLServer。以下是有关如何执行此操作的基本指南:注册MicrosoftUbuntu存储库并添加公共存储库GPG密钥:sudowget-qO-https://packages.microsoft.com/keys/microsoft.asc|sudoapt-keyadd-sudoadd-apt-repository"$(wget-q
- Debian 10创建文件夹和删除文件夹命令
理工男老K
debian
创建文件夹:#mkdir/yourfoldername/删除文件夹:#rm-rf/yourfoldername/
- 【Caddy】Caddy实践1——此网站无法提供安全连接
鲁正杰
Caddy部署疑难杂症安全ubuntu网络
背景:卸载最近安装Caddy在另外一个机器上出现了错误,执行步骤如下:步骤一:添加Caddy软件源并安装执行以下命令添加Caddy的软件源并安装:sudoaptinstall-ydebian-keyringdebian-archive-keyringapt-transport-httpscurlcurl-1sLf'https://dl.cloudsmith.io/public/caddy/stab
- Linux mkswap命令教程:如何设置Linux交换区(附实例详解和注意事项)
我要下东西噢
linuxlinux运维服务器
Linuxmkswap命令介绍mkswap命令用于在设备或文件上设置Linux交换区。设备参数通常是磁盘分区(例如/dev/sdb7),但也可以是文件。Linux内核不查看分区ID,但许多安装脚本假定十六进制类型82(LINUX_SWAP)的分区是交换分区。Linuxmkswap命令适用的Linux版本mkswap命令适用于所有主流的Linux发行版,包括Debian、Ubuntu、Alpine、
- 快速搭建ARM64实验平台(QEMU虚拟机+Debian)
SGchi
Linux内核调试debian
文章目录前言一、实验平台介绍二、安装步骤2.1安装工具2.2下载仓库2.3编译内核并制作根文件系统2.4运行刚才编译好的ARM64版本的Debian系统2.5在线安装软件包2.6在QEMU虚拟机和主机之间共享文件三、单步调试ARM64Linux内核参考资料前言最近翻阅笨叔的《奔跑吧Linux内核》卷2,发现了一个非常好用的ARM64的实验平台,这里对部署流程做一个记录。一、实验平台介绍该平台使用D
- docker jdk1.8+字体镜像
wcy10086
dockerjdk字体
FROMcentos:7MAINTAINERwcy# 修改成东八区RUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime&&echo'Asia/Shanghai'>/etc/timezoneRUNyum-yinstallkde-l10n-Chinesetelnet&&\yum-yreinstallglibc-common&&\yumclean
- 在Linux/Ubuntu/Debian中创建自己的命令快捷方式
理工男老K
linuxubuntudebian运维
虽然图标快捷方式使你移动鼠标双击就打开目标,但是你还是需要先定位到它。而在终端Terminal中你只需要输入一个自定义命令就能一步到位。要在Ubuntu中创建你自己的命令或别名,你可以使用主目录中的“.bashrc”文件。以下是创建通过Wine运行Photoshop的别名的方法:打开终端窗口。在文本编辑器中打开“.bashrc”文件。你可以使用你喜欢的任何文本编辑器,例如nano或vim。例如:n
- Debian系APT源通用镜像加速配置
坐公交也用券
debian运维
备份cp-rf/etc/apt/sources.list/etc/apt/sources.list.bak开始配置设置镜像地址阿里云url=https://mirrors.aliyun.com清华源url=https://mirrors.tuna.tsinghua.edu.cn腾讯云推荐url=http://mirrors.cloud.tencent.com开始修改sed-i"s@http.*\(
- 在Linux/Ubuntu/Debian中测试USB驱动器(U盘)的速度
理工男老K
linuxubuntudebian
如果你想测试USB驱动器的速度,可以使用各种工具和命令来测量读写速度。用于此目的的一个常用工具是“dd”。以下是如何使用“dd”执行简单的速度测试:测试写入速度:打开终端。使用以下命令将测试文件写入USB驱动器:ddif=/dev/zeroof=/media/su/SharedDisk/testfilebs=1Mcount=100if=/dev/zero:输入文件是零流(虚拟零填充文件)。of=/
- JPG TO PDF(用python将图片转换为pdf格式)
hhcgchpspk
python开发语言
importfpdffromtkinterimport*importosfromtkinterimportfiledialogfromtkinter.messageboximport*fromtkinterimportttkimportrandomimporttkinterastkdefhp(width,height):hp=Tk()hp.title("JpgToPdf")hp.resizable
- PyTorch训练,TensorRT部署的简要步骤(采用ONNX中转的方式)
赛先生.AI
TensorRTpytorch人工智能TensorRTONNX
1.简述使用PyTorch执行训练,使用TensorRT进行部署有很多种方法,比较常用的是基于INetworkDefinition进行每一层的自定义,这样一来,会反向促使研究者能够对真个网络的细节有更深的理解。另一种相对简便的方式就是通过ONNX中间转换的形式。本文主要针对该途径进行简单的脉络阐述。2.导出ONNX如果使用的是PyTorch训练框架,可采用其自带的ONNX导出API。torch.o
- 在Linux/Ubuntu/Debian中计算MD5,SHA256的方法
理工男老K
计算机相关linuxubuntudebianmd5sha256
MD5(消息摘要算法5)和SHA-256(安全哈希算法256位)等流行的哈希算法广泛用于从任意数据生成固定大小的哈希值或校验和。以下是这些算法及其计算方式的简要概述:MD5(消息摘要算法5):算法:MD5是一种广泛使用的加密哈希函数,可生成128位(16字节)哈希值,通常表示为32个字符的十六进制数。Linux/Unix中的计算:md5sumyour_file此命令计算指定文件的MD5哈希值。SH
- 列出Linux/Ubuntu/Debian上目录中的文件并在终端中按日期对它们进行排序
理工男老K
linuxubuntu运维
要列出Ubuntu上目录中的文件并在终端中按日期对它们进行排序,可以使用带有“-l”选项的“ls”命令。这将以长格式显示文件,包括修改日期。你可以使用“-t”选项按修改时间排序,使用“-r”选项反转顺序(首先显示最新的文件)。这是一个示例命令:ls-lt此命令列出当前目录中的文件,按修改时间排序,最新的文件位于顶部。如果你想包含隐藏文件(以点开头的文件),你可以添加“-a”选项:ls-lta如果要
- Linux skill命令教程:如何发送信号或报告进程状态(附实例详解和注意事项)
我要下东西噢
linuxlinux运维服务器
Linuxskill命令介绍skill命令是用来发送信号或报告进程状态的。这个命令的默认信号是TERM。然而,这个命令已经被认为是过时和不可移植的,其命令语法定义得很差。建议使用killall,pkill,和pgrep命令代替。Linuxskill命令适用的Linux版本skill命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、ArchLinux、KaliL
- CMAKE实践读书笔记(1)P1-P12
嘉子的秃头日记
CMAKE实践读书笔记c++
目录关于kitware公司关于VTK关于KDE4关于SVN和CVS关于类BSD许可Q:什么是native编译配置文件Q:Xcode是什么Q:MSVC是什么关于kdelibs和autotoolsQ:什么是pkg-config关于mkdir关于stdio.h和iostreammain.cCmakeLists.txt关于MESSAGE关于${}Q:HELLO_BINARY_DIR和HELLO_SOURC
- eBPF实践篇之环境搭建
醉墨居士
eBPFlinux网络c语言
文章目录前言实验环境前置知识配置开发环境最后前言你好,我是醉墨居士,本次我们学习一下eBPF,我们基于libbpf-bootstrap来进行我们的eBPF程序开发实验环境一台Debian12操作系统的计算机,我使用的是Debian12.2.0-amd64其它Linux发行版的环境也可以,Linux内核不低于5.4版本前置知识c语言,linux系统基本操作配置开发环境在Ubuntu/Debian系统
- 英语日积月累2023-06-10
抽刀断水2
miremiremire泥潭轮子在泥潭中陷得更深了。Thewheelssankdeeperintothemire.millimetremillimetremillimetre毫米他把木头削去一毫米。Heshavedamillimetreofftheblock.miraclemiraclemiracle奇迹,令人惊讶的事除非发生奇迹,否则我们输定了。Shortofamiracle,we'recert
- 解决Ubuntu或Debian apt-get IPv6问题:如何设置仅使用IPv4
在Ubuntu或Debian系统中,apt-get可能默认使用IPv6进行网络连接,这在某些情况下可能会导致问题,比如连接速度慢或者连接失败。要解决这个问题,我们可以设置apt-get仅使用IPv4。下面将详细介绍如何进行这样的设置。首先,我们需要明白Ubuntu和Debian默认使用IPv6的原因。IPv6是Internet协议的最新版本,设计用于替代IPv4。IPv6解决了IPv4地址耗尽的问
- 基于树莓派4B debian 12更换清华镜像源安装opencv
naughty0809
树莓派debianopencv人工智能
前言:本人在安装opencv时发现不同教程的安装包每次不全,在查阅数篇博客,摸索了一下,整理如下。架构和版本选择说明:我的树莓派版本是这样的:syz@raspberrypi:~$uname-maarch64syz@raspberrypi:~$lsb_release-aNoLSBmodulesareavailable.DistributorID:DebianDescription:DebianGNU
- 统信UOS_麒麟KYLINOS上不覆盖高版本依赖包的情况下批量安装软件
鹏大圣运维
linux统信UOSlinux操作系统国产化服务器桌面统信麒麟
原文链接:统信UOS/麒麟KYLINOS上在不覆盖高版本依赖包的情况下批量安装软件大家好!在使用基于Debian的Linux发行版,如统信UOS和麒麟KYLINOS时,deb包作为软件安装包的格式非常常见。今天,我将为大家带来一个实用的技术分享,即如何在不覆盖系统中已有更高版本软件依赖包的情况下,批量安装deb包。这个需求在日常管理工作中尤为重要,尤其是当我们需要在多台机器上部署软件,或者更新某个
- 精准控制:在统信UOS_麒麟KYLINOS上安装指定版本号的浏览器
鹏大圣运维
UOS统信linux服务器linux运维kylin统信uos国产化
原文链接:精准控制:在统信UOS/麒麟KYLINOS上安装指定版本号的浏览器大家好!在使用基于Debian的Linux发行版,如统信UOS和麒麟KYLINOS时,我们经常会用到APT(高级包管理工具)来安装、更新和管理软件包。今天,我要和大家分享的是,如何通过APT命令不仅更新软件包到最新版,更重要的是如何精确地安装或降级到指定版本的软件包——以浏览器为例。为何需要安装指定版本的软件?在某些情况下
- C++中键盘响应结合OpenCV库进行图像灰度图、HSV图转换和亮度调整
忙什么果
opencvC&C++c++计算机外设opencv
QuickDemo.cpp#include//键盘响应voidQuickDemo::key_demo(Mat&image){Matdst=Mat::zeros(image.size(),image.type());while(true){charc=waitKey(100);if(c==27){//key#esc,退出break;}if(c==49){//key#1,按键1,打印youprintk
- 2.go基础知识
WangGavin
内置关键字(25个,均为小写)breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar注释方法//:当行注释/**/:多行注释一般结构go程序是通过package来组织的只有package名称为ma
- 【Linux命令】ip addr、ip link、ifconfig 用法 二
云川之下
linuxtcp/ip网络
文章目录1.前言2.iplink2.1iplinkadd2.1.1命令实例2.2iplinkset2.3iplinkshow2.4iplinkdelete参考系列文章【Linux命令】ifconfig、route、iproute、ipaddr、iplink用法一【Linux命令】ipaddr、iplink、ifconfig用法二1.前言ifconfig命令已经废弃。其功能可通过下文介绍的ipadd
- centos7 arm服务器编译安装matplotlib
番茄小能手
aarch64Linuxlinux
前言在centos7arm服务器上安装matplotlib高版本正常,但安装低版本pip3installmatplotlib==3.1.3时,报错:“src/checkdep_freetype2.c:1:10:fatalerror:ft2build.h:Nosuchfileordirectory”,如下图:解决方法经过查找资料,报错原因:最新版本的fontconfig,安装fontconfig后再
- 五步解决 Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法
星谐
运维scmlinuxubuntulinux运维
Ubuntu18.04出现GLIBC_2.28notfound的解决方法参考debian网址https://packages.debian.org/buster/并搜索想要的软件或者工具等,如libc6,有结果如下:具体就不介绍了,请浏览官网了解。第一步:添加软件源,在/etc/apt/sources.list文件中的最后面追加下面这一行内容(参考官网):debhttp://security.de
- 深描
丹妮_17fa
之前我还没有听说过有深描这种研究方法,我查阅相关资料发现,深描(thickdescription)是一种方法,它是人文社会科学较为普遍的一种创作与研究的方法。事实上,深描作为一种人文社会科学创作与研究方法,有着比较悠久的历史,在深描方法论的研究者中,有三位著名的学者做出了贡献,他们是英国思想家赖尔、美国人类学家格尔茨、美国方法论专家罗曼·邓金。郝老师在书中提到,所谓深描,是根据解释学的理论而建立的
- 前端面试题集合
至尊丨楷君
前端
跨域跨域:首先同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源,jsonp,iframe标签的src属性,前端nginx配置反向代理,nodejs中间件代理跨域或者设置cors允许所有域名访问,前端使用webpackdevserver中的proxy选项来设置代理,websocket不受同源策略限制。This指向在全局作用域中,this指向全局对象(在浏览器环境中
- 【Linux】选择合适的发行版本(Ubuntu | Redhat | CentOS | debian | openSUSE)
Xavier Jiezou
linuxlinux服务器centosdebianubuntu
引言我们今天来一起了解一些适用于服务器或工作站的Linux发行版本,为我们选择合适的Linux版本做出正确的决策。简介Linux中的版本有2种含义,一种表示内核版本,一种指的是发行版本。内核版本首先你要明白,无论一个操作系统叫什么名字,由哪个公司或组织发行,看上去长什么样子,它的用途是什么,只要使用了Linux内核,其本质上就是一个Linux操作系统。例如,手机上最常用的安卓操作系统就是一个Lin
- Linux、Ubuntu、CenterOS、RedHat、Debian、AIpine关系和区别?
cn_lyg
linuxdebian运维
目录1.区别和联系2.安装命令3.其他发行版本4.参考1.区别和联系Ubuntu,Debian,RedHat,CentOS都是不同的Linux发行版。Ubuntu是基于Debian的一个开源GNU/Linux操作系统。它的目标是为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的作业系统。Ubuntu目前具有广泛的用户群。Debian是一个自由的操作系统,其中包含了许多预编译软件用以在你
- 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