- 阿里云SSL代理商:阿里云SSL证书安装后还需要配置吗?
VX jusouyun07
阿里云优惠券阿里云服务器阿里云代理商阿里云ssl云计算
目录一、为什么SSL证书安装后还要配置?二、强制跳转到HTTPS,杜绝HTTP访问三、修复“混合内容”问题,保证页面完全加密四、配置HSTS,提高访问安全性五、301重定向与搜索引擎收录调整六、CDN和WAF环境下的HTTPS配置要点七、站点地图和搜索引擎推送的同步更新八、检查证书有效性及自动续签九、配置HTTPS页面的缓存优化十、总结:SSL证书配置是一项系统工程在当前互联网环境中,网站安全越来
- IP 证书全面解析:功能、类型与申请指南
Arwen303
tcp/ipphp网络协议
一、IP证书的核心功能身份验证:验证IP地址的所有权,防止非法用户冒充服务端,适用于无域名或域名不可靠的场景。数据加密:通过SSL/TLS协议对传输数据进行加密,支持RSA、ECC及国密算法(如SM2),保障通信机密性。防域名劫持:当域名解析被篡改时,用户可直接通过IP访问安全服务,避免流量重定向风险。动态网络支持:适配负载均衡、云迁移等场景,支持多IP绑定或IP范围证书。二、IP证书与域名证书的
- 什么是 ICMP 重定向攻击?原理与防御
南风撞南墙.
网络智能路由器
一、ICMP重定向的定义ICMP(InternetControlMessageProtocol)重定向是一种正常的网络控制机制,用于路由器通知主机存在更优的路由路径,减少不必要的转发。例如:主机A将数据发给路由器R1R1发现到目标IP,另一网关R2更优R1会发送ICMPRedirect消息给主机A之后,主机A会直接将数据发送给R2这种机制可以优化网络路径,但也带来了安全隐患。二、ICMP重定向报文
- 可用于AI Agent集成和多种系统之间联调Windows下GCC的C++虚拟机项目
weixin_30777913
c++windows系统架构
下面是一个完整的C++虚拟机项目设计,实现了所有需求功能,包括虚拟磁盘管理、操作系统安装、I/O重定向和网络转发等功能。可用于AIAgent的集成,全自动设计开发测试Linux下和Windows与Linux联动软件。整体架构设计VMController-config:Config-vdisk:VDiskManager-vm:VirtualMachine-logger:shared_ptr+run(
- 【python】从入门到精通:httpx,Python网络请求的新宠
大雨淅淅
Python开发php开发语言python网络httpx
目录一、httpx是什么二、为什么选择httpx(一)异步支持(二)HTTP/2支持(三)简洁一致的API三、安装httpx(一)Windows系统安装(二)macOS系统安装(三)Linux系统安装四、httpx基础用法(一)同步请求(二)异步请求五、httpx高级用法(一)设置请求头(二)传递参数(三)处理响应六、常见问题及解决方案(一)SSL验证失败(二)超时处理(三)处理重定向七、实战案例
- linux重定向printf,printf和fprintf及用freopen()进行重定向
除了人工的分析之外,最简单最直接的调试方法要算printf了。不过,我们这里推荐使用的并不是初学C语言时使用的函数intprintf(constchar*format,...),而是稍微复杂一点的fprintf()函数,因为它更方便我们之后重定向错误输出信息到指定的设备。fprintf()函数的原型如下:intfprintf(FILE*stream,constchar*format,...)可以看
- freopen()的重定向打开或者关闭
加入有一个文本文件为:text.txt.我们打开这个文件,读入其中的数据。所使用的代码为:freopen("text.txt","r",stdin);对应的关闭语句为:freopen("CON","r",stdin);往文件中写数据的代码为:freopen("text.txt","w",stdout);对应的关闭语句为:freopen("CON","w",stdout);以上只针对于Windows
- 文件读写重定向freopen函数
FILE*freopen(constchar*filename,constchar*mode,FILE*stream)参数:filename–这是C字符串,包含了要打开的文件名称。mode–这是C字符串,包含了文件访问模式,模式如下:|模式|描述||----|------------------------------------------------------||“r”|打开一个用于读取的文
- 标准IO:freopen重定向打开文件
xueningshiny
服务器linux运维
freopen(文件路径,打开文件方式,文件流指针)返回值:成功“返回文件流指针”失败“NULL”打开方式:r:只读,流被定义到文件开头r+:可读可写,流在文件开头w:只写,文件不存在创建存在清空,流定义在文件开头w+:可读可写,文件不存在创建存在清空,流在文件开头a:追加,文件不存在创建存在追加,流在文件末尾a+:可读可写,文件不存在创建存在追加,读从头读写时在文件末尾freopen("./te
- Web服务器
Z_zz_Z___
服务器运维
http的请求方法在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器需要执行的动作(获取指定的web页面,提交内容到服务器,删除服务器上的资源文件等)状态码1**:指示信息——请求已接收,继续处理2**:成功——请求已被成功接收,理解3**:重定向——要完成请求必须进行更进一步的操作4**:客户端错误——请求有语法错误或请求无法实现5**:服务器端错误——服务器未能实现合法
- springmvc重定向和返回json,如何同时实现?
bug菌¹
全栈Bug调优(实战版)#CSDN问答解惑(全栈版)json
本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述 springmvc重定向和返回json,同一个method既想可以重定向,又可以把字符串对象比如“helloworld”输出到页面!现在在方法上追加@ResponseBody标
- 如何在keil5中实现printf函数
风停了123
单片机嵌入式硬件
在KeilMDK(Keil5)中实现printf函数,需通过重定向字符输出到硬件接口(如串口),并配置工程选项。以下是完整步骤及注意事项:一、实现步骤1.添加头文件与重定向函数包含标准I/O库:#include//提供printf函数声明重写fputc函数(以STM32串口为例)://方法1:使用标准库函数(如HAL库)intfputc(intch,FILE*f){HAL_UART_Transmi
- 微信扫描登录详解
introverter
微信扫描java后台接口微信扫描登录
微信扫描登录第一步:准备工作在application.properties添加相关配置信息微信开放平台appidwx.open.app_id=你的appid微信开放平台appsecretwx.open.app_secret=你的appsecret微信开放平台重定向urlwx.open.redirect_url=http://你的服务器名称/api/ucenter/wx/callback创建util
- HTTP常见状态码
SherrinfordL
200-服务器成功返回网页303-查看其他位置404-请求的网页不存在503-服务器超时2开头(请求成功)表示成功处理了请求的状态代码。3开头(请求被重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。4开头(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请
- 网盘项目实现GitHub第三方登录
dhdjfj
github
用户访问/main/files↓路由守卫检查(未登录)↓重定向到/login?redirectUrl=/main/files↓用户点击GitHub登录↓callbackUrl="/main/files"传给后端↓后端保存到session[state]="/main/files"↓GitHub授权完成↓后端取出session[state]="/main/files"↓返回给前端callbackUrl
- 错误代码ERR_TOO_MANY_REDIRECTS网页打不开?从Nginx配置到Cloudflare的排查全记录
前言:从“网页打不开”到找到根源的真实记录“ERR_TOO_MANY_REDIRECTS”——这个错误代码想必不少开发者都遇到过:明明域名解析、服务器配置都检查过了,可网页就是打不开,浏览器提示“重定向次数过多”。更让人头疼的是,有时候注释掉某段Nginx配置(比如用于强制跳转的return301),网页突然就能打开了,但原本想要的功能(比如HTTP强制转HTTPS)却没了。最近我就碰到了这个典型
- 在 Linux(openEuler 24.03 LTS-SP1)上安装 Kubernetes + KubeSphere 的防火墙放行全攻略
目录在Linux(openEuler24.03LTS-SP1)上安装Kubernetes+KubeSphere的防火墙放行全攻略一、为什么要先搞定防火墙?二、目标环境三、需放行的端口和协议列表四、核心工具说明1.修正后的exec.sh脚本(支持管道/重定向)2.批量放行脚本:open_firewall.sh五、使用示例1.批量放行端口2.查看当前防火墙规则3.仅开放单一端口(临时需求)4.检查特定
- Apache http 强制 https
熊猫小账本App
WebLinuxSafehttpapachehttpsssl
1.修改一下文件配置sudonano/etc/apache2/sites-enabled/000-default.confServerNamehongweizhu.comServerAliaswww.hongweizhu.comServerAdminwebmaster@localhostDocumentRoot/var/www/html#强制重定向到HTTPSRewriteEngineOnRewr
- 【WEB安全】任意URL跳转
1.1.漏洞介绍URL跳转漏洞(URLRedirectionVulnerability)又叫开放重定向漏洞(OpenRedirectVulnerability),是一种常见的网络安全漏洞,它存在于许多网站和应用程序中。该漏洞的根本原因是没有对用户提供的URL进行充分的验证和过滤,导致攻击者可以通过构造恶意URL,将用户重定向到任意的网站或应用程序中。1.2.漏洞危害以攻击用户客户端为主,对服务器本
- URL跳转漏洞总结(重定向漏洞)
墨痕诉清风
渗透常识研究安全web安全
目录介绍绕过的方式本地CDIRDot十进制八进制十六进制添加0域名参数改造域混淆路径和扩展绕过常注射的参数利用方式工具介绍URL跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。访问http://www.abc.com?url=http://www.xxx.com直接跳转到http://www.xxx.com说明存在URL重
- 跳转漏洞检测工具汇总(重定向漏洞)
墨痕诉清风
渗透工具安全
目录简单介绍绕过方式及更多介绍工具介绍Oralyzer介绍主要功能使用缺点下载地址简单介绍URL跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。访问http://www.abc.com?url=http://www.xxx.com直接跳转到http://www.xxx.com说明存在URL重定向漏洞绕过方式及更多介绍htt
- HTTP注入、URL重定向漏洞验证测试
afei00123
#漏洞验证与渗透测试
目录1.前言2.HTTP注入漏洞介绍3.URL重定向漏洞介绍4.HTTP注入漏洞验证5.URL重定向漏洞验证6.修复建议(1)针对HTML注入漏洞修复建议(2)针对URL重定向漏洞修复建议1.前言今天在公司使用AWVS和Appscan对目标网站进行漏扫时发现了HTTP注入和URL重定向。并使用Burp进行了验证。afei2.HTTP注入漏洞介绍基于HTTP协议注入威胁技术是一种新型危害性很强的攻击
- 什么是URL 跳转漏洞(URL Redirection Vulnerability)
西京刀客
安全相关安全网络web安全
文章目录什么是URL跳转漏洞(URLRedirectionVulnerability)漏洞原理修复建议什么是URL跳转漏洞(URLRedirectionVulnerability)URL跳转漏洞(URLRedirectionVulnerability)是指攻击者利用网站或应用程序中未经验证的重定向功能,将用户引导至恶意网站的一种安全漏洞。漏洞原理未验证的重定向参数:网站使用用户提供的URL参数(如
- 流重定向方式实现日志多路输出(c++/c)
通过流重定向方式实现日志多路输出,设计为可扩展架构,支持动态添加多个输出目标(控制台、文件、调试窗口等)。其中C++方案更符合面向对象设计,而C方案则更轻量、更接近系统底层。C++实现(基于流缓冲区)基于标准库的std::streambuf实现流重定向通过MultiStreambuf类将数据分发到多个目标缓冲区支持控制台、文件和调试窗口(OutputDebugString)输出使用单例模式管理日志
- selenium跳转到新页面时如何进行定位
在Selenium中,当你跳转到新页面(例如通过点击链接、提交表单或JavaScript重定向)时,通常会遇到页面加载或窗口切换的问题。为了在新页面上继续进行页面定位操作,你需要确保以下几点:✅1.等待页面加载完成Selenium默认不会自动等待页面加载完成。因此,你需要使用显式等待(ExplicitWait)来确保元素存在后再进行操作。示例代码(Python):fromseleniumimpor
- web 系统对接飞书三方登录完整步骤实战使用示例
慧一居士
架构总结架构系统架构
下面我将详细说明Web系统对接飞书三方登录的完整步骤,并提供实战示例(基于Node.js/Express):一、完整对接流程注册飞书开放平台应用登录飞书开放平台创建企业自建应用→获取AppID和AppSecret配置安全域名和重定向URL(如https://yourdomain.com/auth/feishu/callback)OAuth2.0授权流程sequenceDiagram用户->>你的应
- JSP内置对象
海梦在飘扬
JSP\Servletjavaservlet开发语言
文章目录什么是JSP内置对象1、request对象2、response对象1、重定向网页2、出来HTTP文件头3、设置输出缓冲3、session对象1、创建及获取客户的会话2、从会话中移动指定的绑定对象3、销毁session4、会话超时管理4、application对象1、访问应用程序初始化参数2、管理应用程序环境属性5、out对象1、向客户端输出数据2、管理响应缓冲6、pageContext对象
- HTTP 重定向
en-route
HTTP协议http网络协议网络
什么是HTTP重定向?HTTP重定向(HTTPRedirect)是服务器向客户端(通常是浏览器)发出的指令,告诉客户端某个请求的资源已被移到新的位置。重定向通常通过发送一个特殊的HTTP状态码(例如3xx系列状态码)和一个Location头,指示客户端去访问新的URL。重定向的场景永久重定向(PermanentRedirect)永久重定向是HTTP状态码301和308所代表的重定向类型,用于告知客
- Pipeline 管道,进程间通信
Ring__Rain
C++c++
在Windows平台下,C++的管道(Pipeline)通信主要分为匿名管道(AnonymousPipes)和命名管道(NamedPipes)两种,分别适用于父子进程和无关进程间的通信。以下从原理、实现到代码示例详细说明:⚙️一、匿名管道(AnonymousPipes)适用场景:父子进程间的单向数据流(如重定向子进程输出)5。核心步骤:父进程调用CreatePipe创建读/写句柄。通过STARTU
- 前端中常见的状态码
m0_72497656
http网络协议网络
1开头:信息服务器收到请求,需要请求者继续执行操作2开头:成功,操作被成功接收并处理3开头:重定向,需要进一步的操作以完成请求4开头:客户端错误,请求包含语法错误或无法完成请求5开头:服务器错误,服务器在处理请求的过程中发生了错误101:切换协议200:请求成功。一般用于get和post请求203:非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本204:无内容。服务器成功处
- 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