- Unity AI 技术浅析(三):智能代理(Agents)
爱研究的小牛
AIGC—虚拟现实AIGC—游戏制作unity人工智能游戏引擎AIGC
UnityAI的智能代理(Agents)技术是实现游戏和虚拟现实应用中非玩家角色(NPC)、敌人、盟友等智能行为的核心。通过智能代理,开发者可以为虚拟角色赋予感知、决策和行动的能力,使其能够与环境和其他角色进行复杂的交互。一、智能代理的基本原理智能代理是能够在特定环境中感知、决策和行动的计算实体。在Unity中,智能代理通常用于模拟游戏中的NPC、敌人、盟友等角色。其基本原理包括以下几个方面:1.
- Unity 封装一个依赖于MonoBehaviour的计时器(下) 链式调用
咩咩-哈基米版
Unity案例实战全解析Unity框架学习unity游戏引擎
[Unity]封装一个依赖于MonoBehaviour的计时器(上)-CSDN博客目录1.加入等待间隔时间"永远'执行方法2.修改为支持链式调用实现链式调用管理"链式"调度顺序3.测试即时方法编辑"永久"方法链式调用4.总结1.加入等待间隔时间"永远'执行方法我将这个计时器修改为了支持链式调用,不过我还是发现了一个问题,有些地方的计时器要求是这样子的usingUnityEngine;publicc
- Unity 封装一个依赖于MonoBehaviour的计时器(上) 基本功能
咩咩-哈基米版
Unity案例实战全解析Unity框架学习unity游戏引擎c#
灵感来自下面这本书的协程部分,因此我就自己尝试写了一个我的新书Unity3D游戏开发(第3版)|雨松MOMO程序研究院如果你不知道什么是协程:unity保姆级教程之协同程序_unity协同-CSDN博客一句话概括:协程就是单线程的异步操作,其作用于Unity的主线程1.我写了如下几个功能(只展示无参数):基础校验privateboolCheckCount(intcount){if(countcal
- Unity 使UI始终朝向摄像机
程序员也有头发
Unity开发unityui游戏引擎
一、使用场景在一些情况下我们需要UI朝向摄像机,比如血条。二、遇到的问题首先想到的方法是:transform.forward=cam.transform.forward;但是当相机的X轴旋转超过90度时,UI的X轴和Y轴会发生反转。三、解决方案所以解决方案是使Camera的up方向为向上方向,代码为:usingSystem.Collections;usingSystem.Collections.G
- Unity 扩展方法
程序员也有头发
Unity开发unity游戏引擎游戏程序
比如我们要给transform做还原方法publicstaticclassExtensionMethod{publicstaticvoidResetTransformation(thisTransformtrans){trans.position=Vector3.zero;trans.localRotation=Quaternion.identity;trans.localScale=Vector
- Unity插件-Mirror使用方法(十四)组件介绍(KCP Transport)
一颗橘子宣布成为星球
UnityMirror网络同步框架unity游戏引擎
目录一、插件介绍二、主要组件NetworkManagerNetworkManagerHUDNetworkIdentityNetworkTransformNetworkAnimatorNetworkBehaviourNetworkStartPositionNetworkRoomManagerNetworkRoomPlayerNetworkDiscoveryNetworkAuthenticators三
- Unity中WolrdSpace下的UI展示在上层
程序员也有头发
Unity开发unityui游戏引擎
一、问题描述Unity中Canvas使用WorldSpace布局的UI,想让它不被3d物体遮挡,始终显示在上层。二、解决方案使用shader解决在UI的材质中禁用深度测试(ZTest),强制UI始终渲染在最上层。Shader"Custom/UI_NoDepthTest"{Properties{...}SubShader{Tags{"Queue"="Transparent+1000"//设置高优先级
- 看懂Xlua实现原理——从宏观到微观(1)传递c#对象到Lua
隔壁叔叔uncle
xlualuac#unity
看懂Xlua实现原理——从宏观到微观(1)传递c#对象到Lua我们要解决什么问题?c#对象传递到lua#LowLevelAPI#传递基元类型传递object索引缓存gc元表传递c#函数其他push#HighLevelAPI#《知乎专栏》我们要解决什么问题?为了使基于unity开发的应用在移动平台能够热更新,我们嵌入了Lua虚拟机,将需要热更新的逻辑用lua实现。c#通过P/Invoke和lua交互
- Unity打包程序嵌入WinForm或者WPF(2) 问题
llhswwha
Unity
嵌入方式两种,官方的-parentHandle和我的WinAPI嵌入。问题1.主程序卡死[-parentHandle]:主程序打开3D后,切换到其他程序,再切换回来,卡死。[WinAPI]:主程序打开3D后,过一段时间卡死。其实这里的打开的Unity程序也算是其他程序了。这个问题结果发现是主程序其他部分导致的。问题2.嵌入Unity的控件隐藏后,GPU使用率达到99%。所谓的Unity控件隐藏是指
- 五分钟快速掌握windows深度学习环境配置:Anaconda、PyCharm、Pytorch、jupyter notebook
芝帕先生
深度学习windowspycharmpythoncondapip人工智能
目录前言下载并安装Anaconda下载途径安装步骤下载并安装PyCharm安装pytorch安装jupyternotebook前言新手五分钟掌握windows深度学习环境配置:Anaconda、PyCharm、Pytorch配置的时候遇到了很多问题,总结了一下,可以按这个流程无脑配置。通过本流程下载的版本Anaconda2023.03PyCharmCommunity2023.1.3Pytorch2
- 使用Unity中Microphone类进行用户自由时长音频录制
沉醉东风
Unity3dunity录音
使用Unity中Microphone类进行用户自由时长音频录制主录音脚本AudioRecord.csmaxClipLength:音频最大长度,真正录音时长不要超过这个长度,或者把maxClipLength设置的无限大也可以usingUnityEngine;usingUnityEngine.UI;usingSystem.Collections;usingSystem;usingSystem.IO;u
- Unity3D 游戏黑屏问题解决方法详解
Thomas_YXQ
游戏数码相机Unity
前言Unity3D作为一款广泛使用的游戏开发引擎,在开发过程中难免会遇到各种问题,其中黑屏问题尤为常见且令人头疼。黑屏问题可能由多种原因引起,包括但不限于资源加载问题、脚本错误、硬件或驱动问题、渲染设置错误等。本文将详细探讨Unity3D游戏黑屏问题的可能原因及相应的解决方法,并给出技术详解及代码实现。对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀!一、可能原因分析1.资
- Unity3D 批处理与Draw Call减少(Batching & Reducing Draw Calls)
Thomas_YXQ
Unity3DUnity游戏开发优化性能优化
前言在Unity3D中,批处理(Batching)是优化渲染性能的核心手段,主要通过减少DrawCall数量来降低CPU与GPU之间的通信开销。以下是详细的优化策略与实践方法:对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!一、DrawCall的基本概念DrawCall是CPU向GPU发起的一次渲染指令,每次调用都会触发GPU绘制一个物体。DrawCall过多会导致C
- 前部分知识复习01
太妃糖耶
unity
一、关于变体1.#pragmamulti_compileA2.#pragmashader_featureAUnity提供了两个关键字来定义宏multi_compile和shader_feature,Unity会根据宏定义来生成不同种类的shader,这些不同种类的shader就是所谓的变体。multi_compile的特点如下:1、会组合爆炸#pragmamulti_compileAB#pragm
- 【零基础入门unity游戏开发——进阶篇】Unity Microphone类处理麦克风相关信息,录制音频并实时处理或保存录制的音频数据
向宇it
#unity音视频c#游戏引擎开发语言编辑器
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把【零基础入门unity游戏开发】分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unit
- Unity3D 着色器优化(Shader Optimization)
Thomas_YXQ
着色器Unity3D游戏开发Shader
前言Unity3D着色器(Shader)优化是提升渲染性能的关键环节,尤其是在移动设备或复杂场景中。以下是系统的优化策略和实践建议:对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!1.减少计算复杂度简化数学运算:优先使用mad(乘加)指令代替单独的乘法和加法。避免复杂函数(如sin,pow,exp),改用近似计算或查值纹理(LookupTexture)。利用向量化操作
- centos 7下安装mongodb
金麟十三少
MongoDBcentos7下安装mongodb
1、访问mongodbhttps://www.mongodb.com/download-center/community2、我选择版本3.2.22下载解压,并进入/usr/local/mongodb/配置环境变量source/etc/profile在/usr/local/mongodb/bin/新建mongodb.conf,内容是#数据文件存放目录dbpath=/usr/local/mongodb
- Windows编译tiny-cuda-nn时出现fatal error C1083: “crtdefs.h”: No such file or directory
龙雪zzZ
windowstiny-cuda-nn
首先确保安装了VisualStudio其次有可能是因为安装的VS设置的编译项默认为x86,与当前系统的CUDA的位数不一致。如果你的电脑为x64,可以尝试先运行以下命令(路径自行更改)再进行编译:"YOUR_DIR/MicrosoftVisualStudio/20xx/Community/VC/Auxiliary/Build/vcvarsall.bat"x64然后运行编译命令,如使用pip安装:p
- 实现客户端的网络不影响主线程且随时与服务器通信
DanmF--
Unity网络开发基础unity网络tcp/ip网络协议
usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;usingSystem.Threading;usingUnityEngine;//网络管理器(单例模式)publicclassNetMgr:MonoBehaviour{pri
- Unity 导出 Terrain地形为OBJ到3DMAX
羽阿呆
Unityunity游戏引擎
地形不是网格模型,所以使用其他插件导出fbx在3dmax里面是识别不了的,没有办法使用,那么,该如何导出地形作为模型使用呢,可以借助unity插件导出,主要代码如下:usingSystem.IO;usingSystem.Text;usingUnityEditor;usingUnityEngine;usingSystem;enumSaveFormat{Triangles,Quads}enumSave
- Unity数据持久化—Json存档
羽阿呆
Unityunityjson游戏引擎
项目需求为:1.实现存档列表,显示存档截图,可以查看之前保存的所有存档2.点击存档直接加载到场景首先,定义两个类,用于声明存档列表和存档所需要的List[System.Serializable]publicclassSaveData{//存储目标物的位置和朝向publicListtargetPosition=newList();publicListtargetRotation=newList();
- Unity 数据持久化——persistentDataPath储存路径
羽阿呆
Unityunity游戏引擎
Unity中:StreamingAssets的文件夹,特点是:只能读,不能写.persistentDataPath可读可写(但是,此文件夹在Editor阶段没有,手机安装App后自动生成)可以将一些必需的文件先放在StreamingAssets,在App安装后Copy到persistentDataPath文件夹publicvoidcopy(stringfileName="test.txt"){//
- 【Unity】mesh绘制简单图形
Sitarrrr
Unity3Dunity游戏引擎
应用使用mesh绘制一个彩虹色三角形、四边形、多四边形瓦片控制mesh移动,实现游戏的对象的身体关节的动作步骤mesh(网格类)Meshmesh=newMesh();vertices:顶点数组,包括mesh中的所有顶点,如三角形三个顶点//三角形三个顶点Vector3[]vertices=newVector3[3];vertices[0]=newVector3(0,0);vertices[1]=n
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(51)-系统升级
weixin_34245749
测试javascript游戏ViewUI
系统很久没有更新内容了,期待已久的更新在今天发布了,最近花了2个月的时间每天一点点,从原有系统MVC4+EF5+UNITY2.X+Quartz2.0+easyui1.3.4无缝接入MVC5+EF6+Unity4.x+Quartz2.3+easyui1.4.3.并以easyui1.4.3的gray皮肤为基础,升级10个扁平化皮肤皮肤查看地址更新的主要目的:新的MVC5特性和更好的性能记录一下升级过程
- 《Unity开发实战》——1.5节把Unity中创建的资源另存为Prefab
weixin_33859504
游戏
本节书摘来自华章社区《Unity开发实战》一书中的第1章,第1.5节把Unity中创建的资源另存为Prefab,作者(爱尔兰)MattSmith(巴西)ChicoQueiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看1.5把Unity中创建的资源另存为Prefab在Unity中很容易就能创建基础几何对象,本节中,使用Unity的资源创建一个游戏对象(GameObject)然后将其在项目
- 模型烘焙后保存mesh数据生成新的预制体
学习是一种状态
unityshaderfragmentvertexfragmentunityunityshader片段顶点着色器vertex
模型烘焙后保存mesh数据生成新的预制体unity版本5.4.11、C#代码控制模型烘焙后生成新的材质球保存mesh数据,并关联到新生成的预制体。SetUVData.cs用于挂在游戏物体上,设置你要赋值的数据,代码如下:usingUnityEngine;usingSystem.Collections;usingSystem.Collections.Generic;[ExecuteInEditMod
- unity 当中UI的通过鼠标滚轮来进行缩放,并且约束放大缩小的范围
小呆子lazy
#摄像机unity3d
unity当中UI的通过鼠标滚轮来进行缩放,并且约束放大缩小的范围```usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.EventSystems;usingUnityEngine.UI;publicclassUIScaleContor:Mono
- 将自制网格制作为预制体
亿洋
脚本unity脚本
最近遇到一个问题,将一个网格变形后拖到资源栏中,准备做成预制体,但是无法成功。原因应该是未实例化,所以找到了一个办法来解决这个问题。直接上代码:usingUnityEngine;usingUnityEditor;publicclassMeshTest:Editor{[MenuItem("Custom/Export/CreateMesh")]//在任务栏上方设置快捷方式,注意必须是static,且不
- Unity--使用Line Renderer实现画图划线效果
liang_704959721
unity基础unityc#游戏引擎
usingUnityEngine;publicclassDraw:MonoBehaviour{publicGameObjectlinePrefab;//线条渲染器privateLineRendererline;//顶点下标privateinti;publicGameObjectobj_Parent;voidUpdate(){//鼠标左键按下瞬间if(Input.GetMouseButtonDown
- unity 查看adb日志_unity通过android adb查看真机日志
weixin_39697096
unity查看adb日志
前几天跑某大公司面试,问我会不会在android真机调试的时候直接输出到控制台,当时有点懵逼,居然不知道控制台是什么东西了,居然理解成了输出到eclipse...我觉得程序没有通过eclipse打包,怎么可能输出到它里面去呢...等面试完了,回公司的路上才回过神来,那个黑框框不就是控制台么!!!adb是androidSDK的一个工具,位置就在sdk目录下的platform-tools文件夹下。通过
- 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