- CentOS7环境卸载MySQL5.7
Hadoop_Liang
mysql数据库mysql
备份重要数据切记,卸载之前先备份mysql重要的数据。备份一个数据库例如:备份名为mydatabase的数据库到backup.sql的文件中mysqldump-uroot-ppassword123mydatabase>backup.sql备份所有数据库mysqldump-uroot-ppassword123--all-databases>all_databases_backup.sql注意:-p后
- 如何查看自己本地的公网IP地址?内网环境网络如何开通服务器公网ip提供互联网访问?
搬码临时工
网络tcp/ip服务器
查看公网IP和开启公网地址提供互联网服务是作为网络管理员的必修课。代替路由映射的端口映射应用使用最广泛的就是nat123。内网发布网站或其他应用到外网访问,且本地无公网IP,或80和443端口被屏蔽,对于这些环境,就需要利用端口映射应用网络辅助来实现。一、如何查看自己本地的公网IP?登录你的路由器,看拨号状态那的WAN口的IP地址;如果你是光纤猫拨号,就需要登录光纤猫,看拨号状态那WAN口的IP地
- redis基础(1)
在Redis中,设置键值并同时指定以秒为单位的过期时间,有以下两种常用方式:方法1:使用SET命令+EX选项(推荐)SETkeyvalueEXseconds说明:在设置键值对的同时直接指定过期时间(秒)SETuser:token"abc123"EX3600#设置token并设置1小时后过期(3600秒)方法2:使用SETEX命令SETEXkeysecondsvalue说明:专用于设置带过期时间的字
- 深入解析Golang中的defer机制:从cch123/golang-notes看实现原理
深入解析Golang中的defer机制:从cch123/golang-notes看实现原理golang-notesGosourcecodeanalysis(zh-cn)项目地址:https://gitcode.com/gh_mirrors/go/golang-notes前言在Go语言中,defer语句是一种非常实用的特性,它允许我们在函数返回前执行某些操作。本文将基于cch123/golang-n
- 浅谈函数传参
2501_90124553
c语言
//函数传参:指针传递代码如下:voidfun(int*ptr){/*改变了ptr的值,所以无法通过这种方式改变num*///intx=100;//ptr=&x;/*改变了ptr所指向内存的值,可以通过这种方式改变num*/*ptr=100;}intmain(){intnum=123;fun(&num);printf("num=%d\n",num);return0;}#endif
- PTA 数据结构 一元多项式求导
weixin_42606045
数据结构数据结构链表
7-2一元多项式求导(20分)设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:34-5261-20输出样例:123-10160//库函数头文件包含#include#include#include//函数状
- PTA 一元多项式求导
LYQ_YXQ
数据结构PTA算法数据结构c++
PTA一元多项式求导题目描述:设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。样例:输入样例:34-5261-20输出样例:123-10160思路:本题目为数据结构基础题,可以使用单链表进行存储多项式,根据多项式求
- 【PTA数据结构 | C语言版】一元多项式求导
秋说
PTA数据结构题目集数据结构c语言算法
本专栏持续输出数据结构题目集,欢迎订阅。文章目录题目代码题目设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数),数字间以空格分隔。注意:零多项式用00表示。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但行首尾不能有多余空格。注意:零多项式用00表示。输入样例:34-5261-20输出样例:123-10
- 2021面试题——js面试题总结
yizhangzzzz
js面试题总结1.js的typeof返回哪些数据类型?alert(typeofnull)//objectalert(typeofundefined)//undefinedalert(typeofNaN)//numberalert(NaN==undefined)//falsealert(NaN==NaN)//falsevarstr="123abc"alert(typeofstr++)//number
- DIDCTF-22蓝帽杯初赛
小丑001.
DIDCTF网络安全
手机取证_1题目描述现对一个苹果手机进行取证,请您对以下问题进行分析解答。627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:1920×1080)注意:中间为乘号×,不是字母xflag:360×360手机取证_2题目描述姜总的快递单号是多少?(答案参考格式:abcABC123)flag:SF1142358694796网站取证_1题目描述据
- 局域网服务器搭建如何实现公网使用?内网本地网站搭建+外网访问教程
搬码临时工
服务器运维
如何实现局域网搭建的服务器提供公网使用是很多人的疑惑,其实实现这个功能很简单,用内网映射软件(常见如nat123)即可实现局域网服务开放到互联网访问。安装并注册nat123域名映射软件,在任何地点、任何时间、使用任何线路,均可利用这一服务建立拥有固定域名和最大主动权的互联网主机。一、需要使用的软件工具nat123内网映射和IIS组件,搭建WEB网站(在这里以win自带的IIS为例)。二、搭建内网网
- 内网穿透:打破局域网壁垒,本地无公网IP也能提供互联网访问,内外网络畅联互通
搬码临时工
网络tcp/iplinux
在当今数字化浪潮迅猛推进的时代,互联网技术以前所未有的速度蓬勃发展。众多机构与个人为提升服务的安全性与稳定性,纷纷将各类服务部署于内网环境之中。然而,这一举措在带来安全保障的同时,也衍生出一个亟待解决的难题——内网服务在没有公网IP时无法直接被外部网络所访问。在此背景下,像nat123这样的内网穿透技术应运而生,成为解决这一困境的关键方案。一、内网穿透:原理剖析内网穿透本质上是一种技术手段,其核心
- 【学无止境,每天一题】三倍子串
请叫我小蜜蜂同学
算法c++
题目:三倍子串题目描述第三届上海青少年算法竞赛T4时间限制:1000ms空间限制:256mb给定一个十进制正整数n,请问可以从n中截取多少种不同的子串,使得子串构成的数字是3的倍数。例如:当n=1234,有且仅有3,12,123,234这四个子串是3的倍数。输入格式单个整数:表示输入的数字n输出格式单个整数:表示3的倍数的子串数量。数据范围对于20%的数据,1≤n≤10^9对于50%的数据,1≤n
- Ubuntu22.04 安装autoware universe
注意事项:1,不要用conda包管理2,将autoware项目和autoware_map都放在$Home目录下3,系统的软件更新器更新包这步很重要1,装好了ubuntu22.04系统后,首先装nvidia显卡驱动autoware所需最低驱动版本为550,进入ubuntu恢复模式,启动终端输入以下命令(前提是有网络连接)wgethttps://vip.123pan.cn/1816448054/xTo
- 牛客刷题记录之语法入门选择结构篇
Leona不学计算机
蓝桥杯c语言c++
(一)N-送分题题目描述数据结构之神ccz又在出毒瘤数据结构了,神出了这样一个题:给你三个数,在这三个数中间任意加*或者是+,然后可以随便打括号,只要这个表达式合法比如说123可以得到:1+2*3=71*(2+3)=51*2*3=6(1+2)*3=9不能改变这三个数的原顺序最大化表达式的值输入描述:输入三行,每行一个数分别表示a,b,c输出描述:输出一行一个数表示答案输入示例:123输出示例:9输
- 牛客刷题——part1
HHYX.
C++C语言c语言开发语言c++
牛客刷题以下for循环的执行次数是©for(x=0,y=0;(y=123)&&(x<4);x++);A是无限循环B循环次数不定C4次D3次for循环中用两个分号将内容分为3个部分:第一个是初始化部分,第二个是条件判断部分,第三个则是调整部分。for循环下面{}内容是循环语句部分。其中初始化部分只会执行一次。这里的条件判断部分中使用与连接起来的,只有两个都为真的情况下,该判断才会为真。因此这里的表达
- Fibonacci sequence 斐波那契数列解法及分析
hiqex
ALfibfibonacci
版权声明:欢迎转载,但请注明出处,若有什么不对的地方,欢迎指正,https://blog.csdn.net/wutenglong123/article/details/82764585斐波那契数列(Fibonaccisequence)斐波那契数列的性质多种多样,截至现在,人么依然没有将之研究透彻,本文就从中选取几个有趣的性质分析。定义Fib数列的定义如下:F(n)={0ifn=01ifn=1Fn−
- 利用TCP协议,创建一个多人聊天室
在下Z.
tcp/ip网络协议网络
项目名称利用TCP协议,做一个带有登录,注册的无界面,控制版的多人聊天室。知识点循环,判断,集合,IO,多线程,网络编程准备内容在当前模块下新建txt文件,在文件中保存正确的用户名和密码zhangsan=123lisi=1234wangwu=12345页面搭建客户端连接服务器后,显示如下服务器已经连接成功==============欢迎来到小周聊天室================1登录2注册请输
- 【123揭秘】Elasticsearch内部数据结构大起底:行存、列存与倒排索引,你选对了吗?
墨瑾轩
Java乐园elasticsearch数据结构jenkins
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣第一部分:理解基本概念——构建知识的基础首先,我们需要了解一些基础概念,这对于理解Elasticsearch如何处理和存储数据至关重要。1.1行存储vs列存储行存储:适用于频繁写入和读取整行数据的场景。例如,在关系型数据库中,每一行代表一条记录,所有列的数据都
- 21天刷题计划之10.1—统计大写字母个数(Java语言描述)
justlikeu777
21天刷题计划java基础算法基础
题目描述:找出给定字符串中大写字符(即’A’-‘Z’)的个数接口说明原型:intCalcCapital(Stringstr);返回值:int输入描述:输入一个String数据输出描述:输出string中大写字母的个数示例1输入add123#$%#%#O输出1分析:获取输出的字符串,将字符串转换成字符数组,遍历字符数组并判断是否为大写字母即可。importjava.util.Scanner;publ
- 内网和外网可以共享一台打印机吗?怎么设置实现跨网电脑远程连接打印
搬码临时工
网络
内网和外网可以通过特定技术手段实现共享一台打印机。实现方式主要包括物理切换器、网络分段映射(如路由设置)、类似nat123内网穿透等技术方案,但需根据网络环境安全等级选择合适方案,并注意数据隔离要求。一、物理切换器方案实现内外网共离同一打印机使用USB打印机共享器或网络切换器,通过物理按钮切换内外网连接。这类设备可实现电路层面的隔离,避免数据泄露风险。例如:采用二进一出的USB切换器连接内
- R语言 绘制上下双向分布柱状图
话不多说,直接上干货library(ggplot2)library(tidyr)set.seed(123)#设置随机种子保证可重现df<-data.frame(Type=rep(letters[1:5],each=5),Sample=paste("sample",rep(1:5,times=5),sep=""),Up=round(runif(25,min=0,max=100),1),Down=ro
- PTA 计算结果为0的数列
soilovedogs
算法
计算结果为0的数列分数15作者李佳单位重庆大学递增数列:123⋯N,在相邻数字之间插入符号+,−或空格。其中,‘+’表示加,‘-’表示减,空格''表示组合成多位整数,比如‘‘2+34+56−7"表示‘‘2+34+56−7"。找出所有计算结果为零的长度为N的数列。输入格式:单独的一行表示整数N(3≤N≤9)。输出格式:按照ASCII码的顺序,输出所有在每对数字间插入'+','-',或''后能得到计算
- VUE——Ajax【请求方式】
时间sk
VUE疑难杂症vue.jsajax前端
一、XMLHttpRequest示例1.GET请求(获取数据)//创建对象constxhr=newXMLHttpRequest();//配置请求(异步GET)xhr.open('GET','https://api.example.com/users/123',true);//设置响应类型为JSON(可选)xhr.responseType='json';//监听请求状态变化xhr.onreadyst
- vue3 v-model的使用(多个 v-model 绑定)
不知名前端v2
vuevue3前端
//父组件setup(props){constmsg=ref("msg");constfoo=ref('123')return{foo,msg}}{{modelValue}}{{msg}}/>自定义修饰符的用法,根据官方//父组件{{myText}}setup(){return{myText:ref(22);}//不加ref无法做到响应}//子组件//自定义修饰符capitalize通过model
- 基于python+django+vue.js开发的停车管理系统源码+运行
功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。技术学习共同进步功能包括:车位管理、会员管理、停车场管理、违规管理、用户管理、日志管理、系统信息模块。源码地址https://github.com/geeeeeeeek/python_parking演示地址http://parking.gitapp.cn演示帐号:用户名:admin123密码:a
- 基于python+django+vue.js开发的学生成绩管理系统
西门吹雪1998
毕业设计合集pythondjangovue.js
功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。功能包括:成绩管理、学生管理、课程管理、班级管理、用户管理、日志管理、系统信息模块。源码地址https://github.com/geeeeeeeek/python_score演示地址http://score.gitapp.cn演示帐号:用户名:admin123密码:admin123主要使用技术
- 【课程设计】基于python+django+vue.js开发的健身房管理系统
功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。给师妹的课程作业。功能包括:教练管理、会员管理、场地管理、设备管理、用户管理、日志管理、系统信息模块。源码地址https://github.com/geeeeeeeek/python_fitness演示地址http://fitness.gitapp.cn演示帐号:用户名:admin123密码:a
- 基于python+django+vue.js开发的健身房管理系统源码+运行
功能介绍平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。技术学习共同进步功能包括:教练管理、会员管理、场地管理、设备管理、用户管理、日志管理、系统信息模块。源码地址https://github.com/geeeeeeeek/python_fitness演示地址http://fitness.gitapp.cn演示帐号:用户名:admin123密码:ad
- 异地跨网怎么远程访问应用系统?几种常见的进销存软件远程管理方式
搬码临时工
服务器运维
在当今数字化时代,远程访问进销存的主要方法包括使用云端软件、nat123内外网映射、VPN、远程桌面连接和移动应用。其中使用云端软件是直接使用系统本身自带的功能,因为它不仅方便,还能提供实时数据更新。类似nat123网址转换方式也能快速让用户可以随时随地通过互联网网络访问进销存系统,无需担心数据同步问题。通过远程管理访问你可以远程管理库存、订单和销售数据,确保业务的高效运转。一、使用云端软件(部署
- 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