- Flink在指定时间窗口内统计均值,超过阈值后报警
小的~~
flink均值算法大数据
1、需求统计物联网设备收集上来的温湿度数据,如果5分钟内的均值超过阈值(30摄氏度)则发出告警消息,要求时间窗口和阈值可在管理后台随时修改,实时生效(完成当前窗口后下一个窗口使用最新配置)。物联网设备的数据从kafka中读取,配置数据从mysql中读取,有个管理后台可以调整窗口和阈值大小。2、思路使用flink的双流join,配置数据使用广播流,设备数据使用普通流。3、实现代码packagecu.
- Flink SQL 优化实战 - 维表 JOIN 优化
腾讯云大数据
大数据数据库flinksql
作者:龙逸尘,腾讯CSIG高级工程师背景介绍维表(DimensionTable)是来自数仓建模的概念。在数仓模型中,事实表(FactTable)是指存储有事实记录的表,如系统日志、销售记录等,而维表是与事实表相对应的一种表,它保存了事实表中指定属性的相关详细信息,可以跟事实表做关联;相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。在实际生产中,我们经常会有这样的需求,以原始数据流
- 阿里云RDS到亚马逊云RDS的实时数据同步方案详解
ivwdcwso
运维阿里云云计算awskda数据同步
1.需求背景在当今的多云环境中,企业经常需要在不同云平台之间同步数据。本文将详细介绍如何实现从阿里云RDSMySQL数据库到亚马逊云RDSMySQL数据库的实时数据同步。这种同步对于数据备份、跨区域数据访问、数据分析等场景都非常有用。2.方案概述我们将使用AWSKinesisDataAnalytics(KDA)作为核心组件来实现这个实时同步方案。KDA基于ApacheFlink,支持使用SQL或J
- Flink 安装阿里云docker compose部署及相关组件
vellerzheng
部署运维flinkdocker大数据
Flink安装脚本文件version:"2.2"services:jobmanager:image:flink:1.15.2-java11expose:-"6123"ports:-"8081:8081"command:jobmanagervolumes:-/home:/homeenvironment:-JOB_MANAGER_RPC_ADDRESS=jobmanagerprivileged:tru
- 使用Docker搭建Flink集群
O_1CxH
Flink大数据Kafka大数据dockerflink容器
目录使用Docker搭建Flink集群docker-compose一键搭建步骤附录参考资料使用Docker搭建Flink集群在学习大数据框架的时候,需要一个真实的环境。我们知道,像spark、flink这些计算框架都有多种运行模式:在本地使用多线程模拟集群真正的分布式集群如果直接在IDE(Intellj)里面编译和运行写好的程序,实际上是用的前一种运行模式;如果想尝试真正的生产环境中任务的提交和管
- Spark 和 Flink
信徒_
sparkflink大数据
Spark和Flink都是目前流行的大数据处理引擎,但它们在架构设计、应用场景、性能和生态方面有较大区别。以下是详细对比:1.架构与核心概念方面ApacheSparkApacheFlink计算模型微批(Micro-Batch)为主,但支持结构化流(StructuredStreaming)原生流(TrueStreaming),基于事件驱动处理方式以RDD、DataFrame/Dataset作为核心抽
- Flink-k8s弹性扩缩容原理和部署步骤
spring208208
flinkkubernetes贪心算法
背景和现状目前行内提交flink作业采用Nativekubernetes模式,提交作业时会指定并行度和taskmanager使用的内存及cpu数量。这种情况下会导致在作业运行高峰可能存在资源不足问题运行低峰又会造成资源浪费,这种粗放的使用资源的模式在实时计算业务量不多的时候还可以勉强接受,而随着实时计算业务的增多,则会造成大量的资源浪费和性能瓶颈。为了使存储和计算资源得到更加合理有效的使用,能跟据
- 20250124 Flink 增量聚合 vs 全量聚合
靈臺清明
Flinkflink
1.增量聚合vs全量聚合(1)增量聚合(ReduceFunction/AggregateFunction)工作方式:逐步计算:每一条数据到达窗口时,立即与当前聚合结果结合,生成新的中间结果。仅保存中间状态:内存中只保留当前的聚合值(如累加和、最大值等),不保存原始数据。触发窗口计算时:直接输出最终的聚合结果,无需遍历所有数据。示例:计算窗口内数字的和DataStreamnumbers=...;nu
- Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
大数据flink阿里云数据分析
摘要:本文整理自FlinkForwardAsia2024大会中阿里云DataWorks数据集成团队陈吉通的分享,主要分享FlinkCDC在阿里云DataWorks数据集成入湖场景的应用实践。内容分为以下四个部分:1.阿里云DataWorks数据集成介绍2.DataWorks数据集成入湖解决方案的架构和原理3.DataWorks数据集成入湖场景的产品化案例分享4.未来规划一、阿里云DataWorks
- Flink-提交job
笨鸟先-森
大数据flink
目录一、Flink流处理扩展及说明二、Flink部署三、Standalone模式四、在命令行提交job:五、在网页中提交flinkjob一、Flink流处理扩展及说明涉及:自定义线程优先级=socket流中读取数据并行度只能是11、特定的算子设定了并行度最优先2、算子没有设定并行度就是用整体运行环境设置的并行度3、环境的并行度没有设置就使用提交时候提交参数设置的并行度4、都没有设置就遵循flink
- Flink 实践教程-入门(10):Python作业的使用
腾讯云大数据
数据库大数据javapython数据分析
作者:腾讯云流计算Oceanus团队流计算Oceanus简介流计算Oceanus是大数据产品生态体系的实时化分析利器,是基于ApacheFlink构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算Oceanus以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。教程链接:Flink实践教程-入门(10):Python作业的使用-云+社区-
- pyflink作业提交的踩坑过程,看完少走两个星期弯路
Li_yi_chao
大数据
flink在努力地将Python生态和大数据生态融合,但目前的版本还不够成熟,尤其是在官方对python现有资料有限的情况下,用户想要使用python完成一个flinkjob并提交到flink平台上,还是有很多雷需要踩的。以下对pyflink环节问题,pythonjob编写到提交做了总结,可减少不必要的弯路。一、部署环境JDK1.8+&Python3.5+(3.7.6)&apache-flink1
- Paimon实战 -- paimon原理解析
阿华田512
Paimon学习必读系列paimon数据湖paimon介绍flink写入
一.简介ApachePaimon原名FlinkTableStore,2022年1月在ApacheFlink社区从零开始研发,Flink社区希望能够将Flink的Streaming实时计算能力和Lakehouse新架构优势进一步结合,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。二.基本概念1、快照(Snapshot)快照捕获表在某个时间点的状态。用户可以通过最新的快照访
- paimon实战 --核心原理和Flink应用进阶
阿华田512
Paimon学习必读系列Flink学习必读系列flink大数据flink读写paimon数据湖
简介Flink社区希望能够将Flink的Streaming实时计算能力和Lakehouse新架构优势进一步结合,推出新一代的StreamingLakehouse技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。Flink社区内部孵化了FlinkTableStore(简称FTS)子项目,一个真正面向Streaming以及Realtime的数据湖存储项目。2023年3月1
- 【Apache Paimon】-- 16 -- 利用 paimon-flink-action 同步 kafka 数据到 hive paimon 表中
oo寻梦in记
ApachePaimonapacheflinkkafkaapachepaimonpaimon
目录引言CDC技术概述2.1什么是CDC2.2CDC的应用场景Kafka作为CDC数据源的原理与优势3.1Kafka的基本架构3.2Kafka在CDC中的角色
- flink实时集成利器 - apache seatunnel - 核心架构详解
24k小善
flinkapache架构
SeaTunnel(原名Waterdrop)是一个分布式、高性能、易扩展的数据集成平台,专注于大数据领域的数据同步、数据迁移和数据转换。它支持多种数据源和数据目标,并可以与ApacheFlink、Spark等计算引擎集成。以下是SeaTunnel的核心架构详解:SeaTunnel核心架构SeaTunnel的架构设计分为以下几个核心模块:1.数据源(Source)功能:负责从外部系统读取数据。支持的
- Flink怎么保证Exactly - Once 语义
我明天再来学Web渗透
后端技术总结flink大数据开源开发语言
Exactly-Once语义是消息处理领域中的一种严格数据处理语义,指每条数据都只会被精确消费和处理一次,既不会丢失,也不会重复。以下从消息传递语义对比、实现方式、应用场景等方面详细介绍:与其他消息传递语义对比在消息传递中,常见三种语义:最多一次(at-most-once):消息可能丢失,但绝不会重复。至少一次(at-least-once):消息不会丢失,但可能重复。精确一次(exactly-on
- Flink内存配置和优化
Leo_Hu666
flink大数据
在ApacheFlink1.18的Standalone集群中,内存设置是一个关键配置,它直接影响集群的性能和稳定性。Flink的内存配置主要包括JobManager和TaskManager的内存分配。以下是如何在Standalone模式下配置内存的详细说明。JobManager内存配置JobManager是Flink集群的主节点,负责协调任务调度和资源管理。它的内存配置可以通过以下参数进行调整:配
- Flink入门-通过DataStream Api实现消费欺诈检测
似水_逆行
Flinkflink大数据
1信用卡消费欺诈信用卡消费欺诈是指在信用卡的使用过程中,通过不正当手段获取或使用信用卡资金,侵犯他人或银行的财产权益的行为。这种行为可能包括但不限于盗刷、伪造信用卡、冒用他人信用卡、恶意透支等2模拟场景我们模拟不同账户的信用卡消费记录,通过分析实时的消费记录,针对常见的消费欺诈进行检测,检测出来的欺诈行为进行告警。3核心流程与代码1)通过TransactionSource构建消费记录,主要包含ac
- Flink-DataStream快速上手
code@fzk
大数据flink大数据java
文章目录1.安装部署安装2.执行任务Standalone模式启动/停止执行任务Yarn模式Session-cluster模式启动yarn-session执行任务Per-Job-Cluster模式3.执行环境EnvironmentgetExecutionEnvironment(常用)createLocalEnvironmentcreateRemoteEnvironmentSource、SinkTra
- Flink之DataStream API 概述
小虎牙_43437171
flinkflink大数据java
DataStreamAPI概述前言一、DataStreamAPI应用实例DataStream程序主要包含3部分:1、StreamExecutionEnvironment初始化:该部分主要创建和初始化StreamExecutionEnvironment,提供通过DataStreamAPI构建Flink作业需要的执行环境,包括设定ExecutionConfig、CheckpointConfig等配置信
- Flink KafkaConsumer offset是如何提交的
红烛暗盗梦
flink大数据
一、fllink内部配置client.id.prefix,指定用于KafkaConsumer的客户端ID前缀partition.discovery.interval.ms,定义KafkaSource检查新分区的时间间隔。请参阅下面的动态分区检查一节register.consumer.metrics指定是否在Flink中注册KafkaConsumer的指标commit.offsets.on.chec
- 软件的生命周期有哪些阶段?
bjwuzh
软件测试面试题单元测试测试用例ab测试测试覆盖率模块测试功能测试安全性测试
回答示例:“软件生命周期通常分为六个核心阶段,每个阶段对应不同的目标和产出物:需求分析:目标:明确用户需求和业务目标。活动:与客户/产品经理沟通,输出需求规格说明书(SRS)。示例:在电商项目中,通过用户故事梳理出“秒杀功能需支持5000并发用户”。系统设计:目标:制定技术方案和架构设计。活动:设计数据库模型、接口定义、技术选型(如微服务架构)。示例:选择Redis缓存应对高并发场景,并设计熔断机
- Java分布式流处理,flink+kafka实现电商网站个性化商品推荐系统
图苑
分布式javaflink
文章目录戳底部名片,一起变现技术栈选择设计实现思路实现步骤及示例代码1.数据采集2.数据预处理3.特征工程4.模型训练5.结果输出6.前端展示戳底部名片,一起变现在现代电商环境中,用户每天都会浏览大量商品页面,而这些行为数据中蕴藏着丰富的信息。通过分析用户的浏览历史、购买记录以及对特定商品的兴趣程度,我们可以为用户提供更加个性化的商品推荐,从而提升用户体验和转化率。为了实现实时的个性化推荐,我们需
- Flink 内存模型各部分大小计算公式
bluedraam_pp
flink大数据
Flink的运行平台如果Flink是运行在yarn或者standalone模式的话,其实都是运行在JVM的基础上的,所以首先Flink组件运行所需要给JVM本身要耗费的内存大小。无论是JobManager或者TaskManager,他们JVM内存的大小都是一样的,都是由JVMmetaspace和JVMoverhead组成的。metaspace元空间的部分,保存JVM中class类等区域,然后JVM
- 5 Flink的时间和窗口操作
抛砖者
fink相关flink服务器window操作Flink时间语义
1Flink的时间语义和Wartermark介绍1.1时间语义Flink中窗口划分的时候是以时间作为划分标志,在Flink中对于时间有三种不同的语义,分别如下event-time:事件产生时间,也就是数据本身带的时间ingestion-time:事件摄入时间,是指数据到达Flink程序时当前的系统时间也就是被source模块处理的时间process-time:事件处理时间,是指数据被对应算子处理的
- [实时计算flink]复杂事件处理(CEP)语句
soso1968
flink大数据
本文为您介绍实时计算Flink全托管的复杂事件处理(CEP)语句的详情。背景信息相较于ApacheFlink的CEPSQL,实时计算Flink版在其基础上进行了增强。例如,支持输出超时匹配、支持松散连接(followedBy)、支持指定事件之间的连续性等。关于ApacheFlinkCEPSQL的基本能力,详情请参见PatternRecognition。使用限制仅实时计算引擎vvr-6.0.2-fl
- 【Flink源码分析】6. Flink1.19源码分析-Flink底层的异步通信
ayt007
Flink源码分析Flinkflink大数据
6.1PekkoInvocationHandler类仅摘取了FlinkRPC进行通信的时候一段代码,也是异步通信的典型代码。//executeanasynchronouscallfinalCompletableFutureresultFuture=//1.ask发起rpc调用的方法,它返回一个CompletableFuture,表示rpc调用的异步结果ask(rpcInvocation,futur
- flink判断两个事件之间有没有超时(不使用CEP)
单线程的Daniel
flink大数据
1.为啥不使用cep呢,cep的超时时间设置不好配置化,无法满足扩展要求2.超时怎么界定。A事件发生后,过了N时间,还没有收到B事件,算超时。代码如下:importcom.alibaba.fastjson.JSONObject;importlombok.extern.slf4j.Slf4j;importorg.apache.flink.api.common.state.ValueState;imp
- 初识Flink
四维大脑
Flinkflink
Flink是什么Flink是Apache基金会旗下的一个开源大数据处理框架。目前,Flink已经成为各大公司大数据实时处理的发力重点,特别是国内以阿里为代表的一众互联网大厂都在全力投入,为Flink社区贡献了大量源码。如今Flink已被很多人认为是大数据实时处理的方向和未来,许多公司也都在招聘和储备掌握Flink技术的人才。Flink的主要应用场景,就是处理大规模的数据流。那为什么一定要用Flin
- 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