- 手写tomcat
weixin_42218884
tomcatjava服务器
1.前言对于JavaEE的初学者来说,大家学完JAVASE之后,马上进入了WEB阶段的学习。大家在JAVASE阶段写代码时,从头到尾都是自己写的,到了WEB阶段,尤其是进入Servlet的学习阶段,有人会感到困惑,怎么我写的代码看不到main函数了,服务端的Servlet是个什么东东呢?tomcat服务器到底底层做了哪些事情呢?为了帮助大家更好的理解tomcat服务器,也为了帮助大家更好的步入WE
- 使用 Theos 开发 iOS 应用(IPA)记事本
木木黄木木
c#ios
使用Theos开发iOS应用(IPA)记事本前提条件已越狱的iOS设备已安装Theos已安装OpenSSH(用于远程操作)Windows电脑(可选,用于远程操作)Theos环境搭建Windows环境搭建安装WSL(WindowsSubsystemforLinux)wsl--install安装必要工具sudoapt-getupdatesudoapt-getinstallgitperlbuild-es
- Nginx配置 ngx_http_proxy_connect_module 模块及安装
huazhixuthink
nginx运维
1、配置完互联网yum源后,安装相关依赖软件包[root@serversoft]#yuminstall-ypatchpcrepcre-develmakegccgcc-c++opensslopenssh[root@serversoft]#yuminstallopenssl*2、解压缩软件,加载模块[root@serversoft]#lsnginx-1.20.2nginx-1.20.2.tar.gzn
- 一段java代码输出Hello world经历了哪些过程
无畏@
java
一段Java代码从编写到输出Hello,World!,经历了多个步骤和组件的协作。以下是详细的过程解析:1.编写Java代码首先,编写一个简单的Java程序:java复制publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,World!");}}代码说明:定义了一个类HelloWorld
- git pull报错:Unable to negotiate with port: no matching host key type found. Their offer: ssh-rsa
毛三仙
gitgitssh
Unabletonegotiatewithxx.xx.xx.xxxport29418:nomatchingkeyexchangemethodfound.Theiroffer:diffie-hellman-group14-sha1,diffie-hellman-group1-sha1fatal:无法读取远程仓库。解决方法(在ssh目录新建config文件)sudovim~/.ssh/config添加
- 理解 SSH_AUTH_SOCK:你的 SSH 代理小助手及常见登录问题解答
weixin_42587823
linux云计算ssh运维
理解SSH_AUTH_SOCK:你的SSH代理小助手及常见登录问题解答在日常使用SSH登录远程服务器时,你可能会遇到一个看似不起眼但却至关重要的环境变量——SSH_AUTH_SOCK。今天,我就来和大家聊聊这个变量到底有什么作用,以及在SSH登录过程中可能遇到的一些问题。1.SSH_AUTH_SOCK的作用1.1什么是SSH代理?在使用SSH时,我们常常需要使用密钥对进行认证。为了避免每次都手动输
- 系统架构设计师—系统架构设计篇—轻量级架构
洛北辰南
系统架构设计师系统架构架构轻量级架构SSHSSM
文章目录基本概念轻量级架构持久层的优点SSHSSMHibernate与Mybatis的区别基本概念轻量级架构J2EE环境下,分层架构:表现层业务逻辑层持久层持久层的优点屏蔽数据库平台的变化对业务逻辑层的影响。通过持久层的封装处理,可以在持久层实现支持多种数据库平台,而对业务逻辑层提供统一的接口。代码可重用性高,能够完成所有的数据库访问操作。通过持久层,分离业务逻辑和数据逻辑,降低系统的耦合程度,结
- flask网站部署到服务器教程
鹊起244
flask服务器python
flask网站部署到服务器教程第一步:将本地文件压缩上传至服务器进入到项目所在目录,cmd使用下列指令scp/filenameusername@servername:/path示例第二步,使用ssh登录,解压缩上传到服务器的文件使用下列指令unzipfilename第三步如没有改动端口或其他,直接cd进入项目文件夹,运行项目使用下列指令来运行python3app.py运行成功后,可以通过相应域名访
- C++程序设计语言笔记——抽象机制:派生类
钺不言
C++笔记c++笔记经验分享开发语言
0避免使用类型域。避免使用类型域(TypeCodes)是面向对象设计中的重要原则,因为类型域会导致代码耦合度高、难以维护,且违反开闭原则(对扩展开放,对修改关闭)。以下是替代类型域的常见方法及示例:1.使用多态(子类化)通过继承和多态,将不同类型的行为封装到子类中,消除显式的类型判断。重构前(使用类型域):classShape{inttype;//1=圆,2=矩形doubleradius;doub
- 【 Fail2ban 使用教程】
D-river
linux安全web安全网络网络安全
Fail2ban使用教程1.安装Fail2ban2.配置Fail2ban2.1创建`jail.local`文件2.2基本配置参数说明2.3配置具体服务的监控规则2.3.1SSH服务2.3.2Apache服务3.启动和管理Fail2ban3.1启动Fail2ban服务3.2设置Fail2ban开机自启3.3检查Fail2ban服务状态3.4重新加载配置文件4.查看和管理封禁列表4.1查看当前封禁的I
- [Base]DIFFERENTIAL TRANSFORMER
Xy-unu
transformer深度学习人工智能
1.BaseInfoTitleDIFFERENTIALTRANSFORMERAdresshttps://arxiv.org/pdf/2410.05258Journal/Time202410Author微软研究院和清华大学提出Codehttps://aka.ms/Diff-TransformerRead2411112.CreativeQ&A减少对无关上下文的关注;通过计算两个Softmax注意力权重
- 技术分享连接汇总[201712]
六月星空2011
Java高级交流javaredis技术
内容整理自->java高级交流群【329019348】更多Java高级交流文章2017/12/01最好用的IntelliJ插件Top10jrebeljavaee开发工具SpringCloud限流详解(附源码)免费的编程中文书籍索引ModernJavaRecipes-KenKousenWHATISDEADLOCKANDHOWTOPREVENTIT?基于Redis的限流系统的设计分布式环境下限流方案的
- docker打包jar镜像
为援不可图
技术之路dockerjar
小编最近在实习公司帮忙做项目部署,对方要求需要把jar包再次进行docker镜像封装,小编呢也没有了解过docker镜像,于是就去百度了一波,发现了这个Docker中文文档,感觉还不错,大家不会的可以来看看,很详细的介绍了有关Docker的东西,不多说,直接做。系统:Ubuntu16.04要求:apt、wget、ssh、docker、linux版的JDK以及交互界面(xshell、xftp)备注:
- 实现可滑动面板鸿蒙示例代码
本文原创发布在华为开发者社区。介绍本示例实现了一个可滑动面板的体验,轻量的内容展示窗口,方便在不同尺寸中切换。实现可滑动面板源码链接效果预览使用说明点击按钮即可从底部弹出面板,弹出后点击空白处可返回面板,拖动面板可继续展开二级面板、三级面板。实现思路通过bindSheet属性为组件绑定半模态页面,在组件插入时可通过设置自定义或默认的内置高度确定半模态大小。为了使isShow参数值与半模态界面的状态
- python笔记之常用命令总结
chenlang_lbs
python笔记
1、nautilus:打开当前工作目录2、wcfiles_names:查看文件的数量3、Pycharm的常用命令ctrl+r:查找命令4、
[email protected]:获得进入nb@电脑的权限5、复制很长的数据的技巧:在数据前面点击+shift+在数据后面点击+(ctrl+c),完成复制
- CentOS6 DNS解析缓慢 SSH登录缓慢 问题解决
weixin_34192732
运维操作系统
背景公司新部署几台服务器,安装最新的CentOS6.5操作系统,但当执行ping或dig操作时,等待时间较长,不能忍受,而同网络下的CentOS5.6系统却正常同时在远程登录(SSH)时,也出现卡顿的现象,登录不太流畅原理DNS解析缓慢的原因是CentOS6/REHL6总是需要等待AAAA(IPv6)的结果,即使IPv6已在网络设置中禁用出现SSH登录缓慢的问题,可能是“GSSAPIAuthent
- ISP(图像信号处理)算法概述、工作原理、架构、处理流程
2401_87555493
接口隔离原则信号处理算法
ISP处理流程:Bayer、黑电平补偿(blacklevelcompensation)、镜头矫正(lensshadingcorrection)、坏像素矫正(badpixelcorrection)、颜色插值(demosaic)、Bayer噪声去除、白平衡(AWB)矫正、色彩矫正(colorcorrection)、gamma矫正、色彩空间转换(RGB转换为YUV)、在YUV色彩空间上彩噪去除与边缘加强
- 完全自主化的AI代理不应被开发
无穷之路
AI人工智能
HuggingFace前不久发布了一篇论文,题目《FullyAutonomousAIAgentsShouldNotbeDeveloped》,论证了完全自主化的AI代理不应被开发。核心观点随着AI代理人的自主性增加,用户放弃的控制权越多,系统带来的风险就越大。认为不应该开发完全自主的人工智能代理,提出了多层次自主性(从低级到高级)的框架。人工智能代理的历史文中首先回顾了人工智能代理的历史和发展现状,
- JavaEE AOP详解(从原理到实践 基于Spring AOP + AspectJ,附完整代码实例)
可问 可问春风
JAVAEEjava-eespringjava
一、AOP核心概念1.为什么需要AOP?传统OOP编程中,重复的逻辑(如日志、事务、权限)会散落在各业务方法中,造成代码冗余和维护困难。AOP通过横向切割将这些公共功能抽取成独立模块(切面),实现解耦。2.AOP核心术语术语描述生活类比Aspect(切面)封装横切逻辑的类(如日志、事务)安保系统:处理监控、门禁等统一功能JoinPoint(连接点)程序执行期间的某个点(如方法执行、异常抛出)大楼出
- Dubbo 通信流程 - 服务的创建、导出与注册
eeeeeeeeethan
dubbojavarpc
创建服务供远程客户端调用定义接口并实现//服务接口publicinterfaceHelloService{StringsayHello(Stringname);}importorg.apache.dubbo.config.annotation.DubboService;//服务实现类@DubboServicepublicclassHelloServiceImplimplementsHelloSer
- HarmonyOS Next ohpm-repo权限管理与安全性优化
harmonyos
在HarmonyOSNext开发中,ohpm-repo私有仓库的权限管理和安全性至关重要。它关乎企业代码资产安全、团队协作的规范性以及项目开发的稳定性。接下来,我们深入探讨ohpm-repo的权限管理机制,并分享一些安全性优化的建议。ohpm-repo的用户身份认证机制公私钥认证ssh-keygen在ohpm-repo中,公私钥认证是保障用户身份安全的重要手段。我们利用ssh-keygen工具生成
- SecureCRT可以用来干什么?
是理不是里
github
SecureCRT是一款功能全面的终端仿真软件,主要用于连接和管理远程系统。以下是关于SecureCRT的详细用途介绍:一、主要功能支持多种协议:SecureCRT支持SSH(包括SSH1和SSH2)、Telnet、rlogin等众多协议,能够轻松连接到远程服务器。高效会话管理:用户可以轻松掌控多个连接会话,同时保存与分享配置信息,提高工作效率。传统字符终端体验:提供宛如实体终端般的交互界面,满足
- SecureCRT和命令行有什么区别
是理不是里
大数据
SecureCRT和命令行在功能和用途上存在显著的区别,尽管它们在某些方面有所交集。以下是对这两者的详细比较:一、定义与功能SecureCRT定义:SecureCRT是一款由VanDykeSoftware开发的远程终端仿真软件。功能:它主要用于通过SSH、Telnet等协议安全地连接到远程服务器或设备,并执行各种管理任务。SecureCRT提供了丰富的配置选项,如外观设置、键盘映射、会话管理等,并
- 运维系列(亲测有效):Ubuntu 22.04 server 安装GNOME/XFCE/KDE桌面环境
坦笑&&life
运维运维ubuntulinux
Ubuntu22.04server安装GNOME/XFCE/KDE桌面环境Ubuntu22.04server安装GNOME/XFCE/KDE桌面环境在UbuntuServer上安装桌面环境可以通过以下步骤完成:首先,通过SSH或物理访问方式登录到`UbuntuServer`。确保系统处于最新状态,运行以下命令进行更新:安装所需的桌面环境。安装完成后,您可以通过执行以下命令进入图形界面:如果您想卸载
- GitLab配置ssh key
西北**孤狼
SHHgitssh运维
简介:一、背景当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成sshkey,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成sshkey,然后配置在gitl
- GitLab配置添加SSH Key
小羊绒
配置sshreactjs
工具gitbash1.配置姓名,邮箱配置姓名$gitconfig--globaluser.name"rongyang"配置邮箱$gitconfig--globaluser.email"
[email protected]"2.客户端配置生成SSH密钥对$ssh-keygen-trsa-C"
[email protected]"完成后在~/.ssh/会生成2个文件。id_rsa和id_
- 将自己的SSH密钥对导入YubiKey 5的PIV和智能卡模块,配合Putty和XShell使用
sbdx
LinuxyubikeyXShellPIVSSHLinux
前言YubiKey是什么东西我就不多说,简单的说是一种用来保存私钥的硬件设备,私钥一旦写入就无法读出,比起保存在硬盘里的私钥文件,更安全。前段时间入手一个YubiKey5NFC,最近一直在研究怎么用来登录SSH。需求我手上已经有了一个SSH密钥对用来管理着几十台Linux服务器,,在YubikeyMmanager->PIV中只能重新生成密钥对,并且无法导出私钥,然而我不想更换的我的私钥,与我的需求
- ubuntu 设置,命令
希望永不脱发的程序猿
ubuntulinux服务器
xshell不能连接Ubuntu,但是ubuntu主机可以ping得通其他主机1.在ubuntu主机中的terminalcontrol中输入:sudoaptget-installopenssh-server;安装ubuntu时不会安装ssh服务。2.ubuntu时间修改cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime3.ssh-keygen-tds
- 使用 WinSCP 连接至 Windows Subsystem for Linux (WSL)
四月的我
windowslinux运维
确认WSL版本WSL1:直接使用localhost连接WSL2:需通过虚拟网络适配器的IP连接(需额外配置)在WSL中安装并配置SSH服务器步骤1:更新系统bashsudoaptupdate&&sudoaptupgrade-y步骤2:安装OpenSSH服务bashsudoaptinstallopenssh-server-y步骤3:修改SSH配置编辑配置文件:bashsudonano/etc/ssh
- 遇到 “No supported authentication method available” 错误的完整解决方案
四月的我
linux
问题原因此错误表示SSH服务器拒绝了WinSCP的认证方式(如密码或密钥)。常见原因:SSH服务器配置禁用了密码认证(PasswordAuthenticationno且未配置密钥)。用户目录权限错误导致SSH无法读取认证文件。密钥认证配置错误(如authorized_keys权限问题)。解决方案步骤1:确保启用密码认证在WSL中编辑SSH配置文件:bashsudonano/etc/ssh/sshd
- 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