- C语言:实现扫雷游戏(进阶版)
果味软糖又不硬
C语言游戏c语言算法
文章目录前言一、展开二、标记雷三、头文件总结前言如何使用C语言完成扫雷游戏(基础版)可以看我的上一篇文章:http://t.csdn.cn/vSZKz在上一篇文中,利用C语言实现了扫雷的基本功能,包括扫雷游戏界面初始化,布置雷,排查雷,显示界面。在这篇文章中,将介绍实现扫雷游戏进阶版,与基础版相比,进阶版添加了两个功能,1.展开的功能、2.标记雷的功能。一、展开在扫雷游戏中,选中的坐标周围如果有雷
- Java中的ArrayList
「已注销」
Java算法pythonjava编程语言大数据
一、概述ArrayList底层使用的是数组。是List的可变数组实现,这里的可变是针对List而言,而不是底层数组。数组有自身的特点,不变性,一旦数组被初始化,那么其长度就固定了,不可被改变。这就导致了ArrayList中的一个重要特性:扩容。二、源码解析2.1声明publicclassArrayListextendsAbstractListimplementsList,RandomAccess,
- 25 - K 个一组翻转链表
大法师安东尼ds
链表数据结构
综合题解:K个一组翻转链表(迭代法)解题思路本问题要求以常数空间复杂度完成链表分组翻转。核心思想是通过哑节点(dummynode)简化边界处理,并利用指针分段操作实现每组翻转。具体步骤如下:哑节点初始化:创建虚拟头节点dummy,统一处理链表头部的翻转逻辑。分组探测与翻转:通过pre指针标记当前组的前驱,探测每组起始start和终止end,若剩余节点不足k则终止。子链表翻转:断开当前组与后续链表,
- [动态规划 & 滑动窗口]
大法师安东尼ds
面试100题动态规划算法
1.定义DP状态(核心思路)问题分析:将word1转换为word2,每个操作对应状态转移。定义dp[i][j]表示将word1[0..i-1]转换为word2[0..j-1]的最小操作数。2.初始化DP表目的:处理空字符串的边界情况。3.填充DP表(状态转移方程)状态转移逻辑:若word1[i-1]==word2[j-1]:无需操作,直接继承左上方值→dp[i][j]=dp[i-1][j-1]否则
- Apollo 相关知识点
点滴~
中间件面试中间件
目录Apollo的动态更新是怎么实现的?一、客户端与服务器通信二、客户端内部机制三、总结四、示例代码Apollo的动态更新是怎么实现@Value动态更新的,整个流程是什么?1.Spring容器启动与Bean初始化2.解析@Value注解3.配置监听与更新4.属性注入与动态更新总结SpringValueRegistry是Spring的类还是Apollo的?Apollo的动态更新是怎么实现@Value
- C++类与对象——下
江烽渔火
c++开发语言1024程序员节
目录十六、构造函数(二)16.1构造函数体赋值16.2初始化列表16.3explicit关键字16.4匿名对象十七、static成员17.1概念17.2特性十八、友元18.1友元函数18.2友元类十九、内部类十六、构造函数(二)16.1构造函数体赋值例:classDate{public:Date(intyear,intmonth,intday){_year=year;_month=month;_d
- Android系统启动流程、应用启动流程、Activity启动流程
xie_guo_rong
Android公司团队开发项目分享android
Android系统启动流程、应用启动流程、Activity启动流程一、Android系统的启动流程1、开机,系统加电,执行BootLoader。BootLoader负责初始化软件运行需要的最小硬件环境,最后加载内核到内存2、内核加载进内存后,首先进入内核引导阶段,在引导阶段的最后,调用start_kernel进入内核启动阶段。start_kernel最终启动用户空间的init程序3、init程序负
- Spring的启动流程,90%的Java程序员都说不出来!
呱牛 do IT
程序设计java
1.Spring启动的整体流程对于Spring应用程序的启动过程,我们可以总结成以下6个主要步骤:引导阶段:启动器(如SpringBoot的SpringApplication)被调用,初始化应用上下文。环境准备:加载配置文件,设置环境属性。创建应用上下文:根据配置创建适当的ApplicationContext(如AnnotationConfigApplicationContext)。注册Bean定
- C++开发面试之——C++11新特性20问
小夕Coding
C++小白学习教程java开发语言
1、C++11有哪些新特性?C++新特性主要包括包含语法改进和标准库扩充两个方面,主要包括以下11点:一、语法的改进统一的初始化方法---------使用初始化列表进行初始化(适用性被增加,现可以用于任何类型对象的初始化)成员变量默认初始化auto关键字用于定义变量,编译器可以自动判断的类型(前提:定义一个变量时对其进行初始化)decltype求表达式的类型智能指针shared_ptr空指针nul
- C++ 11 新特性 —— 初始化方式
好名字_storm
C++基本知识总结c++经验分享
C++11初始化方式intrheas={12};//setrheasto12其次,大括号内可以不包含任何东西。在这种情况下,变量将被初始化为零;introcs={};//setrocsto0
- 【MySQL高可用】Orchestrator
GugodChen
mysql数据库
部署教程部署MySQLorchestrator的元数据服务依赖MySQL,所以这里需要给每个orchestrator节点部署一个MySQL作为元数据服务。具体如何部署MySQL这里不详细展开。元数据初始化CREATEDATABASEIFNOTEXISTSorchestrator;CREATETABLEIFNOTEXISTSorchestrator.`failover_circuit_breaker
- 23种设计模式-原型(Prototype)设计模式
程序员汉升
#设计模式原型模式设计模式
原型设计模式什么是原型设计模式?原型设计模式的特点原型设计模式的结构原型设计模式的优缺点原型设计模式的Java实现代码总结总结什么是原型设计模式?原型模式(PrototypePattern)是创建型设计模式,它用于克隆对象,而不是重新创建它们。在原型模式中,我们创建一个对象作为原型,并允许其克隆多个副本,而不必重新初始化所有字段。使用场景创建对象开销较大,但又需要多个相似对象。对象的构造过程复杂,
- 鸿蒙OpenHarmony【组件化启动】子系统init启动引导组件
伤感的猪大肠
记录harmonyos华为鸿蒙鸿蒙系统组件ui
组件化启动概述功能简介构建四个基础组件镜像,提供相应的组件化目录,包括:系统组件:system产品通用配置组件:sys_prod芯片组件:chipset产品硬件配置组件:chip_prod;确保系统参数以及启动脚本都可以按照组件的优先级进行扫描初始化;完成系统组件和芯片组件的独立编译构建。基本概念基础组件system:系统组件文件系统挂载点,与芯片及硬件无关的平台业务;sys_prod:对系统组件
- 鸿蒙OpenHarmony【jobs管理】子系统init启动引导组件
伤感的猪大肠
记录harmonyos鸿蒙鸿蒙系统华为组件ui
概述功能简介jobs是init组件下cfg文件中的一组命令构成的集合,最多添加4096个job。jobs可以在**[cfg]**文件中配置,通常在init启动过程中执行,服务于service的正常启动或特定基础功能的初始化。基本概念job可以在init.cfg中配置,也可以在模块的自定义cfg中配置。init解析程序会把相同名字job的命令合并到一个job中。同一名字的job只能保证init.cf
- 数据结构每日一题day1
Phoebe鑫
数据结构
题目描述:设计一个高效算法,讲顺序表L的所有元素逆置。要求算法空间复杂度为O(1)算法思想:采用双指针法。通过交换首尾对应位置的元素实现逆置,具体步骤如下:初始化指针:用两个下标分别指向顺序表的首元素(下标0)和末元素(下标length-1)。交换元素:每次交换两个下标对应的元素,然后首指针右移,尾指针左移。终止条件:当首指针超过或等于尾指针时停止,确保所有元素被交换一次。代码实现:#includ
- c语言队列link指针,数据结构——链式队列基本操作(C语言实现)
庄比
c语言队列link指针
1、定义typedefstructLinkQueueNode{ElemTypedata;structLinkQueueNode*link;}LinkQueueNode;typedefstructLinkQueue{LinkQueueNode*head;//队头指针LinkQueueNode*tail;//队尾指针}LinkQueue;2、初始化voidLinkQueueInit(LinkQueue
- # 动态规划解决最小路径和问题:从错误中学习正确解法
小学仔
java动态规划leetcode算法动态规划
##题目描述给定一个包含非负整数的\(m\timesn\)网格`grid`,找出一条从左上角到右下角的路径,使得路径上的数字总和最小。每次只能向下或向右移动一步。##解题思路动态规划是解决此类问题的经典方法。核心思路是:1.**定义状态**:`dp[i][j]`表示从左上角到`(i,j)`位置的最小路径和。2.**初始化**:起点的值`dp[0][0]=grid[0][0]`。第一行和第一列的值只
- Python 类继承
每天减 1/5kg
python开发语言
Python类继承在python中,类继承是面向对象的一个重要特性,他允许一个类继承另一类的属性及方法。通俗的来说,就是龙生龙,凤生凤,老鼠的儿子会打洞。也就是儿子天生就具备父亲的一些特性。继承能够减少重复代码,保证可维护性,以及在不修改父类的情况下通过子类添加新的功能或修改现有功能来提高代码的可拓展性基础示例#创建Animal类classAnimal:#初始化方法def__init__(self
- 大华ICC平台对接组织设备通道
iummature
c++
sdk版本:ICC_DPSDK_C_Chn_Win32_IS_V5.0.5.20230418lib:DPSDK.lib头文件:#include"./DH_NET/include/DPSDK_Error.h"#include"./DH_NET/include/DPSDK.h"1.初始化SDKDPSDK_INT32iRet=DPSDK_Init();if(iRet==DPSDK_SUCCESS){//
- vue实战笔记整理——用户列表小案例
Thaley
Vue实例vue.jsvue
vue实战——笔记整理——黑马用户列表案例目录1.初始化项目1.1梳理项目结构1.2修改项目的开发调试配置1.3初始化路由1.4使用路由渲染UserList组件2.渲染用户列表组件2.1安装并配置axios2.2请求用户列表的数据2.3解决跨域请求限制3.安装并配置ElementUI4.自定义渲染方式——插槽5.通过插槽渲染操作列的模板结构6.点击按钮展示添加用户的Dialog组件——用了Elem
- 【环境与命令】conda环境更新
JAMJAM_NoName
环境与命令计算机基础与常识condalinux
应用场景在使用电脑进行虚拟环境配置时,由于原先电脑上安装了一个很老的anaconda,一直没有使用。在使用时,一直报我的conda版本太老,需要更新步骤按照提示首先初始化conda并update```bashcondainitcondacondaupdate-nbase-cdefaultsconda这样给环境中下载了一些conda最新版本的包在使用conda过程中依然报如下警告----它甚至在我运
- Python机器人简单问答系统
chang_xiaoyi
python开发语言
目录项目背景与目的整理框架1.导入必要的库2.初始化Flask应用3.读取学习数据4.处理用户请求4.1首页路由4.2问答路由5.根据问题生成回答6.运行Flask应用全部代码HTML结构学习总结项目背景与目的项目背景随着人工智能技术的快速发展,自然语言处理(NLP)作为其核心领域之一,已经取得了显著的进步。自然语言处理技术使得计算机能够理解和处理人类语言,从而在各种应用中提供更加智能和个性化的服
- Java中Map详解
嗯嗯嗯吧
javajava后端
用法Map:java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。本文主要介绍javamap的初始化、用法、map的两种常用的遍历方式。map存放值的时候通过put存放,如果key值相等的话会把之前存放的值覆盖。查找、删除、修改通过key值进行操作。
- 石头迷阵Java
Angelyb
javapython服务器
AI结合GUI开发一个石头迷阵的游戏准备环节创建一个模块用于开发石头迷阵游戏,模块名称取名为:stone-maze导入项目需要的资源包到src目录下:主要是一些图片文件,在image文件夹下。创建项目包:com.itheima.1、创建石头迷阵的界面定义主界面类,MainFrame继承JFrame.自定义窗口。初始化窗口大小初始化界面图片初始化界面菜单:系统退出,重启游戏。publicclassM
- day04面向对象高级
Angelyb
java开发语言
1.代码块类的五大成分之一(成员变量,构造器,方法,的代码块,内部类)静态代码块static{}特点:类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次作用:完成类的初始化,对静态变量的初始化publicclassStaticCodeDemo{//静态代码块static{System.out.println("静态代码块");}publicstaticvoidmain(String
- 最短路径算法(Dijkstra算法、Floyd-Warshall算法)
佛渡红尘
计算机应用与算法算法数据结构
最短路径算法是解决图论中节点之间最短路径问题的经典算法。以下是两种常见的最短路径算法:Dijkstra算法和Floyd-Warshall算法。Dijkstra算法Dijkstra算法用于解决单源最短路径问题,即给定一个起点,找到起点到其他所有节点的最短路径。基本思想:初始化距离数组dist[],将起点到自己的距离设为0,到其余各点的距离设为无穷大(表示不可达)。创建一个集合S,用于存放已找到最短路
- 现代前端测试革命:用「Vitest + Playwright」实现零配置全栈测试
前端极客探险家
前端
文章目录一、传统前端测试的五大痛点1.1开发者调研数据(N=500+项目)1.2现代测试方案核心优势二、十分钟搭建企业级测试环境2.1零配置初始化2.2核心配置文件三、六大实战测试场景3.1场景一:组件交互测试3.2场景二:跨浏览器E2E测试四、性能对比:传统方案vs现代方案五、企业级测试架构5.1CI/CD集成方案5.2智能测试报告系统六、调试与优化方案6.1调试技巧6.2性能优化策略导语:某大
- 【后端】【Django】Django DRF API 单元测试完整方案(基于 `TestCase`)
患得患失949
django知识后端系统功能django单元测试sqlite
DjangoDRFAPI单元测试完整方案(基于TestCase)一、方案概述使用django.test.TestCase和rest_framework.test.APIClient进行API单元测试,确保API正确性、权限控制、数据返回格式、业务逻辑等。二、基本步骤使用setUp()初始化测试环境创建API客户端APIClient()预先插入数据库测试数据(如普通用户、管理员用户等)生成Token
- spring+k8s 功能说明
LCY133
spring后端springkubernetesjava
以下是一个结合Kubernetes(k8s)和SpringBoot的完整实例,涵盖应用开发、容器化、部署到Kubernetes集群的全流程。1.创建SpringBoot应用1.1项目初始化使用SpringInitializr生成一个简单的RESTAPI项目:•依赖项:SpringWeb、Actuator(用于健康检查)•示例代码:@RestControllerpublicclassHelloCon
- 函数指针数组深度解析
march_birds
c语言系统架构单片机
一、定义与核心概念函数指针数组是由相同函数签名的函数指针组成的数组,其本质是将多个函数地址集中管理,通过索引实现动态调用。定义语法为:返回值类型(*数组名[数组大小])(参数列表);例如,定义一个包含加减乘除运算的函数指针数组:int(*ops[4])(int,int)={add,sub,mul,div};//静态初始化二、初始化与使用方法静态初始化在定义时直接赋值,适用于已知所有函数的情况:vo
- 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