- Android不同版本的WiFi连接
小赵学不会
android前端java开发语言
针对于不同版本之间的WiFi连接,目前国内的各大手机厂商在前段时间发布了声明,需要在24年将App的targetSDK升级到>=30,所以针对WiFi的连接进行了修改目前是两个方法去进行wifi的连接,第一种方法需要在targetSDKWifiConfigurationwifiConfiguration=newWifiConfiguration();wifiConfiguration.SSID="
- 5G时代需要“闪电侠”:CDN的角色进化与行业合规突围战——一名从业者的技术观察与冷思考
Treasure.255
5G
过去十年间,在CDN行业深耕的技术人,目睹了4G时代"抢带宽、拼节点"的产业狂飙,如今正经历着5G浪潮下"算网融合、边缘智能"带来的技术重构。这场裹挟着运营商、云服务商与创新企业的时代转型,其最深刻的矛盾早已跳脱出单纯的技术路线之争,演变为一场关乎"合规性"与"创新边界"的产业秩序重塑——尤其在PCDN(P2PCDN)与CDN的竞合关系中,这种监管套利与技术突围的博弈正愈演愈烈。一、运营商的“左右
- 手机抓取崩溃的log日志(安卓/ios)
金丝猴也是猿
httpudphttpswebsocket网络安全网络协议tcp/ip
Android和iOS闪退日志获取方法指南Android闪退日志获取方法1.准备工具下载ADB工具包(建议使用Keymob开发助手内置的ADB工具,一键安装更便捷)确保电脑只连接一台手机设备开启手机的USB调试模式2.工具包存放路径建议将ADB工具包存放在硬盘根目录下,如D:\Android3.使用命令窗口打开CMD命令窗口(Win+R,输入cmd)切换到ADB工具所在目录:cdD:\Androi
- 手把手教你:将OpenStack私有云平台从HTTP升级到HTTPS访问(附完整配置流程)
冯·诺依曼的
httpopenstackhttps云计算运维
前言在私有云平台中,将HTTP协议升级为HTTPS是提升安全性的重要步骤。本文以OpenStack私有云为例,详细讲解如何通过配置Apache、SSL证书及Horizon参数,实现HTTPS强制访问,保障数据传输安全。环境准备系统:CentOS7角色:OpenStack控制节点(controller)目标:启用HTTPS访问Dashboard(Horizon)完整操作流程1.配置本地YUM仓库(可
- js学习记录之函数
默默的学习君
javascript学习开发语言前端笔记经验分享css
js的学习记录之函数(一)一、函数的定义定义方式functionfine(){....console.log("ok").....}函数是一个标识符varfine2=finefine2()验证fine2与fine的地址是否一致console.log(fine===fine2)得到结果为ture函数也是引用类型的数据函数在对象中的叫法varperson={}person.hello=finepers
- 爆火 | API终将淘汰,MCP+Milvus+LLM才是Agent开发新范式
ai大模型应用开发
milvus网络数据库人工智能开发语言开源langchain
前言“大模型很聪明,但又貌似什么问题都解决不了。”这应该是不少用户使用大模型过程中都会面临的问题。比如,问deepseek,即将到来的清明节有什么习俗,AI可以引经据典的给出答案;但如果要它给出一份三天两晚的清明旅行规划,给出的答案,就好像总是差点意思。原因很简单,在做旅行规划的时候,大模型缺乏必要的天气、机票、铁路、导航、酒店等必要数据与工具的接入。就像一个顶级聪明的大脑,但没有配备外部的“数据
- 【JavaWeb】JavaScript 快速入门教程
2302_80979832
javascript开发语言ecmascript前端
一、概述1.概念JavaScript,简称JS,是一门脚本语言,用来控制网页行为,实现页面交互效果2.组成JavaScript大体由三部分组成:ECMAScript,BOM,DOMECMAScript:规定JS的基础语法核心BOM:浏览器对象模型,用来操作浏览器本身,如:页面弹窗、地址拦截等等;DOM:文档对象模型,用于操作HTML文档,如:改变标签内容、改变标签内字体样式等等。二、核心语法(一)
- 蓝桥杯备考:模拟算法之字符串展开
无敌大饺子 dot
算法
P1098[NOIP2007提高组]字符串的展开-洛谷|计算机科学教育新生态#include#include#includeusingnamespacestd;intp1,p2,p3;strings,ret;voidadd(charleft,charright){stringtmp;for(charch=left+1;ch>p1>>p2>>p3;cin>>s;intn=s.size();for(i
- [蓝桥杯 2023 省 A] 异或和之和
好好学习^按时吃饭
蓝桥杯
题目来自洛谷网站:暴力思路:先进性预处理,找到每个点位置的前缀异或和,在枚举区间。暴力代码:#include#defineintlonglongusingnamespacestd;constintN=1e5+20;intn;intarr[N],ls[N];//前缀异或和数组lssignedmain(){cin>>n;for(inti=1;i>arr[i];//预处理-前缀异或和for(inti=1
- 如何在散景 python 中捕获下拉小部件的值?
潮易
python服务器开发语言
如何在散景python中捕获下拉小部件的值?在Python的Tkinter库中,我们可以使用`StringVar()`或者`IntVar()`等变量来捕获下拉小部件(Combobox)的值。以下是一个简单的例子:```pythonimporttkinterastkdefon_combo_change(event):#当下拉框中的值改变时,这个函数会被调用print("当前选中的值为:",combo
- 【服务端】使用conda虚拟环境部署Django项目
奔跑草-
服务端Ubuntucondadjangopython
写在开头为了与客户端的Deepsearch配合,需要整一个后台管理来保存和管理deepsearch的数据资料。选择前端框架Vue-Vben-Admin+Django后台服务来实现这个项目。废话结束,从零开始。。。。一、环境搭建1.安装Anaconda下载Anaconda:访问Anaconda官方网站,选择适合Ubuntu系统的版本进行下载。安装Anaconda:在终端中运行以下命令进行安装:bas
- 爬虫:Requests-HTML的详细使用
数据知道
2025年爬虫和逆向教程爬虫html前端python数据采集
更多内容请见:爬虫和逆向教程-专栏介绍和目录文章目录1.Requests-HTML概述1.1为何选择Requests-HTML?1.2什么是Requests-HTML?1.3主要特性1.4安装`requests-html`2.基本用法2.1发送HTTP请求2.2解析HTML2.2.1使用CSS选择器2.2.2使用XPath2.2.3使用`search`方法2.3处理JavaScript渲染的页面3
- 蓝桥杯备考:真题之飞机降落(暴搜+小贪心)
无敌大饺子 dot
蓝桥杯职场和发展
我们最多有十架飞机,可以选择dfs暴力搜索,枚举每种情况那么,我们降落的时候怎么确定新的起点也就是newend呢?如果飞机飞到机场的时刻是大于原来的end的,我们就让ti+li作为newend否则,我们就让end作为newend也就是这种情况就没法降落这种情况就是从end直接开始降落这种情况就是从ti开始降落这是我们的枚举,算是排列型枚举,我们根据某架飞机能不能降落来做剪枝#include#inc
- DeepSeek-V3突袭式升级:代码数学双突破
敲代码的AI玩家
javapython人工智能AIGClangchain
我后续会分享大模型提示词工程、智能体开发指南、电商导购购物式助手、智能客服等实战案例,有兴趣的朋友们请关注我,一起探索学习AI前沿知识。核心亮点速览性能飙升:685B参数模型代码能力比肩Claude3.7,数学推理跃升新高度消费级适配:4-bit量化实现MacM3Ultra本地20+token/s流畅运行开源革命:MIT协议开放商业应用,模型体积压缩至352GB行业震荡:实测表现碾压多数商用模型,
- C++ 深度探索:从基础到高级实战
Ysjt | 深
C++深度探索:从基础到高级实战c++
一、引言C++作为一门强大而复杂的编程语言,在软件开发领域占据着重要的地位。它既继承了C语言的高效性和灵活性,又引入了面向对象编程的特性,使得开发者能够构建出复杂而高效的软件系统。无论是在游戏开发、操作系统、嵌入式系统还是高性能计算等领域,C++都有着广泛的应用。本文将深入探讨C++的各个方面,从基础语法到高级特性,再到实际项目中的应用,带领读者全面了解和掌握这门强大的编程语言。二、C++基础语法
- HarmonyOS NEXT状态管理实践
harmonyos-next
在HarmonyOSNEXT开发中,状态管理是构建高效、响应式应用的核心。本文深入探讨状态管理的最佳实践,结合代码示例与案例分析,帮助开发者掌握这一关键技能。一、状态管理装饰器的合理使用HarmonyOSNEXT提供多种状态管理装饰器,如@State、@Prop、@Link和@ObjectLink等。@State用于组件内部状态管理,适合独立、不影响其他组件的状态。@Prop用于父组件向子组件传递
- Electron 开发:获取当前客户端 IP
Electron开发:获取当前客户端IP一、背景与需求1.项目背景客户端会自启动一个服务,Web/后端服务通过IP+port请求以操作客户端接口2.初始方案与问题2.1.初始方案:通过代码获取本机IP/***获取局域网IP*@returns{string}局域网IP*/exportfunctiongetLocalIP():string{constinterfaces=os.networkInter
- CSS知识点总结 CSS3-02美化网页元素
码上来源码
前端html5
css02HTML中引入CSS样式一,样式的调整1.字体样式2.文本样式3.超连接样式4.列表样式5.背景样式6.内核一,样式的调整标签的作用能让某几个文字或者某个词语凸显出来1.字体样式属性名含义举例font-family设置字体类型font-family:“隶书”;font-size设置字体大小font-size:12px;font-style设置字体风格font-style:italic;f
- Linux halt 命令使用详解
linux
简介Linux中的halt命令用于立即关闭系统。它还可用于关闭电源或重新启动机器,具体取决于所使用的选项。基础语法halt[OPTION]默认情况下,halt需要root权限sudohalt常用选项-p:停止后关闭系统电源。(与poweroff相同)--reboot:重新启动系统而不是停止系统--force:强制立即停止而不通知进程--help:显示帮助信息示例用法停止系统sudohalt#这将停
- 80端口深度解析:从协议原理到工程实践
程序员
一、端口机制与HTTP协议栈1.1TCP/IP模型中的端口定位在TCP/IP四层模型中,端口属于传输层的核心概念。每个端口对应一个16位无符号整数(0-65535),其中0-1023为知名端口(Well-KnownPorts)。80端口作为HTTP协议默认端口,在RFC2616中明确规定其标准用途。1.2协议栈交互流程典型HTTP请求在协议栈中的封装过程:ApplicationLayer:HTTP
- 204.HarmonyOS NEXT系列教程之 TabsConcaveCircle组件动画系统实现
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之TabsConcaveCircle组件动画系统实现本文将详细介绍TabsConcaveCircle组件中的动画系统实现,包括选项切换动画和凹陷圆球的移动动画。效果演示1.选项切换动画实现getAnimateSelectInde
- HarmonyOS NEXT 中级开发笔记:电商团购应用的数据库设计与实践
harmonyos-next
今天在适配电商团购类应用到HarmonyOSNEXT时,重点研究了HarmonyOSDesign规范下的数据库设计。鸿蒙的分布式特性对数据存储提出了更高要求,这里记录几个关键实现点。一、数据模型设计遵循HarmonyOSDesign的"简洁高效"原则,采用关系型数据库存储核心数据。例如团购商品表设计:typescript//商品表结构constGOODS_TABLE={TABLE_NAME:"go
- ORACLE创建用户给予权限
刘寰
运营oracle数据库mysql
–CreatetheusercreateuserMKJK--创建用户identifiedby“”;----密码–Grant/RevokeobjectprivilegesgrantselectonHISDB.EXAM_TA_BILLtoMKJK;grantselectonHISDB.EXAM_TA_BOOKtoMKJK;grantselectonHISDB.EXAM_TA_REPtoMKJK;gra
- SQL——分组统计查询
刘寰
运营sql数据库
统计函数COUNT(*|DISTINCT|列)--求出全部的记录数,即全部行SUM(列)--求出总和,操作的列是数字AVG(列)--求平均值MAX(列)--求最大值MIN(列)--求最小值MEDIAN(列)--返回中间值VARIANCE(列)--返回方差STDDEV(列)--返回标准差分组函数HAVING--过滤子句,使用时必须与groupby子句一起使用:select列名from表名where条
- mac 怎么配置python 环境变量
花花鼓
macospython开发语言
python相关学习资料:https://edu.51cto.com/video/4102.htmlhttps://edu.51cto.com/video/3502.htmlhttps://edu.51cto.com/video/1158.htmlMac上配置Python环境变量的详细方案在Mac操作系统上配置Python环境变量是一个常见的需求,尤其是对于开发者来说。本文将详细介绍如何在Mac上
- Elasticsearch 基础篇【ES】
码农爱java
elasticsearch大数据搜索引擎esJava后端全文检索
前言:Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,它的用途非常广泛,主要用于全文检索、结构化搜索、数据分析以及将这三者混合使用,本篇我们来初步认识一下ELasticsearch,分享一些ELasticsearch的基本概念。什么是Elasticsearch?Elasticsearch是一个分布式的、开源的、实时的搜索和分析引擎。它是基于ApacheLucene构
- 2025年DevOps入门指南:工具演进与新手适配策略
对于DevOps初学者,建议优先考虑GiteeDevOps平台,其次可了解Jenkins和CircleCI。GiteeDevOps作为国内领先的一站式开发协作平台,集成了代码托管、持续集成/持续交付(CI/CD)、项目管理等功能,界面简洁且对中文用户友好,特别适合国内开发者快速上手。其开箱即用的特性、本地化服务以及丰富的生态资源,能有效降低新手的学习成本。一、平台优势1.GiteeDevOps的核
- 通配符SSL证书申请指南
ssl证书
一、什么是通配符SSL证书?通配符SSL证书(WildcardSSLCertificate)是一种特殊的SSL/TLS证书,用于保护一个主域名及其所有同级子域名。例如,一张通配符证书可以保护*.example.com,同时适用于www.example.com、mail.example.com、shop.example.com等无限数量的子域名。通配符SSL证书简化了多子域名场景下的证书管理,降低了
- mac安装python 并配置环境变量
SchwatzWagen
pythonmacos开发语言
环境变量,python相关学习资料:https://edu.51cto.com/video/2083.htmlhttps://edu.51cto.com/video/1158.htmlhttps://edu.51cto.com/video/4645.htmlMac上安装Python并配置环境变量作为一名刚入行的开发者,你可能需要在Mac上安装Python并配置环境变量。别担心,这个过程并不复杂,我
- 使用 Office Tool Plus 安装并激活 Microsoft 365(原 Office 365)
本文详细介绍了使用开源工具OfficeToolPlus在64位Windows上安装并激活自定义(仅包含Word、Excel、PowerPoint,或者您可以通过修改步骤3中的应用程序命令自行自定义)Microsoft365(原Office365)的过程。下载、解压并运行OfficeToolPlusx64。确保完成以下步骤:通过设置或控制面板卸载所有版本的Microsoft365或Microsoft
- 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