- 缩小模拟与现实之间的差距:使用 NVIDIA Isaac Lab 训练 Spot 四足动物运动
AI人工智能集结号
人工智能
目录在IsaacLab中训练四足动物的运动能力目标观察和行动空间域随机化网络架构和RL算法细节先决条件用法训练策略执行训练好的策略结果使用JetsonOrin在Spot上部署经过训练的RL策略先决条件JetsonOrin上的硬件和网络设置Jetson上的软件设置运行策略开始开发您的自定义应用程序由于涉及复杂的动力学,为四足动物开发有效的运动策略对机器人技术提出了重大挑战。训练四足动物在现实世界中上
- deepstream | deepstream6.0配置python接口
__AtYou__
经验分享python开发语言人工智能
先决条件:ubuntu18.04deepstreamSDK6.0或更高版本python3.6Gstpythonv1.14.5,如果Jetson上缺少Gstpython安装,请使用以下命令安装:sudoapt-getinstallpython-gi-devexportGST_LIBS="-lgstreamer-1.0-lgobject-2.0-lglib-2.0"exportGST_CFLAGS="
- 百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)
代码能跑就可以
百度目标检测python学习计算机视觉笔记
部署目标检测模型前,需要配置好paddlepaddle的环境:开始使用_飞桨-源于产业实践的开源深度学习平台(paddlepaddle.org.cn)PC端和Jetson板卡端的部署方法相同,如下(直接放置部署和测试代码):importpaddle.inferenceimportcv2importnumpyasnpimporttimefrompaddle.inferenceimportConfig
- NFC射频--天线设计
天涯铭月刀
嵌入式硬件NFC天线设计
一、NFC天线电路结构如图3.3所示,13.56Mhz读卡器电路又两部分组成,其中引脚RX到引脚AGND部分区域是信号接收电路;引脚TX1到引脚TX2之间区域是信号发射电路。信号接收电路由四个元器件构成,图中电容C4用来稳定读卡芯片内部提供的固定参考电压Vmid,R1、R2将参考电压信号引入RX引脚,使得RX引脚接收到的正弦波信号幅度在1.5~3V之间,通过调节R1、R2的比值可以调节RX引脚信号
- Jetson-AGX-Orin 安装ros1
skynetkang
nvidia-orinNVIDIA-Orin
Jetson-AGX-Orin安装ros1系统:ubuntu20.04ARM64ros1版本:Noetic添加ROS源sudosh-c'echo"debhttp://packages.ros.org/ros/ubuntu$(lsb_release-sc)main">/etc/apt/sources.list.d/ros-latest.list'添加密钥sudoapt-keyadv--keyserv
- 【jetson交叉编译(5)】如何将apt安装的库复制出来?
Hali_Botebie
linux服务器运维
将apt将apt安装的库复制出来安装的库复制出来,通常指的是将apt-get命令,通常指的是将apt-get命令安装的软件包及其相关文件从系统中提取出来,以便在其他系统或环境中安装的软件包及其相关文件从系统中提取出来,以便在其他系统或环境中使用。使用。以下是将apt安装的库复制出来的步骤:以下是将apt安装的库复制出来的步骤:一、定位安装包路径一、定位安装包路径apt-get下载的软件包默认保存在
- 【jetson交叉编译(6)】orin ubuntu的库安装,通过apt下载deb 库,然后的解压到具体位置/opt/test/3rd
Hali_Botebie
ubuntulinux运维
基于【【jetson交叉编译(5)】如何将apt安装的库复制出来?】得到了deb库要将一个.deb包解压缩到特定位置/opt/test/3rd,你可以使用以下步骤:安装dpkg和ar工具:确保你已经安装了dpkg和ar工具。这些工具通常在大多数Ubuntu系统中已经安装。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstalldpkgar创建目
- 【网络】 arp 命令 得到网段内所有物理设备ip
DFminer
linux网络运维
我的笔记本和NVIDIAJetsonOrin都位于同一个192.168.1.x的网段内,我想远程访问Orin,但我不知道orin的ip方法1:使用arp命令打开命令提示符:按下Win+R键,打开“运行”对话框。输入cmd并按Enter键打开命令提示符。使用arp命令:在命令提示符中输入arp-a并按Enter键。结果:试了两个动态地址,第二个就是我要找的
- [NVIDIA]-6 入手 Jetson Xavier NX USB摄像头图像采集+显示(opencv)示例
钟学森
JetsonXavierNXopencvc++linux
[NVIDIA]-6入手JetsonXavierNXUSB摄像头图像采集+显示(基于opencv)示例本文主要讲述,基于JetsonXavierNX开发者套件及安装opencv3.3.1,进行USB摄像头图像采集+显示,其中显示前进行resize操作。WhatisJetsonXavierNX:NVIDIA®JetsonXavier™NX是体型超小的AI超级计算机,适用于嵌入式系统和边缘系统。高达2
- jetson agx orin 实时内核 调度延时测试
王燕龙(大卫)
unix服务器
jetsonagxorin是nvidia推出的计算平台,在自动驾驶领域得到广泛应用。确定性执行是自动驾驶系统的基本要求,而任务调度的确定性是影响确定性执行的重要因素。本文测试了jetsonagxorin的调度延时,对比测试了两种情况:打实时内核补丁和不打实时内核补丁。从测试结果来看,对于rt调度策略来说,打了实时内核补丁之后,最大调度延时在70μs以内;而不打实时内核补丁的话,最大调度延时在100
- Jetson TX1 system & ROS
羊羊羊羊羊羊羊--
Jetsonubuntulinux
1systemreference:https://blog.csdn.net/prophet_xh/article/details/123931775Wheninstep01,noneedtochoose“HostMachine”.Wheninstep02,noneedtochoose“jetsonSDKcomponents”ifyouonlyneedthesystem.2ROSreference
- Jetson TX1 UART0(/dev/ttyS0)转为普通串口方法
羊羊羊羊羊羊羊--
Jetsonubuntulinux
1解决方法参考网址https://connecttech.com/resource-center/kdb347-reassigning-disable-serial-debug-connect-tech-tx1-carriers/2参考网址中JetPack版本对应关系*虽然参考网址中区分了TX1和TX2,但是我用TX1、JetPack4.6.2直接看JetPack版本对应的解决方法也行L4TJet
- jetson orin nano 使用yolov8导出engine
coder攻城狮
YOLO
1.导出onnx经过前面训练,得到了best.pt模型,现在想要使用tensorrt进行推理,需要先导出为onnx格式,再转化为engine格式。yoloexportmodel=best.ptformat=onnxopset=12simplify=True2.解决错误在导出过程中,可能会出现错误,cmake版本问题安装好后,默认cmake版本为3.16,需要对cmake进行升级sudopipins
- Linux 36.2@Jetson Orin Nano之Hello AI World!
lida2003
Linuxlinux人工智能计算机视觉
Linux36.2@JetsonOrinNano之HelloAIWorld!1.源由2.HelloAIWorld!3.步骤3.1准备阶段3.2获取代码3.3Python环境3.4重点环节3.5软件配置3.6PyTorch安装3.7编译链接3.8安装更新4.测试4.1video-viewer4.2detectnet4.3演示命令5.参考资料6.附录AI模型1.源由AI到底有多神奇???记得神奇的年代
- 【NVIDIA】Jetson Orin Nano系列:sdkmanager 报错 invalid_request - Authorization flow not allowed
郭老二
AIOrinNano
【AI】AI学习目录汇总1、问题描述在启动sdkmanager后,点击登录,一般在web中弹出登录链接。但是这次报错:invalid_request-Authorizationflownotallowed2、原因分析在Ubuntu20.04上当sdkmanager版本过低时,会报错。参见官网论坛:https://forums.developer.nvidia.com/t/authorization
- orin 36.2 /sys/class/gpio/export节点没有
Janet CHU
orinlinux
JetsonAGXOrin升级sdk到JetPack-36.2,发现/sys/class/gpio/export节点没有,需要怎么配置?kernel-jammy-src/arch/arm64/configs/defconfig中新增配置CONFIG_GPIO_SYSFS=yCONFIG_GPIOLIB=yCONFIG_EXPERT=y然后重新触发Image编译即可。排查过程:makemenucon
- Linux 36.2@Jetson Orin Nano基础环境构建
lida2003
Linuxlinux人工智能计算机视觉运维
Linux36.2@JetsonOrinNano基础环境构建1.源由2.步骤2.1安装NVIDIAJetsonLinux36.2系统2.2必备软件安装2.3基本远程环境2.3.1远程ssh登录2.3.2samba局域网2.3.3VNC远程登录2.4开发环境安装3.总结1.源由现在流行什么,也跟风来么一个一篇。当然,后续是要用到这个AI环境的GPU算力。不过其实很多技术都是具有共通性的,所以大可不必
- 【Yolo】YoloV5训练自定义模型
Jamie.T
YoloYOLOpython开发语言
【Yolo】JetsonOrinNano下部署YoloV5上一篇博文主要记录了在JetsonOrinNano下部署YoloV5环境,并运行了yoloV5n.pt模型,本篇在上一篇的基础上,进一步记录如何训练自己的目标模型,我们以一根口香糖盒子为训练对象进行说明。一、目标资源标记1.安装labelimg通过以下命令安装labelimg软件,labelimg用于在待训练的图片上进行目标标记。可以在wi
- 【Yolo】Jetson Orin Nano下部署 YoloV5
Jamie.T
YoloYOLO
在网上找了好多关于JetsonNano部署Yolov5的帖子,由于每个人的环境和版本都不同,过程也都有所不同,因此在JetsonOrinNanoCLB上安装Yolov5也有必要记录一下过程,以便后续无脑重装,让我们开始。由于我这个JetsonOrinNanoCLB是固态硬盘的形式,没有SD卡槽,因此不能按Nvidia官方采用SD卡进行系统烧录的方式。环境:Jetpack:5.1.1CUDA:11.
- CUDA编程学习笔记(三)
HHHANG___
学习笔记
本篇记录学习cuda的执行模式,主要有几个方面的内容:理解jetsonnano上的gpu架构;理解线程束执行的本质;分支化与避免分支化;展开循环;其他;一、理解jetsonnano的gpu架构这块内容在上一篇笔记中有学习到一些,本篇就进行一个补充和复习。jetsonnano上的gpu是Maxwell架构的,整个gpu上面只有一个SM(流多处理器)。该SM上包含128个处理核心,这128个计算核心被
- 关于学生课堂行为识别算法
NineDays66
算法行为识别深度学习学生行为分析考试分析
目前基于针对学校做了一款考生行为识别算法,算法可以在服务器部署,也可以在前端设备如Jetson、RK等边缘设备运行,目前算法已经投入使用,算法效果如下目前算法在2080Ti服务器运行效率是150帧每秒算法运行平台模型大小吞吐量张/秒PC-2080TI50M150ARM-RK3399PRO10M10行为类别划分如下:学生未到、存在空位学生双手放在桌子下学生左、右看学生传纸条学生举手学生爬桌子睡觉学生
- Jetson AGX Orin安装Anaconda,Cuda,Cudnn,pytorch,Tensorrt,ROS
枭玉龙
#ubuntu系统下安装pytorch人工智能python
Anaconda:https://repo.anaconda.com/archive/Cuda:https://forums.developer.nvidia.com/t/pytorch-for-jetson/720481:安装Anaconda3下载:Anaconda3-2021.11-Linux-aarch64.shchmod+xAnaconda3-2021.11-Linux-aarch64.s
- Jetson nano配置jtop和nvidia-smi高级使用教程
YSUSE15w
linux运维服务器
目录1.更新源2.安装JTOP查看CPU等的占用情况3.关于nvidia-smi持续模式nvidia-smi支持的GPU查询GPU状态监控和管理GPUBoostreference:1.更新源sudoapt-getupdatesudoapt-getfull-upgrade在过程中输入Y确认更新。第二个过程时间根据网络情况可能会花2个小时左右,请耐心等待。如果安装不上,尝试源码安装https://gi
- Jetson Xavier NX CUDA、cuDNN、TensorRT与Pytorch环境配置
想努力的人
pytorch人工智能python
橘子大虾关注IP属地:江苏0.1312022.05.1911:31:43字数331阅读3,854torch与vision源码安装包下载链接:https://pan.baidu.com/s/1mrIgGoMo0bq6otGhlh-E3A提取码:6sb31.Cuda、CuDNN和TensorRT在JetsonXavierNx控制台中执行指令#更新软件源sudoaptupdate#安装JetPack组件
- 2019-05-06 nano操作I2C
马超波
Nano扩展口有两组I2C,分别为bus0bus1接口定义如下:https://www.jetsonhacks.com/nvidia-jetson-nano-j41-header-pinout/https://elinux.org/Jetson/I2CI2C寄存器操作i2cdumpPORTSLAVE_ADDR$sudoi2cdump-f-y40x40i2csetPORTSLAVE_ADDRREGV
- YOLO部署实战(5):NVIDIA Jetson Tx2部署YOLO
马上到我碗里来
YOLO部署实战YOLONVIDIAJetsonTx2
1一些概念JetsonTx2NVIDIAJetson是NVIDIA为新一代自主机器设计的的嵌入式系统,是一个AI平台,它的优势就是可以覆盖不同领域、不同行业。目前Jetson产品线已经有四个产品系列,包括JetsonNano、JetsonTX2、XavierNX和AGXXavier。四个产品系列的定位不同:JetsonNano比较适合和体量较小的设备,定位入门级,售价99美元;JetsonTX2比
- linux 安装vscode后打开,报错 undefined symbol:gbm_bo_get_modifier
HeroYDHY
vscodelinux打开报错
更换低版本安装教程如下:JetsonAGX安装VScode教程,适用于所有系统安装旧版本VScode_vscode低版本-CSDN博客
- 在Jetson Nano上实现单目相机 apritag_ros识别
蒋程扬
ROS机器人自动驾驶视觉检测人工智能
一,apritag_ros安装最开始采用克隆源码编译的方式进行安装,后来在Jetsonnano上有opencv4与opencv3的依赖问题,后来索性直接采用二进制安装:sudoapt-getinstallros-melodic-apriltag-ros二,单目相机数据读取这里使用的是uvc_camera包:launch文件:这里使用了命名空间head_camerahead_camera为相机标定参
- Jetson Nano 2G(1)开箱
宙仔
裸板一块~~~image.png要准备的东东还真不少:1.128G的TF卡,2.USB键鼠套装,3.网线一条(或无线网卡),4.显示器+HDMI线,5.5V3A电源+TypeC线一条.在Nvidia网站下载2G的镜像文件~~https://developer.nvidia.com/zh-cn/embedded/downloads镜像文件下载用Win32DiskImager刷入镜像文件,期间看到一些
- JetsonNX编译librealsense,解决ERROR: Could not find a version that satisfies the requirement pyrealsense2
吾系桉宁
Jetsonrealsense计算机视觉智能硬件arm开发
环境:JetsonNX+Jetpack4.4+Ubuntu18.04感谢问题描述安装教程感谢https://github.com/IntelRealSense/librealsense/issues/7722https://github.com/IntelRealSense/librealsense/issues/6964问题描述#InstallLibRealSensefromsource#Wen
- 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