- RabbitMQ 实验消费原始队列消息, 拒绝(reject)投递死信交换机过程
熊明才
rabbitmq分布式
如果你想通过RabbitMQ的死信队列功能实现消费者拒绝消息投递到死信交换机的行为,你可以按照以下步骤操作:创建原始队列,并将其绑定到一个交换机上:exportRABBITMQ_SERVER=127.0.0.1exportRABBITMQ_PORT=5672exportRABBITMQ_USER=mingcaiexportRABBITMQ_PASSWORD=passwordrabbitmqadmi
- RabbitMQ的事务机制
一只小小攻城狮
RabbitMQrabbitmq分布式
想要保证发送者一定能把消息发送给RabbitMQ,一种是通过Confirm机制,另一种就是通过事务机制。RabbitMQ的事务机制,允许生产者将一组操作打包成一个原子事务单元,要么全部执行成功,要么全部失败。事务提供了一种确保消息完整性的方法,但需要谨慎使用,因为他们对性能有一定的影响。RabbitMQ是基于AMQP协议实现的,RabbitMQ中,事务是通过在通道(Channel)上启用的,与事务
- Kafka、ActiveMQ、RabbitMQ 及 RocketMQ区别比较
木西爷
kafkaactivemqrabbitmq阿里云rocketmq
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。它可以实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。消息队列在电商系统、消息通讯、日志收集等应用中扮演着关键作用,以阿里为例,其研发的消息队列(RocketMQ)在历次天猫“双十一”活动中支撑了万亿级的数据洪峰,为大规模交易提供了有力保障。常见消息中间件对比特性ActiveMQRab
- RabbitMQ的安装
白泽27
rabbitmq分布式
典型应用场景:异步处理。把消息放入消息中间件中,等到需要的时候再去处理。流量削峰。例如秒杀活动,在短时间内访问量急剧增加,使用消息队列,当消息队列满了就拒绝响应,跳转到错误页面,这样就可以使得系统不会因为超负载而崩溃Linux下安装#拉取镜像dockerpullrabbitmq:3.8-management#创建容器启动dockerrun-d--restart=always-p5672:5672-
- MQ横向对比:RocketMQ、Kafka、RabbitMQ、ActiveMQ、ZeroMQ
namelessmyth
Java框架MQrocketmqkafkarabbitmqactivemq
前言本文将从多个角度全方位对比目前比较常用的几个MQ:RocketMQKafkaRabbitMQActiveMQZeroMQ下文单独说明。表格对比特性RocketMQKafkaRabbitMQActiveMQ单机吞吐量10万级,支撑高吞吐10万级以上,甚至有文献称,可以达到单机百万级TPS。万级,同ActiveMQ万级,相对其他MQ较低。topic数量对吞吐量的影响topic可以达到几百/几千的级
- RabbitMQ学习笔记:节点名称详解、rabbitmq-server、及rabbitmq-env.conf
Bejpse
javajava后端
rabbitmq-serverrabbitmq-server启动一个RabbitMQ节点1.rabbitmq-server在前端启动一个RabbitMQ节点,示例如下:[root@rabbit3rabbitmq]#rabbitmq-server####RabbitMQ3.8.1##############Copyright(c)2007-2019PivotalSoftware,Inc.######
- RabbitMq高级特性-2
letg
springamqprabbitmq分布式
一、死信队列死信队列,英文缩写:DLX。DeadLetterExchange(死信交换机),当消息成为Deadmessage后,可以被重新发送到另一个交换机,这个交换机就是DLX。1.1消息在什么情况下会成为死信?1.队列消息长度到达限制;⒉消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;3.原队列存在消息过期设置,消息到
- rabbitmq发送json消息
陌以然I
rabbitmqjava分布式
rabbitmq发送json格式消息packageorg.secp.rabbitmq.exchange;importorg.springframework.amqp.core.Binding;importorg.springframework.amqp.core.BindingBuilder;importorg.springframework.amqp.core.Queue;importorg.s
- 大数据开发(Kafka面试真题-卷一)
Key-Key
大数据kafka面试
大数据开发(Kafka面试真题)1、请解释以下ApacheKafka是什么?它在大数据系统中的角色是什么?2、请解释以下Kafka的工作原理和它与传统消息队列服务的不同之处?3、解释以下ApacheKafka的作用以及它与常见消息队列系统(如RabbitMQ)之间的区别?4、如何使用ApacheKafka来实现实时数据流处理?5、Flinkcheckpoint和Kafkaoffset的关联是什么?
- Yii实现RabbitMQ队列
huaweichenai
rabbitmq分布式phpyii
一:拓展安装composerrequireyiisoft/yii2-queuecomposerrequireenqueue/amqp-lib2:RabbitMQ队列配置在配置文件中配置RabbitMQ队列'components'=>[...'queue'=>['class'=>yii\queue\amqp_interop\Queue::class,'host'=>'192.168.6.88',//
- python使用rabbitmq发送消息和接收消息数据
美美打不死
pythonrabbitmq
发送消息importpika#设置RabbitMQ连接参数(更改账号密码)credentials=pika.PlainCredentials('username','password')#更改为自己的服务器地址parameters=pika.ConnectionParameters('192.168.0.157',5672,'/',credentials)#建立到RabbitMQ的连接connec
- RabbitMQ 进阶- 阿里云服务器部署RabbitMQ集群
Java北边
一、为什么要搭建RabbitMQ集群?未部署集群的缺点如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非持久化message存储于非持久化queue中的时候)。可以将所有message都设置为持久化,并且使用持久化的queue,但是这样仍然无法避免由于缓存导致的问题:因为message在发送之后和被写入磁盘
- RabbitMQ如何实现消费端限流
思静语
消息队列MQrabbitmq分布式
文章目录概述RabbitMQ中实现消费端限流的步骤概述在RabbitMQ中,可以通过消费者端限流(ConsumerPrefetch)来控制消费端处理消息的速度,以避免消费端处理能力不足或处理过慢而导致消息堆积。消费者端限流的主要目的是控制消费者每次从RabbitMQ中获取的消息数量,从而实现消息处理的流量控制。RabbitMQ提供了一种QOS(服务质量保证)功能,即在非自动确认消息的前提下,如果一
- RabbitMQ应用之延迟队列
sssunday丶
场景举例:订单生单成功后,30分钟未支付自动取消消息的ttl队列设置:x-expires:队列ttl,当队列未使用(没有任何消费者、没有被重新声明、过期时间段内未调用过Basic.Get命令)时,会被删除。服务器重启后,持久化的队列过期时间会重新计算,x-expires单位为毫秒,不能设置为0x-message-ttl:队列中消息的ttl发布消息设置:expiration:单条消息ttl(若x-m
- RabbitMQ、kafaka、rocketmq等消息队列MQ消息堆积如何解决
思静语
消息队列MQrabbitmqrocketmq分布式kafka
文章目录概述解决方案消息堆积如何处理如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?概述1.产生背景:生产者投递消息的速率与我们消费者消费的速率完全不匹配。2.生产者投递消息的速率>消费者消费的速率导致我们消息会堆积在我们mq服务器端中,没有及时的被消费者消费所以就会产生消息堆积的问题3.注意的是:rabbitmq消费者我们的消息消费如果成功
- rabbitmq2
明日春风
docker容器运维
生产者去与我们的rabbitMQserver去建立连接。建立完连接之后,他会把消息通过通道的形式,在连接里面,是以通道去传递我们的消息。当然在RabbitMQ中给咱们提供了很多种这种工作模式。不一定说上来非要把消息放到交换机中,它也可以没有交换机直接去放入我们的Quene。当然我们之后也可以把消息放入交换机中。具体我们要不要把消息放到交换机中,还要取决于我们所使用的消息模型是什么样的。
- Docker安装mysql、redis、rabbitmq
星三火
dockermysqlredis
【docker安装mysql】dockerpullmysql:latestdockerimagesdockerrun-p3306:3306--namemysql--restart=always--privileged=true\-v/usr/local/mysql/log:/var/log/mysql\-v/usr/local/mysql/data:/var/lib/mysql\-v/usr/lo
- RabbitMq
wayzinx
java中间件
五种工作模式1.工作队列(workqueues):工作队列与入门程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。应用场景:对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。测试:1、使用入门程序,启动多个消费者。2、生产者发送多个消息。结果:1、一条消息只会被一个消费者接收;2、rabbit采用轮询的方式将消息是平均发送给消费者的;3、消费者在处理完某条消息后,才会收到
- 【spring boot结合rabbit mq 到点执行,可精确到秒】
ljh_learn_from_base
javaspringbootspringbootjava后端java-rabbitmq
【springboot结合rabbitmq到点执行,可精确到秒】创建队列枚举创建自定义的队列消息pojo创建队列和延迟队列发送mq消息接收mq消息DateTimeUtil测试注意点创建队列枚举publicenumQueueEnum{/***各种异步消息频道*/TEST(1,"test","队列频道"),DELAY_TEST(2,"delay_test","延迟延迟频道"),;privateInte
- RabbitMQ在订单服务中的使用【沙盘演示】
IT小辉同学
基础扎实技巧性工具栏rabbitmq分布式
RabbitMQ在订单服务中的使用【沙盘演示】“世界上有一种人,和你在一起的时候,总是千万次嘱咐要多穿件衣服,要注意安全,你觉得很烦,却也觉得很温暖。”——钱钟书《围城》概述当处理实际的订单业务时,通常会涉及到多个步骤和不同的系统。以下是一个理论上的复杂订单处理流程,用于演示RabbitMQ如何在不同步骤之间协调和传递消息。在这个场景中,我们考虑了订单创建、库存管理、支付处理和通知服务等步骤。订单
- centos7安装rabbitmq
SangBigYe
linuxrabbitmq分布式
执行命令yum-yinstallepel-releaseyumupdateyum-yinstallrabbitmq-server启用web插件rabbitmq-pluginsenablerabbitmq_management启动systemctlstartrabbitmq-server开机启动systemctlenablerabbitmq-serverweb访问http://127.0.0.1:1
- RabbitMQ——消息应答和持久化
万里顾—程
RabbitMQrabbitmq
文章目录RabbitMQ——消息应答和持久化1、消息应答1.1、概念1.2、手动应答示例2、持久化RabbitMQ——消息应答和持久化1、消息应答1.1、概念概念消息应答机制是指消费者在消费消息后向RabbitMQ确认(acknowledge)已经成功处理了消息。这个机制有助于确保消息在被消费者处理后被正确地从队列中移除,从而防止消息的丢失。两种消息应答机制1、自动应答(AutoAcknowled
- RabbitMQ开启TLS支持,解决AMQP明文身份验证漏洞
创意程序员
rabbitmq
随着网络通信安全性的日益重要,我们不难发现,在企业级应用中,数据传输的安全防护措施已经成为不可或缺的一环。近期,不少使用RabbitMQ的开发团队收到了关于“远程主机允许明文身份验证”的漏洞警告。为确保敏感信息的安全传递,启用TLS(TransportLayerSecurity)支持成为了关键的解决方案。本文将详细介绍如何在RabbitMQ中启用TLS加密,以及在SpringBoot应用中配置TL
- docker-compose部署rabbitmq配置交换机和队列持久化
菜鸟初啼
dockerjava-rabbitmqrabbitmqdocker
version:"3"services:rabbitmq:container_name:rabbitmqimage:rabbitmq:3.9.24-managementhostname:rabbitmqenvironment:-RABBITMQ_DEFAULT_USER=admin-RABBITMQ_DEFAULT_PASS=111111volumes:-./rabbit/data:/var/li
- 本地模拟发送、接收RabbitMQ数据
tag心动
rabbitmq分布式mq模拟发送接收消息rabbitmq模拟测试
文章目录前言一、相关文章二、相关代码1.模拟的Channel类2.接收消息3.模拟推送MQ数据前言日常开发中,当线上RabbitMQ坏境还没准备好时,可在本地模拟发送、接收消息一、相关文章Docker安装RabbitMQ【SpringCloud】整合RabbitMQ六大模式应用(入门到精通)SpringRabbitMQ配置多个虚拟主机(vhost)二、相关代码
- Docker安装RabbitMQ
tag心动
Docker容器rabbitmq自动化中间件容器docker
文章目录什么是RabbitMQ?1、拉取rabbitmq官方库2、启动2.1.创建挂载目录2.2.启动rabbitmq2.3.启用插件3、访问RabbitMQ后台管理4、开启所有功能微服务架构入门到精通什么是RabbitMQ?RabbitMQ是实现高级消息队列协议(AMQP)的开源消息代理软件(有时称为面向消息的中间件)。RabbitMQ服务器是用Erlang编程语言编写的,并建立在OpenTel
- 【初始RabbitMQ】了解和安装RabbitMQ
lose_rose777
消息队列rabbitmq分布式
RabbitMQ的概念RabbitMQ是一个消息中间件:他可以接受并转发消息。例如你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。RabbitMQ与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据四大核心概念生产者:产生数据发送消息的程序交换机:交换机是R
- Rabbitmq入门与应用(一)-rabbitmq安装(docker版)
自信人间三百年
rabbitmqrabbitmqdockerrubyjava
@Rabbitmq入门与应用-rabbitmq安装(docker版)RabbitMQ简介什么是RabbitMQ?RabbitMQisamessagebroker:itacceptsandforwardsmessages.Youcanthinkaboutitasapostoffice:whenyouputthemailthatyouwantpostinginapostbox,youcanbesure
- 详解SpringCloud中RabbitMQ消息队列原理及配置
珍奇国英
一、MQ用途1、同步变异步消息场景:用户下单完成后,发送邮件和短信通知。运用消息队列之后,用户下单完之后,下单信息写入数据库,再写入消息队列,发送邮件和发送短信各自去消息队列进行读取,节省时间,提高效率。2、应用解耦场景:用户下单后,订单系统需要多渠道通知用户。下单服务系统:用户使用下单服务后,将下单信息写入数据库,下单成功。短信服务系统:用户下单后,将短信信息写入消息队列,以发送短信信息通知用户
- RabbitMQ配置、底层、使用一套打通,由繁到简
·菠萝皮~
学习与应用专栏java-rabbitmqrabbitmqjava
注:CSDN格式阅览观赏性可能较差,可移步阅览:https://www.yuque.com/docs/share/1902147c-8c40-4300-b3ee-4f2e7b8f3bba?#《RabbitMQ(MessageQueue,消息队列)》一、什么是消息中间件●消息中间件是软件和软件之间发送消息的软件●消息中间件最大的作用就是异步处理和系统解耦●另外消息中间件还有消息收集广播、流量控制等功
- 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