- 华为OD机试E卷 - 计算面积/绘图机器(Java & Python& JS & C++ & C )
算法大师
最新华为OD机试java华为odpythonc语言c++javascript华为OD机试E卷
最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。1.尝试沿着横线坐标正向绘制直线直到给定的终点E2.期间可以通过指令在纵坐标轴方向进行偏移,offsetY为正数表示正向偏移,为负数表示负向偏移给定的横坐标终点值E以及若干条绘制指令,请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。
- Qt制作一个ListView列表
Qt开发老杰
qt开发语言
一、概述案例:使用Qt制作一个ListView。点击ListView的Item可以用于测试OpenCV的各种效果自定义一个:MainListView继承QListWidget、MainListViewItem继承QListWidgetItem二、代码示例1.自定义QListWidgetmainlistview.hclassMainListView:publicQListWidget{Q_OBJEC
- (上接“飞翔的小鸟”)cursor.h头文件
S12800
游戏
对不起各位,我之前发布了一篇文章,叫《飞翔的小鸟》,里面有个叫“cursor.h"的自制头文件,现把头文件奉上,各种用法都写得很清楚,大家也可以平时拿来用,不过要记得,把他和用他的文件放在同一个文件夹里!!!废话不说,上代码:#include#include#include#include#include#defineKEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK
- Qt:使用Model/View进行和数据和视图的分离
Rraion
Qtqtui开发语言
三种model/iewFileSystemModel文件系统模型顾名思义用于文件系统创建model指针使用指针接收创建好的对象将视图设置相应的模型#include"mainwindow.h"#include"ui_mainwindow.h"MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow)
- 基于 WeChatFerry 的 Python 机器人框架WeChatRobot
云樱梦海
python机器人微信机器人
WeChatRobot一个基于WeChatFerry的Python机器人框架。微信机器人,接入Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot;成语接龙、天气预报、新闻摘要、定时任务克隆项目:gitclonehttps://github.com/lich0821/WeChatRobot.git安装pyenv-win用于创建管理python虚拟环境最简单的方法是在PowerS
- kali设置系统时间
浅夏入秋^_^
渗透linux安全运维
kali设置系统时间1、查看系统时间,发现时间不对┌──(root㉿kali)-[~]└─#date2022年05月29日星期日23:08:47EDT2、修改系统时间步骤:tzselect#依次选择Asia-China-BeijingTime-Yesecho"ZONE=Asia/Shanghai">>/etc/sysconfigrm-f/etc/localtime#链接到上海时区文件ln-sf/u
- java进度条动画_Android自定义控件之圆形进度条动画
高尚雅
java进度条动画
本文实例为大家分享了Android实现圆形进度条动画的具体代码,供大家参考,具体内容如下首先贴上图片:额,感觉还行吧,就是进度条的颜色丑了点,不过咱是程序员,不是美工,配色这种问题当然不在考虑范围之内了。下面说重点,如何来写一个这样的自定义控件。首先,需要有一个灰色的底图,来作为未填充时的进度条;然后,根据传入的当前进度值,绘制填充时的进度圆弧,这段圆弧所对应的圆心角,由当前进度与进度的最大值(一
- 获取哔站视频字幕(bilibili)
Taichi呀
音视频
一、打开视频播放网址随便在哔站上打开一个视频二、打开控制台三种方式打开控制台快捷键F12或者快捷键Ctrl+Shift+J找个空白地方,鼠标右键,检查元素浏览器控制台就是这个了三、打开网络抓包工具点击网络选项如果是视频自带的字幕:搜索json如果是AI字幕:搜索ai_subtitle打开解析字幕网站:https://www.dreamlyn.cn/bsrt感谢牧尘老大提供的视频解析。
- 掌握 React 高阶组件与高阶函数:构建可复用组件的新境界
风茫
Reactreact.jsjavascript
一、引言在React开发中,代码复用性和逻辑分离是提高开发效率和维护性的重要手段。高阶组件(Higher-OrderComponent,HOC)和高阶函数(Higher-OrderFunction,HOF)是实现这一目标的两种强大工具。本文将详细介绍这两种技术的概念、应用场景及其实现方式,并通过具体示例帮助你更好地理解和应用它们。二、高阶函数(HOF)1.概念高阶函数是指以函数作为参数或返回值的函
- C++堆排序
越甲八千
算法c++算法数据结构
堆排序(HeapSort)是一种基于二叉堆数据结构的比较排序算法,它是一种选择排序,可分为最大堆排序和最小堆排序,以下主要介绍最大堆排序。堆排序的基本原理二叉堆的定义:最大堆:对于每个节点i(除根节点外),都满足A[parent(i)]>=A[i],即父节点的值大于或等于其子节点的值。最小堆:对于每个节点i(除根节点外),都满足A[parent(i)]#include//辅助函数:交换两个元素vo
- GitHub加速——Microsoft Edge拓展
MaximusCoder
大学githubmicrosoftedge
我不知道有这个拓展时,访问GitHub要么超级慢,要么无法访问,常常痛苦不已;现在给大家分享我解决问题的方法。下载网址如下:MicrosoftEdge加载项里面还有其他有用的拓展,可以看看
- 【人工智能】人工智能的10大算法详解(优缺点+实际案例)
ChatGPT-千鑫
人工智能人工智能算法gpt-3AI编程gptcodemoss能用AI
人工智能(AI)是现代科技的重要领域,其中的算法是实现智能的核心。本文将介绍10种常见的人工智能算法,包括它们的原理、训练方法、优缺点及适用场景。1.线性回归(LinearRegression)模型原理线性回归用于建立自变量(特征)与因变量(目标)之间的线性关系。其目标是寻找最佳拟合直线,使得预测值与实际值之间的误差最小化。模型训练通过最小二乘法来最小化预测值与真实值之间的误差,得到线性回归方程的
- 切换npm源的几种方法
itwlz
npm
一、使用命令直接更换(不推荐)1.查看当前源npmconfiggetregistry2.更换npm源为国内淘宝镜像npmconfigsetregistryhttps://registry.npmmirror.com/3.还原npm源npmconfigsetregistryhttps://registry.npmjs.org/二、使用nrm管理npm源(推荐)1.全局安装nrmnpminstalln
- js map函数的使用
itwlz
javascript前端开发语言
1.概念map()方法定义在JavaScript的Array中,它返回一个新的数组。数组中的元素为原始数组调用函数处理后的值。注意:1.map()不会对空数组进行检测2.map()不会改变原始数组2.语法array.map(function(currentValue,index,arr),thisIndex)3.实例3.1把数组l里的每一项转为Number或String或Booleanletlis
- python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...
珍妮赵
一、爬取新浪新闻思路1、创建scrapy项目2、分析新浪新闻网站静态页面代码3、编写对应的xpath公式4、写代码二、项目代码步骤1、创建scrapy项目scrapystartprojectmycwpjt步骤2、分析新浪网站静态代码随便打开一个新浪新闻网,新闻可以看到地址为http://news.sina.com.cn/gov/xlxw/2018-03-21/doc-ifyskeue0491622
- python图片分析中央气象台降水量预报_全国天气降水量预报图数据接口
周美灵是我大姐头
全国天气降水量预报图接口免费在线测试此接口(需要登录)接口每两小时更新一次,一天调取1-2次即可,返回3张图:24、48、72小时,请勿频繁调用!。请求方式及url:请求方式:GET接口地址:https://tianqiapi.com/api请求示例https://tianqiapi.com/api?version=v8&appid=&appsecret=请求参数说明:参数名必选类型说明备注(示例
- 通过付款码来区分是属于支付宝、微信
笑醉踏歌行
微信
微信支付码规则:18位纯数字,以10、11、12、13、14、15开头支付宝支付码规则:25-30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准
- 【YOLOv8改进- Backbone主干】YOLOv8更换主干网络之ConvNexts,纯卷积神经网络,更快更准,,降低参数量!
YOLO大师
YOLO网络cnn目标检测论文阅读yolov8
YOLOv8目标检测创新改进与实战案例专栏专栏目录:YOLOv8有效改进系列及项目实战目录包含卷积,主干注意力,检测头等创新机制以及各种目标检测分割项目实战案例专栏链接:YOLOv8基础解析+创新改进+实战案例介绍摘要视觉识别的“咆哮20年代”开始于视觉Transformer(ViTs)的引入,ViTs迅速取代了卷积神经网络(ConvNets)成为最先进的图像分类模型。然而,普通的ViT在应用于诸
- 时间复杂度分为几种
青云游子
算法算法排序算法数据结构
按照快到慢排序O(1)O(logN)O(N)O(NlogN)O(N^2)例子O(1)hashsethashmap数组下标O(logN)折半查找树形遍历O(N)list查询值数组查询值O(NlogN)进阶排序快排堆排归并O(N^2)简单排序冒泡插入选择ChatGPT时间复杂度是衡量算法执行时间随输入规模增长而变化的度量。它用大O符号表示,表示算法执行时间的增长率。在算法分析中,常见的时间复杂度有以下
- Centos Linux 离线安装 MySQL 5.7、使用MySQL
寒水馨
软件解惑mysqlcentos数据库linux
CentosLinux离线安装MySQL5.7、使用MySQL视频教程链接:https://www.bilibili.com/video/BV1Nv4y1m7u4/1.MySQL简介MySQL是一个开源的关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品,适合个人和中小型企业使用。2.准备工作2.1.拥有一台CentosLinux机器参考文章:《VMware安装Cento
- FPGA Verilog 阻塞赋值和非阻塞赋值
杭州秃头程序猿
fpga开发嵌入式硬件
阻塞赋值和非阻塞赋值的区别阻塞赋值阻塞赋值(=)必须是阻塞赋值完成后,才进行下一条语句的执行;赋值一旦完成,等号左边的变量值立即变化。串行,立即生效。如b=a;赋值语句执行完后,块才结束。b的值在赋值语句执行完后立刻就改变的。可能会产生意想不到的结果。非阻塞赋值非阻塞赋值(<=),在赋值开始时计算表达式右边的值,在本次仿真周期结束时才更新被赋值变量,即赋值不是立即生效的;非阻塞赋值允许块中其他语句
- 快速排序介绍
max500600
算法算法数据结构排序算法
快速排序(QuickSort)是种高效的基于比较的排序算法,它采用了分治策略(DivideandConquer)。其基本思想是通过选择一个基准值(pivot),将数组分为两部分,小于基准值的元素放在左边,大于基准值的元素放在右边,然后递归地对这两部分进行排序,最终使整个数组有序。1.算法步骤选择基准值:从数组中选择一个元素作为基准值。通常可以选择数组的第一个元素、最后元素或中间元素等,这里以选择第
- python 代码实现了一个条件生成对抗网络(Conditional Generative Adversarial Network,CGAN),用于生成与给定的理化值相关的光谱数据
max500600
算法开发语言python生成对抗网络开发语言
importtensorflowastfimportnumpyasnpimportpandasaspdimportosimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromtensorflow.keras.layersimportAdd,BatchNormalizationos.enviro
- VSLAM技术实现机器人在不同场景下的精准导航、避障
向阳而生|X
自主导航python计算机视觉
链接:https://developer.orbbec.com.cn/forum_plate_module_details.html?id=998
- 华为OD- 贪吃的猴子-2024年OD(D卷)
蜗牛快快快快跑
华为od算法数据结构
题目描述一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。输入描述第一行为数组numbers的长度第二行为数组numbers的值每个数字通过空格分开第三行输入为N,表示获取的次数输出描述按照题目要求能获取的最大数值备注1≤numbers.
- linux(arm)安装mysql步骤
余额很不足
mysqllinuxlinuxmysql运维数据库arm开发
1、添加mysql用户组和mysql用户]#groupadd-rmysql&&useradd-r-gmysql-s/sbin/nologin-Mmysql2、安装依赖libaioyuminstall-ylibaio*3、下载mysql对应版本wgethttps://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7
- java代码中使用linux cp带*通配符导致的空文件问题
DamonREN
javalinux服务器
1、背景:在定时任务中,执行完生成文件后需要IFT任务传输至其他系统,结果发现传输的文件都为空文件。排查发现在代码中使用了以下代码:Stringcmd="cp"+sourcePath+(prefixFileName+"*_"+preDate+".txt")+""+destPath;Runtime.getRuntime().exec(cmd);2、排查分析:将日志中打印的cmd字符串,单独在服务器上
- verilog中的阻塞赋值和非阻塞赋值的仿真
DL_Zl
Verilog数字电路设计verilogsystemverilog
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、阻塞赋值语句二、非阻塞赋值语句总结前言Verilog中的赋值语句类型主要分为两类,阻塞赋值语句和非阻塞赋值语句,关于赋值赋值语句和非阻塞赋值语句的区别,下面我们将通过实际代码以及仿真结果来进行形象的讲解。一、阻塞赋值语句阻塞赋值操作实质上是一次性连续完成的,即计算等号右边变量(或表达式)的值并立即赋值给等号左边的变量。
- 自用2024.11.26——[ACTF2020 新生赛]Include 1
然然阿然然
android
一、解题步骤查看源代码+抓包,没发现有用信息查看题目和网址的file参数,提示这是文件包含的题。构造payloadfile=php://filter/read=convert.base64-encode/resource=flag.php读出源码,进行base64解码得出flag解码结果为这个参数是必须的。它指定了你要筛选过滤的数据流。read=该参数可选。可以设定一个或多个过滤器名称,以管道符(
- 一篇文章让你学会Java之数组的定义和初始化
凭君语未可
Javajava开发语言
数组的定义和初始化一、数组的定义方式一:数组类型+方括号+数组变量名方式二:数组类型+数组变量名+方括号方式三:定义数组并初始化大小二、数组的初始化1.静态初始化1.1无需指定数组大小1.2指定数组大小但初始化元素2.动态初始化2.1定义数组并初始化大小2.2数组大小和元素值的关系三、二维数组的定义和初始化1.定义二维数组2.动态初始化二维数组3.静态初始化二维数组总结一、数组的定义在Java中,
- 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