- Linux系统编程:网络编程与Socket通信详解
Dev-Kilig
Linuxlinux网络运维
引言网络编程是Linux系统编程的核心内容之一,而Socket是实现网络通信的基石。无论是Web服务器、即时通讯工具还是分布式系统,都依赖于Socket进行数据传输。本文将深入讲解Socket编程的基本概念,并通过C语言实现一个完整的TCP客户端-服务器通信示例,帮助初学者掌握网络编程的核心技能。一、Socket编程基础1.1什么是Socket?Socket(套接字)是网络通信的端点,用于在不同主
- Python在DevOps中的应用:自动化CI/CD管道的实现
蒙娜丽宁
Python杂谈pythonjavascript开发语言
《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在现代软件开发中,DevOps理念的引入极大地提升了开发与运维的协作效率,而持续集成(CI)与持续部署(CD)则是其核心实践之一。Python作为一种简洁高效的编程语言,凭借其丰富的库和灵活性,成为实现自动化CI/CD管道的理想选择。本文深入探讨了如何利
- Http响应头之Date与Age
yzpyzp
参考:http://www.xuebuyuan.com/1496558.htmlhttp://blog.csdn.net/xifeijian/article/details/46460631HTTP没有为用户提供一种手段来区分响应是缓存命中的(比如响应是来自代理服务器的),还是访问原始服务器得到的。客户端有一种方法能判断响应是否来自缓存,就是使用Date首部。将响应中Date首部的值与当前时间进行
- 微信小程序中如何实现微信支付
前端鼓励师
微信小程序微信小程序微信小程序前端javascript
微信支付是微信公众平台提供的一种在线支付服务,可以为用户提供快速、方便、安全的支付体验。而在微信小程序中实现微信支付,则可以为应用程序提供更多的功能和服务,提高用户体验和商业价值。因此,在本文中,我们将介绍如何在微信小程序中实现微信支付。步骤一:申请微信支付接口权限在使用微信支付之前,需要先在微信公众平台申请支付接口权限,并进行相应的设置和配置,包括添加支付功能的AppID及密钥等信息。具体的操作
- 【服务器】ubuntu20.04安装cuda12.01(使用runfile安装)
弹伦琴的雷登
服务器相关知识linux相关知识服务器运维linux
【服务器】ubuntu20.04安装cuda12.01(使用runfile安装)包教包会【创作不易,求关注收藏点赞】商业合作请私聊,有问题可以评论或者私聊!1、进入cuda官网先登录,登录好之后选择对应的版本按下面选项进行选择2、终端运行安装在终端进入管理员模式,这里我是通过SSH远程连接,先进入管理员模式su</
- 【pycharm】远程服务器之后如何打开终端
弹伦琴的雷登
pycharm系列pycharm服务器ide
【pycharm】远程服务器之后如何打开终端在pycharm中,我们通过远程连接服务器,此时如果我们需要在终端运行的话,并不能直接在本地终端运行,而是需要连接到服务器终端才能运行命令设置如下:输入服务器的ip、端口、用户名、用户密码此时在终端就可以看到服务器的终端了
- POST 方法的content-type类型总结
۩ﺴ往后余生ﺴ۩
python#python数据处理python
文章目录一、几种常见类型1:application/x-www-form-urlencoded2:multipart/form-data3:application/json总结什么是Content-typeContent-type是实体首部字段,用于说明请求或返回的消息是用什么格式进行编码的,在requestheader和responseheader里都有存在。用来向服务器或者浏览器说明传输的文件
- 微信小程序实现微信支付(代码和注释很详细)
如夜了我衣衫太薄便归家靠路灯°
微信小程序微信小程序
实现微信小程序的微信支付功能涉及多个步骤,包括配置开发环境、获取支付权限、调用微信支付接口等。以下是一个详细的步骤指南,并附带代码示例和注释。步骤1:配置微信小程序开发环境1.1注册并创建微信小程序首先,你需要在微信公众平台上注册并创建一个微信小程序。如果你已经有小程序,请跳过这一步。1.2获取微信支付权限在微信公众平台上,你需要开通微信支付功能,并获取相应的商户号和密钥。这些信息将在支付过程中使
- 用python批量_[Python]用python实现批量/并发处理
weixin_39724266
用python批量
最近在学习python,感觉很不错,特别是实现批量/并发处理。实现起来非常方便,比shell方便很多。刚学python一个月,在这留个记录。下面分享一段代码。多提建议/意见~(QQ×××流:24967504)需求:批量查看/对比线上服务器的状态情况,如uptime、df-h、MD5sum文件等等。本打算让执行命令通过传参进行、密码通过交互输入(3次不对退出)。后面再完善~~#-*-coding:u
- HTTP头部参数详解
weixin_34418883
xhtml
HTTP请求消息头部实例:Host:rss.sina.com.cn//客户端指定自己想访问的WEB服务器的域名/IP地址和端口号User-Agent:Mozilla/5.0(Windows;U;WindowsNT5.1;zh-CN;rv:1.8.1.14)Gecko/20080404Firefox/2.0.0.14//头域的内容包含发出请求的用户信息。Accept:text/xml,applica
- HTTP中GET和POST详细理解
G丶AEOM
八股普通学习区计算机网络http
HTTP中GET和POST简单来说GET的语义是从服务器获取指定的资源,这个资源可以是静态的文本、页面、图片视频等。GET请求的参数位置一般是写在URL中,URL规定只能支持ASCII,所以GET请求的参数只允许ASCII字符,而且浏览器会对URL的长度有限制(HTTP协议本身对URL长度并没有做任何规定)POST的语义是根据请求负荷(报文body)对指定的资源做出处理,具体的处理方式资源类型而不
- 理解http响应头中的Date和Age
iteye_14001
移动开发
Date:Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,04Jul201105:53:36GMT。Age:当代理服务器用自己缓存的实体去响应请求时,用该头部表明该实体从产生到现在经过多长时间了。比如访问http://www.yahoo.com/时,Date为Mon,04Jul201105:53:36GMT,标记为PageDate。使用抓包工具查看:再看其
- 《想让 MySQL 性能飙升?InnoDB 引擎里的这些门道你了解吗?》
@孤随
MySQLmysql数据库
《想让MySQL性能飙升?InnoDB引擎里的这些门道你了解吗?》一、MySQL与InnoDB基础1.1MySQL架构概述连接层MySQL连接层就像是一个接待处,负责管理客户端与服务器之间的连接。当你使用各种客户端工具(如MySQLWorkbench、Navicat或者命令行工具)尝试连接到MySQL服务器时,连接层会对客户端进行身份验证。身份验证主要基于用户名、密码以及客户端的IP地址等信息。例
- 微信小程序的概念、历史、发展
天马3798
微信小程序微信小程序小程序
一、微信小程序的概念小程序的概念:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。通常说的小程序就是指“微信小程序”中文名:微信小程序外文名:MiniProgram开发商:腾讯微信公众平台微信小程序的官方定义:微信小程序小程序是一种
- 部署node后端服务
做一颗卷心菜
node.js
①环境介绍服务器:Linuxnode>=18.0②安装Node创建一个目录mkdirnode进入node目录下,下载压缩包wgethttps://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.xz③解压文件tar-xvJfnode-v18.20.3-linux-x64.tar.xz④创建软连接ln-s/node/node-v18.20.3
- python异步tcp代理服务器
在学02
pythontcp/ip网络
importasyncioclassTcpServer:def__init__(self,addr,proxy_addr):self.addr=addrself.proxy_addr=proxy_addrself.server=Noneasyncdefget_connect(self):reader,writer=awaitasyncio.open_connection(*self.proxy_a
- CentOS服务器部署Redis远程访问问题
yinriyang
Redis服务器centosredis
CentOS服务器上部署Redis,无法远程访问该Redis。检查redis.conf:##################################NETWORK######################################Bydefault,ifno"bind"configurationdirectiveisspecified,Redislistens#forconnect
- uniapp H5 发布在哪里配置
用心去追梦
uni-app
UniappH5发布配置指南Uniapp是一个强大的跨平台开发框架,支持同时开发App、H5和小程序。发布H5版本是Uniapp开发中的一个重要环节。以下是详细的UniappH5发布配置步骤和注意事项:项目配置文件在Uniapp项目中,manifest.json文件是核心配置文件,包含了项目的元数据和基本设置。虽然H5发布的主要配置不在这里,但一些基础设置仍然会影响H5的表现。关键配置项name:
- 企业如何做好密码管理?
IDaaS杂谈
技术随笔IT领域单点登录安全项目管理运维
想象一个场景:IT运维小叉为公司新人小A开通了10多个应用系统账户,企业微信、绩效系统、CRM系统、公司内网云盘等等,“健忘症患者“小A为了方便记忆,将各个系统密码全部设置为“123456!”,并保存在浏览器中设置自动填充。十天后小A误点了钓鱼网站,公司系统的账户被盗,内部资料被窃取——小叉同学表示非常心累&崩溃。不只是安全问题,更是效率“杀手”现代企业的应用系统越来越多,如果员工在每个应用上设置
- B/S结构和C/S结构是什么?它们之间有哪些区别和联系?
瑆箫
开发语言
B/S和C/S都是随着互联网的发展而出现的一种网络结构模式,而其用的非常广泛,在我们生活中都很常见。那它们到底是什么呢?接下来就详细的介绍一下B/S和C/S。B/S结构和C/S结构一、B/S结构B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。B/S结构是随着互联
- Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
m0_74824755
面试学习路线阿里巴巴node.jshttp服务器
Node.jsHTTP模块详解:创建服务器、响应请求与客户端请求Node.js的http模块是Node.js核心模块之一,它允许你创建HTTP服务器和客户端。以下是一些关键知识点和代码示例:1.创建HTTP服务器使用http.createServer()方法可以创建一个新的HTTP服务器实例。这个方法接受一个回调函数,该函数在服务器接收到请求时被调用,参数为req(请求对象)和res(响应对象)。
- 什么是URL参数
kungfu_panda
前端开发
使您将用户提供的信息从浏览器传递到服务器。当服务器收到请求,而且参数被追加到请求的URL上时,服务器在将请求的页提供给浏览器之前,向参数提供对请求页的访问。URL参数是追加到URL上的一个名称-值对。参数以问号(?)开始并采用name=value.如果存在多个URL参数,则参数之间用(&)符隔开。下例显示带有两个名称-值对的URL参数:http://server/path/document?nam
- python——request
罗网_net
pythonpython开发语言
文章目录一、安装二、请求方式get和post1、get和post不同二、GET请求1、带参数的get请求三、post请求四、结果处理五、操作步骤一、安装安装:pipinstallrequests二、请求方式get和post在Web开发中,POST和GET是两种常见的HTTP请求方法,它们在发送数据和请求资源时扮演着关键角色。虽然它们的基本目的相同,即向服务器请求数据,但在使用方式、安全性、数据大小
- 14.6:C++网络编程的UDP和TCP协议!(课程共7500字,4段代码举例)
小兔子平安
C++完整学习全解答网络udptcp/ip
①UDP服务器②UDP客户端③UDP广播④UDP组播①UDP服务器以下是一个简单的UDP服务器示例代码:#include#include#include#includeintmain(){intsockfd;structsockaddr_inserver_addr,client_addr;charbuffer[1024];//创建UDP套接字sockfd=socket(AF_INET,SOCK_D
- Windows开机自动关闭系统代理
花开不识君
Win10系统windows
Windows开机自动关闭系统代理本人经常遇到开机没有网的问题,原因是开启了系统代理,而后者的原因是使用习惯上习惯直接关闭导致某些软件没来的及关闭系统代理,从而引发了网络故障的我呢提,于是想着有没有什么办法可以让电脑启动的时候自动关闭系统代理,于是有了下面的方法。1、使用PowerShell脚本完成命令化关闭系统代理()#设置代理服务器为空Set-ItemProperty-Path'HKCU:\S
- 阿里云服务器突然有大量nmap服务占用大量CPU排查及解决方案
_院长大人_
线上问题阿里云服务器云计算
问题描述突然有一天服务器访问很卡顿,在阿里云后台查看CPU,内存,系统平均负载等参数发现没问题但是登陆服务器后,发现大量nmap服务占用大量CPU,但是这台管理员并没有主动安装过nmap原因及对应预防方案暴力破解SSH密码:通过爆破弱密码或没有加固的SSH配置。解决方案:使用强密码和密钥认证修改默认端口号启用防暴力破解工具fail2ban或类似工具通过防火墙(如iptables或ufw)限制SSH
- [笔记]深入理解PCIe架构与U-Boot中的设备管理
BROKENBOAT
笔记架构
前言PCIe(PeripheralComponentInterconnectExpress)作为一种高速串行计算机扩展总线标准,已经成为现代计算系统中不可或缺的一部分。它不仅用于个人电脑和服务器,还广泛应用于嵌入式系统和数据中心。因为项目需求对pcie进行功能调试,本文将以探讨PCIe的架构设计,包括RootComplex(RC)、Endpoint(EP)、Switch和Bridge的各个功能为主
- qt是什么?
四爷TAT
Qt[是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被D
- Linux 6.13 合并移除 ReiserFS 的补丁
CIb0la
国产Llinux运维树莓派kalilinuxlinux网络运维
很多年轻的运维大概率不知道ReiserFS文件卷系统,ReiserFS和ext2,ext4,fat32,NTFS一样都是一种文件卷结构。作为服务器文件卷远不如NTFS有名也不如其稳定。在Linux下公允的说优于ext2但是自身一些问题还是落后于ext4的。我在2005年前后运维slackware的时候见过这种文件卷机构。LinusTorvalds在Linux6.13中合并了从内核删除ReiserF
- 使用Node.js连接MongoDB数据库的实现
大笑编程
数据库node.jsmongodbjs
Node.js是一种基于JavaScript的服务器端运行环境,而MongoDB是一种开源的文档型数据库。在Node.js中,我们可以使用相应的驱动程序来连接MongoDB数据库并进行数据操作。本文将介绍如何使用Node.js连接MongoDB数据库,并提供相应的源代码示例。步骤1:安装MongoDB驱动程序首先,我们需要安装MongoDB的官方驱动程序,可以使用npm(Node.js包管理器)进
- 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