- 深入探讨Qt智能指针的用法
码农飞飞
QT+QMLqt智能指针指针转换内存泄漏内存管理QSharedPointerQPointer
文章目录QPointerQSharedPointerQWeakPointerQScopedPointerQScopedArrayPointer类型转换qSharedPointerCastqSharedPointerDynamicCastqSharedPointerConstCastqWeakPointerCastqSharedPointerObjectCastQt的智能指针提供了方便的资源管理工具
- cmake qt 添加路径 项目_CMake配置Qt工程
#指定cmake的最小版本号CMAKE_MINIMUM_REQUIRED(VERSION3.16)#指定项目名称PROJECT(ArithmeticLANGUAGESCXX)#指定Qt路径和启用当前目录(按需设置)SET(CMAKE_PREFIX_PATH${QT_PATH}/lib/cmake)SET(CMAKE_INCLUDE_CURRENT_DIRON)#引入Qt库FIND_PACKAGE(
- Qt构建静态库后,丢失背景图片
haiyuanjie
Qt开发总结开发语言c++qt
问题现象:静态库项目UI属性设置qrc资源图片,显示成功,同一项目调用测试显示成功。主程序调用静态库,无法显示背景图片。原因及解决:UsingResourcesinaLibraryIfyouhaveresourcesinalibrary,youneedtoforceinitializationofyourresourcesbycallingQ_INIT_RESOURCE()withthebasen
- linux系统下使用Qt静态库(Qt5.15.16)
꧁白杨树下꧂
qt
前言笔者经过测试,自己编译出的Qt静态库是可以正常工作的,但有部分小伙伴反馈,他们编译出的Qt静态库无法正常使用,经过笔者了解后,决定为大家解疑部分问题一、使用QMake构建项目对于Qt5,官方对qmake的支持还是不错的,所以只要在QtCreator正常配置kit套件,无论是widget程序还是qml程序,都可以正常运行。读者可以以此判断,编译的静态库是否符合自己需要。若是widget程序也无法
- 关于Qt商业化使用是否需要花钱的通俗解释
溪渣渣_梁世华
QtC++从入门到跳窗qt
Qt商业化使用序言吐槽结论免费商业化方式商业化方式参考资料序言吐槽我是真没想到,Qt发布这么久了,竟然很多相关工作人员对于这个Qt的商业化方式还懵懵懂懂,这也就算了,连用Qt的程序员自己都不是很清楚!?所以我想专门写一篇文章来解释下,直接说结论,查出处可以看参考资料。结论免费商业化方式Qt如果使用含LGPL协议的模块,不修改源码而是用Qt提供的动态库链接模块,并且这些动态库能够被用户访问到的话,做
- 零基础 Qt 6 在线安装教程
程序员乐逍遥
Qt框架MFC框架高级编程qt开发语言qt6C++安装
1.首先给你们Qt5.14.2的安装地址,有需要的可以安装Indexof/archive/qt/5.14/5.14.22.首先下载Qt6的在线安装包https://d13lb3tujbc8s0.cloudfront.net/onlineinstallers/qt-online-installer-windows-x64-4.10.0.exe3.安装运行程序
- WiFi通信——STM32通过ESP8266-01S上传DHT11温湿度和LED灯状态到阿里云物联网平台上(二)MQTT协议代码讲解
文科比理科更擅长的工科男
STM32单片机实战项目讲解stm32阿里云物联网
上一篇博客讲了ESP8266-01S的MQTT固件包烧录过程,配置了阿里云物联网平台,并且利用MQTT.fx验证和阿里云通信的过程,链接如下:https://blog.csdn.net/weixin_41011452/article/details/1406451301MQTT协议MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议)是IBM在1999年
- Qt 的并发机制详解
大王算法
Qt入门及实战宝典Qt
QProcess和QThread提供了两种并发方式。QProcess是一个能够非常方便的用于启动和控制其它进程的类。它派生自QObject,可充分利用信号和槽与其它对象交互。一个QProcess可以使用start()函数来启动一个进程。新进程将会成为一个子进程并随着父进程的终止而终止。QThread为我们QT项目的异步和同步并发提供了强大工具。
- QT的Qthread机制
Helloorld_11
qt开发语言c++
目录QT的Qthread的一些机制和用法最后,简单的总结一哈,QThread的用途!QT的Qthread的一些机制和用法QT提供QThread类以进行多任务处理。与多任务处理一样,Qt提供的线程可以做到单个线程做不到的事情。例如,网络应用程序中,可以使用线程处理多种连接器。QThread继承自QObject类,且提供QMutex类以实现同步。线程和进程共享全局变量,可以使用互斥体对改变后的全局变量
- QT并发机制
byxdaz
QTqt
QT提供了多种并发编程机制,使得开发者能够充分利用多核处理器优势,同时保持代码的可维护性和跨平台特性。以下是QT主要的并发机制:1.QThread-线程基础类QThread是QT中最基础的线程类,提供了创建和管理线程的能力。classWorkerThread:publicQThread{voidrun()override{//在这里执行耗时操作qDebug()start();//启动线程2.基于Q
- MQTT 是什么?一文读懂 MQTT 协议的原理与优势
头发那是一根不剩了
网络物联网
1,MQTT是什么MQTT(MessageQueuingTelemetryTransport)是一种发布/订阅消息协议,最早由IBM提出,用于低功耗、低带宽场景下的数据传输,尤其适用于物联网(IoT)设备通信。全称:MessageQueuingTelemetryTransport角色:定义“设备如何发送/接收消息”的规则(通信协议)关键机制:发布/订阅模型(Publish/Subscribe)它不
- ubuntu安装搜狗输入法后闪烁
wuzuyu365
ubuntu
在/etc/profile里面添加一行exportQT_QPA_PLATFORM=xcb就好了,重启正常使用。
- AWS MES集成:PLM到车间秒级同步方案
百态老人
awspostman云计算
以下是针对"AWSMES集成框架:通过Lambda转换PLMBOM→DynamoDB→MQTT至车间"的完整技术方案,结合AWS服务特性和制造业需求设计:一、架构设计目标数据流闭环:实现PLM系统到车间设备的自动化数据管道实时性:BOM变更秒级同步至车间可靠性:MQTTQoS1保障消息必达无服务器化:降低运维成本,按需伸缩二、技术组件详解1.PLMBOM数据解析数据结构特征:多视图结构(EBOM/
- 分库分表之实战-sharding-JDBC水平分库+水平分表配置实战
软件编程在线接单(需要可私)
分库分表后端java数据库mysql分布式
大家好,我是工藤学编程一个正在努力学习的小博主,期待你的关注实战代码系列最新文章C++实现图书管理系统(QtC++GUI界面版)SpringBoot实战系列【SpringBoot实战系列】Sharding-Jdbc实现分库分表到分布式ID生成器Snowflake自定义wrokId实战环境搭建大集合环境搭建大集合(持续更新)分库分表分库分表之实战-sharding-JDBC广播表前情摘要:1、数据库
- Unix/Linux系统上用于构建图形用户界面的核心协议和架构标准
行之文
unixlinux
目录前言一、X11/Wayland是什么?X11(XWindowSystem)Wayland关键差异总结:二、如何使用?1.查看当前使用的协议2.切换X11/Wayland(Ubuntu示例)3.开发适配(Qt等)三、3个常见用例四、总结建议前言本文介绍下Unix/Linux系统上用于构建图形用户界面的核心协议和架构标准X11和Wayland一、X11/Wayland是什么?
- OBS 二次开发插件录屏
bug和崩溃我都要
qtOBS视频录制
基于OBS二次开发的录屏工具,使用OBS的SDK和Qt开发的工具。QT5.15.2MSVC64编译。添加视频源intobsRecord::AddSource(eCaptureTypemodel){//清除之前的SourceclearScene();//音频源处理obs_set_output_source(kChannelTransitions,NULL);obs_set_output_source
- 以下是基于 C# 的面向对象设计,抽象出公共接口和协议实现
zhxup606
通讯协议c#开发语言
以下是基于C#的面向对象设计,抽象出公共接口和协议实现,涵盖SerialPortProtocol、TcpProtocol、HttpProtocol、WebSocketProtocol、ModbusProtocol和MQTTProtocol。每个协议实现为单独的项目,公共接口定义在独立项目中,使用异步编程模式(async/await)确保高效和稳定,代码结构易于扩展。以下内容包含详细的代码示例、注释
- 一个完整的数据采集系统的实现,使用 Qt 框架和 QSerialPort 模块开发,支持从串口设备采集数据、实时显示、保存到文件,并支持数据可视化
zhxup606
C++qt信息可视化开发语言
以下是一个完整的数据采集系统的实现,使用Qt框架和QSerialPort模块开发,支持从串口设备采集数据、实时显示、保存到文件,并支持数据可视化。接着,我会通过一个具体案例(采集温湿度传感器数据)进行详细扩展。代码和说明将使用中文,方便理解。一、数据采集系统的完整代码实现1.系统功能串口通信:从串口设备采集数据。实时显示:在界面上实时显示采集到的数据。数据保存:将数据保存到本地文件(CSV格式)。
- 架构师-MQTT 协议
薛定谔的猫1982
系统架构架构
介绍MQTT是一种为低带宽和不可靠网络环境设计的轻量级消息协议,特别适合物联网(IoT)应用。MQTT协议基于发布/订阅模式,专门针对低带宽和不稳定网络环境的物联网应用而设计,可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT协议IBM于1999年首次提出,旨在为远程传感器和控制设备提供轻量级的通信机制。其设计目标是减少网络带宽的使用,优化数据传输效率,并确保在不稳定网络环境中的可靠性
- 基于MQTT的温湿度采集服务
aiprtem
嵌入式LinuxMQTTAM335xlinux物联网c语言
基于MQTT的温湿度采集服务1.项目概述thdetect是一个基于RS485的温湿度采集服务程序,通过Modbus-RTU协议读取传感器数据,并将数据通过MQTT协议发布到消息代理服务器。该服务可以作为后台守护进程运行,为上层应用提供实时的温湿度数据。2.开发环境处理器:AM3354显示屏:支持触摸功能的LCD屏幕操作系统:Linux3.2LVGL版本:v8.3构建工具:CMake3.16+交叉编
- PyQt5—QTextEdit 学习笔记
寄思~
Python——PyQt5笔记qt学习笔记python
第二章控件学习一、QTextEdit基础认知QTextEdit是PyQt/PySide框架中用于处理富文本内容的强大控件,它不仅支持纯文本编辑,还能处理HTML、图片等复杂内容,是开发文本编辑器、日志查看器等应用的核心组件。二、最简单的QTextEdit实现下面是一个创建QTextEdit并显示的基础案例,适合零基础入门:importsysfromPyQt5.QtWidgetsimportQApp
- 数据库MySQL与SQLite
afab
数据库数据库sqlite
常用数据库及Qt中的用法一、常用数据库数据库管理系统(DBMS)是旨在使用、检索和定义规则以验证和操作数据库中的数据的软件。有四种DBMS类型:关系型、面向对象型、分层型和网络型。有很多开源数据库,包括MySQL、SQLite等。SQLite:是一个开源的关系型数据库管理系统(RDBMS)。RDBMS在多个二维表中存储数据,而不是一个大表。每张表由包含唯一值的行组成,该值被称为键,用于连接各表。这
- Qt面试题汇总
freshman_y
Qtqt开发语言面试题
目录1.简单说一下Qt2.用过QT中的哪些模块?3.说一些你常用的Qt控件?4.Qt中如何创建一个窗口?5.说一下QT中创建控件的方式?6.说一下Qt中信号和槽机制是什么?7.说一下QT信号与槽机制原理?8.如何自定义信号和槽,信号和槽怎么连接?9.说一下Qt的事件处理流程?10.说一下事件过滤器的作用?11.Qt中connect()函数中参数有哪些,第五个参数的作用和可选类型呢?12.为什么选择
- AI小智项目全解析:软硬件架构与开发环境配置
Despacito0o
ai语音助手人工智能硬件架构struts
AI小智项目全解析:软硬件架构与开发环境配置一、项目整体架构AI小智是一款基于ESP32的智能物联网设备,集成了语音交互、边缘计算等功能。整体系统架构如下:终端设备:ESP32模组作为核心通信方式:WebSocket实现实时音视频传输MQTT连接物联网后台管理系统HTTP进行系统间数据交换二、软件架构详解2.1后端技术栈#核心技术栈backend_stack={"语言":"Python","框架"
- 安装qt-sdk
Qt是一个跨平台的C++图形用户界面应用程序框架。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。QTSDK包括了Qt库、QtCreatorIDE和Qt工具。QTCreator和QTSDK是需要分别单独安装的~在之前(这里:http://blog.csdn.net/arackethis/article/
- QtitanRibbon打造现代办公软件新体验:提升效率的专业界面解决方案
界面开发小八哥
QtitanRibbonqtribbon界面控件UI开发c++
在现代办公环境中,无论是日常公文处理、文档编辑、任务协同还是数据分析,桌面办公软件仍扮演着不可替代的角色。然而,许多传统系统依旧使用菜单繁杂、图标混乱、交互老旧的界面,用户操作效率低、上手慢、满意度差。QtitanRibbon是一款基于Qt构建、全面实现MicrosoftOffice风格的Ribbon控件组件,旨在帮助开发者为办公类桌面应用打造现代化、高可用、可拓展的用户界面,提升软件体验的同时,
- 【Qt6.3 基础教程 11】 深入探索列表型控件:QListWidget和QComboBox
是阿牛啊
C++编程设计编程语言qt6.3开发语言人工智能qt数据库
文章目录前言QListWidget:便捷的项目列表主要特性示例:使用QListWidgetQComboBox:下拉选择的高效实现主要特性示例:使用QComboBox结合Model/View架构使用总结前言在任何现代用户界面中,列表是展示项目集合的重要组件。Qt框架提供了多种列表型控件,其中QListWidget和QComboBox是最常用的两种。在本篇博客中,我们将深入了解这两种控件的特点和用法,
- qt使用QListWidget
一零点六
qt开发语言
在QListWidget里面设置一个固定大小的Qwidget在QListWidgetItem中,并且把QListWidgetItem放入QListWidget中QListWidgetItem*item=newQListWidgetItem;QWidget*widget=newQWidget;QVBoxLayout*widgetLayout=newQVBoxLayout;QLabel*imageLa
- QT的语音识别
heng6868
imx6ull嵌入式项目qthttpjava
难点:难点就是如何跟百度云的语音应用进行通信。首先,要获取应用的APIKey、SecretKey,并通过请求鉴权接口换取token。向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:并在URL中带上以下参数:grant_type:必须参数,固定为client_credentials;client_i
- QML Property属性语法
Little-Hu
QML数据库开发语言QML
QML作为Qt框架中的声明式UI语言,其property属性是构建动态用户界面的核心要素。property不仅是存储数据的容器,更是实现数据绑定、组件通信和状态管理的基石。本文将全面剖析QML中property属性的语法特性、使用场景和最佳实践,帮助开发者深入理解并高效运用这一重要机制。一、Property属性基础1.属性定义与声明在QML中,property属性用于存储对象的状态信息,其基本声明
- 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