- 知识篇 | 低代码开发(Low-Code Development)是个什么东东?
db_murphy
低代码
一、低代码的起源与历史背景低代码开发的核心理念可以追溯到上世纪80年代的第四代编程语言(4GL)和快速应用开发工具(RAD),例如PowerBuilder和VisualBasic。这些工具通过图形化界面简化了开发流程,但受限于本地化部署和封闭生态。2000年后,随着云计算和SaaS(软件即服务)的兴起,低代码开发进入新阶段。典型代表包括:Salesforce的Force.com(2005年):首个
- Chinese-Llama-2-7b 项目使用教程
朱均添Fleming
Chinese-Llama-2-7b项目使用教程Chinese-Llama-2-7b开源社区第一个能下载、能运行的中文LLaMA2模型!项目地址:https://gitcode.com/gh_mirrors/ch/Chinese-Llama-2-7b1.项目的目录结构及介绍Chinese-Llama-2-7b/├──example/│└──basic-chat/├──ggml/│└──quanti
- 探索WebGL基本水体教程:创造沉浸式3D水域体验
孔岱怀
探索WebGL基本水体教程:创造沉浸式3D水域体验项目地址:https://gitcode.com/gh_mirrors/we/webgl-water-tutorial在这个开源的世界里,我们经常发现令人惊艳的创新项目,今天我们要介绍的就是一个名为"WebGLBasicWaterTutorial"的绝佳资源,它由经验丰富的开发者ChineduFn打造。这个教程旨在帮助你利用WebGL技术构建逼真的
- 新手如何成为一名顶尖黑客?只需这十二个步骤轻松入门!
网络安全淼叔
服务器负载均衡网络python网络安全
成为一名黑客的过程涉及不断学习和实践技术,既要掌握基础的计算机知识,也要具备足够的安全意识和道德责任感。以下是成为一名黑客的12个基本步骤,为小白提供系统的入门指导。对于从来没有接触过黑客的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。1.了解计算机基础要成为一名黑客,首先需要了解计算机硬件、操作系统和网络的基础。你需要理解计算机如何处
- 【Web前端开发】---web简介
爱学习的小何同学!
前端
1、前端开发能干什么能干:网页、小程序(例如:微信小程序、抖音小程序),数据可视化前端工程师不仅可以开发上面所说的东西,而且也可以开发:服务器、客户端。2、计算机基础计算机由硬件与软件构成。所谓的硬件就是能看得见、摸得着的一些零部件。比如:CPU、内存、硬盘、键盘、鼠标、音箱、显示器。所谓的软件就是看得见、摸不着的东西。软件由系统软件和应用软件构成。系统软件:Windows、Linux、Max、H
- 【图像去噪】论文复现:真实噪声转高斯噪声,提升高斯噪声训练的模型性能!Learning to Translate Noise的Pytorch源码复现,跑通流程,框架结构和损失函数详解!
十小大
pytorch人工智能python图像去噪图像处理深度学习计算机视觉
请先看【专栏介绍文章】:【图像去噪(ImageDenoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)完整代码和训练好的模型权重文件下载链接见本文底部,订阅专栏免费获取!本文亮点:跑通LearningtoTranslateNoise源码,包含基于BasicSR的训练和测试代码,得
- 《计算机组成及汇编语言原理》阅读笔记:p178-p199
asm
《计算机组成及汇编语言原理》学习第14天,p178-p199总结,总计22页。一、技术总结1.关于end的一点疑问p178,Forexample,oneinstruction(BSWAP)swapstheendbytesina32-bitregister(specifiedasanargument),ataskthatcouldbeperformedusingbasicarithmeticinad
- MoE 系列(四)|Go 扩展的异步模式
云原生网关goenvoy开发者
在《MoE系列(三)|使用Istio动态更新Go扩展配置》中我们体验了用Istio做控制面,给Go扩展推送配置,这次我们来体验一下,在Go扩展的异步模式下,对Goroutine等全部Go特性的支持。异步模式之前,我们实现了一个简单的BasicAuth[1],但是,那个实现是同步的,也就是说,Go扩展会阻塞,直到BasicAuth验证完成,才会返回给Envoy。因为BasicAuth是一个非常简单的
- 计算机基础面试(数据结构)
熊假猫威XStar
面试数据结构职场和发展
1.数组和链表的区别是什么?各自的优缺点是什么?专业解答:数组内存连续,支持随机访问,但插入删除效率低;链表内存离散,插入删除高效,但访问需遍历。初中生版:数组像排座位,按编号找人快,但中间加人麻烦;链表像自由组队,拉人容易,但找人得挨个问。2.什么是哈希表?如何解决哈希冲突?专业解答:哈希表通过键值映射实现快速存取。冲突解决方法:开放寻址法(找下一个空位)、链地址法(拉链表)。初中生版:哈希表像
- 【网络安全】从NA到P1,我是如何扩大思路的?
秋说
web安全漏洞挖掘
未经许可,不得转载。本文涉及漏洞均已修复。文章目录正文正文在这篇文章中,我将向大家展示一个我发现的漏洞,该漏洞利用了一个硬编码的Basic认证头,获取了管理员权限。首先,假设公司域名为“target.com”。第一步是使用多种工具(如Amass、subfinder、findomain等)收集与该组织相关的所有子域名。当我收集到所有可能的子域名列表后,我通过httpx工具过滤出存活的子域名,以确保仅
- CE 451/551 Computer-Aided Research
后端
CE451/551–Computer-AidedResearchintheChemicalandMaterialsSciences:Homework#10(Graded#2)(Due:Tuesday,4March2025,5:00pm)AswehavenowfinishedlearningthebasicsofPython,itistimetopracticewritingsomeactualco
- php 设置redis 哈希,Redis 哈希(Hash)
weixin_39893042
php设置redis哈希
Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis中每个hash可以存储232-1键值对(40多亿)。实例redis127.0.0.1:6379>HMSETw3ckeyname"redistutorial"description"redisbasiccommandsforcaching"likes20visitors23000OKre
- Matplotlib Introductory Basic Usage
如桶底子脱
#数据分析机器学习进阶matplotlibpython开发语言
Introductory总览介绍了Matplotlib的基本用法,Figure,Axes,Axis,Artist等基本的类.函数包括ax1.twinx()生成一个Axes共享ax1的x轴ax3.secondary_xaxis(position,functions)给ax3添加一个x轴返回值ax:axes._secondary_axes.SecondaryAxispcolormesh(),conto
- Python基础教程之Matplotlib-基础绘图
粒子jiang
Python教程pythonmatplotlib
最近想自学一些数据可视化相关的工具,首先想到了Python,于是自己写一些文章,把学习成果和问题贴出来,方便自己后续查询。之前有断断续续学习过一些Python的基础语法,所以直接从Matplotlib开始,后续应该会继续更新其他相关信息。目前用的开发工具是jupyternotebook,对Python感兴趣的小伙伴也可以在评论区交流起来。>>>Matplotlibbasicusage>>>导入模块
- 《Operating System Concepts》阅读笔记:p159-p161
操作系统
《OperatingSystemConcepts》学习第16天,p159-p161总结,总计3页。一、技术总结1.thread(1)定义AthreadisabasicunitofCPUutilization;itcomprisesathreadID,aprogramcounter(PC),aregisterset,andastack.Aprocesscontrolstructurethatisan
- 计算机基础之操作系统——进程与线程管理(三)
查理养殖场
计算机八股服务器linux
1、多进程与多线程怎么选择?多进程资源隔离性好、安全性高、支持并行,然而资源需求高、进程间通信复杂、上下文切换开销大;多线程轻量级、高度共享资源和数据、线程间通信简单、资源占用低、上下文切换开销小,然而隔离性差,容错性差。应用场景多进程:如果应用需要独立的地址空间和资源,或者需要在不同的安全上下文中运行,那么多进程可能是更好的选择。多线程:如果应用需要高度共享数据和资源,或者需要轻量级的任务并发,
- 掌握 ElasticSearch 聚合查询:Aggregations 入门与实战
全端工程师
elasticsearchelasticsearchjava
掌握ElasticSearch聚合查询:Aggregations入门与实战一、引言(Introduction)二、数据准备(DataPreparation)2.1创建索引(CreateIndex)2.2批量导入数据(BulkImportData)三、聚合查询基础(AggregationBasics)3.1什么是聚合查询?(WhatareAggregations?)3.2聚合查询的基本结构(Basi
- 《Operating System Concepts》阅读笔记:p162-p176
操作系统
《OperatingSystemConcepts》学习第17天,p162-p176总结,总计15页。一、技术总结1.thread(1)定义AthreadisabasicunitofCPUutilization;itcomprisesathreadID,aprogramcounter(PC),aregisterset,andastack.Aprocesscontrolstructurethatisa
- 如何用Python 3调用ArXiv API查询ArXiv论文元数据
诸神缄默不语
编程学习笔记python开发语言ArXivAPIXMLurllib
诸神缄默不语-个人CSDN博文目录ArXivAPI文档:arXivAPIAccess-arXivinfoarXivAPIBasics-arXivinfoarXivAPIUser’sManual-arXivinfo文章目录1.调包2.获取数据1.简单入门2.XML返回值示例3.添加分类信息,获取最新论文4.ArXiv查询入参详解3.解析XML数据1.调包importurllibfromurllib.
- Three.js 材质对象Material对应的着色器Shader代码
山楂树の
WebGL进阶Three.js材质着色器图形渲染webgl3d开发语言
点材质PointsMaterial:顶点着色器文件points_vert.glsl、片元着色器文件points_frag.glsl基础网格材质MeshBasicMaterial:顶点着色器文件meshbasic_vert.glsl、片元着色器文件meshbasic_frag.glsl高光网格材质MeshPhongMaterial:顶点着色器文件meshphong_vert.glsl、片元着色器文件
- 【图像去噪】基础知识之BasicSR | BasicSR库的用法详解,包含各部分代码功能详细介绍(全代码注释),自己改进创新需要修改的位置等
十小大
图像去噪imagedenoising图像处理深度学习人工智能pytorchpython
请先看【专栏介绍文章】:【图像去噪(ImageDenoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)文章目录前言1.BasicSR项目结构与开发方法2.dataset3.arch4.model4.1创建模型4.2模型基类4.3图像恢复模型5.utils6.train7.test
- C语言学习5——核心语法4(for、数组)
不加香菜的锅包肉
c语言c语言学习
配置VS2019快捷导入代码准备快捷导入代码的脚本文件,保存在系统目录中(位置自定义)在VS2019中配置,使用上述目录中的脚本文件。工具——代码片段管理器——修改Basic为VisualC++——选择上述自定义的目录位置(不需要选择到具体脚本文件)。在程序中使用快捷导入代码。#1----tab键for循环语法for(表达式1;表达式2;表达式3){循环体。}循环从表达式1开始——>表达式2(判别
- 华为codecraft算法大赛---寻路
我曾经被山河大海跨过
数据结构与算法数据结构DFScodecraft算法
华为codecraft算法大赛—寻路前言最近实验室的师兄师姐们在热火朝天的笔试(都说难难难),我也要了些题来感受了一下,已然被虐的体无完肤。选择题考的内容涉及范围广,算法编程题对于没有刷题经验的我来说就更是难上加难了。看来有必要在学习工作之余学习学习算法以及计算机基础知识了。翻了上半年参加华为codecraft算法大赛的代码,趁周末整理一下当时的思路以及回顾一下数据结构与算法。比赛前中期还保持不错
- Window下安装pyenv
Dino Fong
其他pythonvirtualenv
pyenv-win是pyenvforwin的版本,github地址:https://github.com/pyenv-win/pyenv-win安装方法也很简单,官网的Readme.md的Quickstart就有:Invoke-WebRequest-UseBasicParsing-Uri"https://raw.githubusercontent.com/pyenv-win/pyenv-win/m
- Java集合设计模式面试题
夜游猿
Java开发工程师面试java设计模式开发语言
Java集合设计模式面试题迭代器模式Q1:Java集合框架中的迭代器模式是如何实现的?迭代器模式提供了一种统一的方式来访问集合中的元素,而不需要暴露集合的内部结构。publicclassIteratorPatternExample{//1.基本迭代器使用publicvoidbasicIteratorUsage(){Listlist=newArrayListiterator=list.iterato
- Java连接ES的多种方式
dkjhl
elasticsearchelasticsearch大数据
前言本篇文章主要介绍:使用Basic、Transport、Kerberos三种方式连接ESBisic方式/***Basic方式(带用户名和密码方式访问)*@paramuser用户名*@parampassword密码*@paramindex索引名*/privatestaticvoidbasicConnect(Stringuser,Stringpassword,Stringindex){try{Sys
- 不要再走弯路了2025最全的黑客入门学习路线在这
渗透代老师
学习网络安全安全网络web安全
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包在大多数的思维里总觉得[学习]得先收集资料、学习编程、学习计算机基础,这样不是不可以,但是这样学效率太低了!你要知道网络安全是一门技术,任何技术的学习一定是以实践为主的。也就是说很多的理论知识其实是可以在实践中去验证拓展的,这样学习比起你啃原理、啃书本要好理解很多。所以想要学习网络安全选对正确的学习方法很重要,这可以帮你少走很多弯路。
- 【深度学习】PYTORCH框架中采用训练数据“CIFAR-10”实现RESNET50
别出BUG求求了
深度学习深度学习pytorchcifar-10resnet50神经网络
一、ResNet网络结构二、基本块三、RESNET50代码实现resnet50.pyimporttorchimporttorch.nnasnnfromtorch.nnimportfunctionalasFclassResNet50BasicBlock(nn.Module):def__init__(self,in_channel,outs,kernerl_size,stride,padding):s
- 使用ScheduledExecutorService实现异步几分钟后执行且只执行一次
小熊123~
思路
使用场景:微信付款接口异步重试使用姿势://异步3分钟后执行,只执行一次ScheduledExecutorServiceexecutorService=newScheduledThreadPoolExecutor(1,newBasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).buil
- Springboot集合RabbitMQ运行过程中报错:Channel shutdown: channel error; protocol method解决方法
珠峰日记
RabbitMQrabbitmqjava
一、问题现象:消息消费后日志中存在以下ERROR二、产生问题背景:在消息的消费处理逻辑中有手动确认消息的操作:三、问题分析:1、默认情况下spring-boot-data-amqp是自动ACK机制,就意味着MQ会在消息发送完毕后,自动帮我们去ACK,然后删除消息的信息。2、消息确认的类型:channel.basicAck(deliveryTag,multiple);consumer处理成功后,通知
- 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