- 前端性能优化:页面加载速度慢怎么办?
好运连连女士
面试题性能优化前端
文章目录前端性能优化如何识别页面加载速度慢的原因性能优化的方式提高资源的请求速度http缓存--提升二次访问的响应速度CDN缓存静态资源缓存webpack的hash策略-文件资源缓存减少资源请求量图片懒加载代码构建优化webpack资源压缩treesharking-js代码的精简分包按需加载浏览器渲染优化webworkerGPU加速前端性能优化如何识别页面加载速度慢的原因方式1:lighthous
- docker部署Nginx,配置分发服务,配置ssl证书
Java小白爱卷运维
dockernginxssl
Nginx是一个高性能的开源Web服务器,也可以用作反向代理服务器、负载均衡器、HTTP缓存以及作为邮件代理服务器,功能强大!废话不多说直接上干货;1、下载nginx镜像dockerpullnginx2、初次启动镜像容器,准备拷贝容器内文件dockerrun-d--namenginx-p80:80nginx3、创建挂在文件夹(自定义,存放nginx配置文件的地方)mkdir-p/home/dock
- 浅谈HTTP缓存
前端爱好者。
前端前端HTTP服务器
写在前面:最近学习了修言同学的小册,受益良多。对于HTTP缓存这一块,经过资料查询和思考,也有了自己的一些思考认识,希望分享出来与大家一起讨论和成长。内容概述什么是缓存及缓存的优点缓存的处理步骤强缓存和协商缓存缓存决策总结与思考一、缓存及其优点缓存缓存是一种可以自动保存常见资源副本并可以在下一次请求中直接使用副本而非再次获取的技术。也就是说,当我们首次进行资源请求之后,服务器在返回资源给客户端的同
- 计算机基础---HTTP缓存机制
淡写青春209
http缓存网络协议
HTTP缓存机制一、HTTP/1.0的缓存机制If-Modified-Since:客户端在首次请求资源时,服务器会在响应头中返回资源的最后修改时间。后续客户端再次请求该资源时,会在请求头中带上If-Modified-Since,其值为上次服务器返回的资源最后修改时间。服务器接收到请求后,会比较资源的实际最后修改时间与If-Modified-Since的值。如果资源没有被修改,服务器返回304Not
- 初学Guns
only空格
笔记java开发语言
大道至简系列目标:系统架构师系列课程课程:大道至简之Guns框架介绍-慕课网1、系统高可用,包括:负载均衡、限流测试、分布式事务、分布式Session、压力测试等等。2、系统高并发,包括:缓存应用、HTTP缓存、异步高并发处理、JVM的优化、队列应用、动静分离等等。构建应用系统:框架guns,快速构建应用系统,Guns基本概念1.快速构建后台管理系统的开源框架2.Guns默认提高诸多业务系统的基本
- Nginx总结
爱撒谎的男孩
Nginx安装Nginx是一款面向性能设计的HTTP服务器,能反向代理HTTP,HTTPS和邮件相关(SMTP,POP3,IMAP)的协议链接。并且提供了负载均衡以及HTTP缓存。它的设计充分使用异步事件模型,削减上下文调度的开销,提高服务器并发能力。采用了模块化设计,提供了丰富模块的第三方模块。所以关于Nginx,有这些标签:「异步」「事件」「模块化」「高性能」「高并发」「反向代理」「负载均衡」
- 前端缓存详解以及相关性能优化策略
xz鹏
性能优化缓存前端
文章目录前言一、前端缓存概述1.什么是缓存2.什么是前端缓存3.前端缓存分类二、HTTP缓存1.什么是HTTP缓存2.HTTP缓存分类3.HTTP缓存流程图4.强缓存5.协商缓存三、浏览器缓存1.ServiceWorkerCache2.MemoryCache3.DiskCache四、存储型缓存1.Cookie2.WebStorage3.IndexedDB和WebSQL(了解)五、优先级六、前端缓存
- Java 面试题:HTTP缓存:强制缓存和协商缓存--xunznux
xunznux
Javahttp缓存网络协议java笔记后端经验分享
文章目录HTTP缓存强制缓存协商缓存总结以下是整理后的关于HTTP缓存的内容,修正了错误并补充了缺失的知识点:HTTP缓存HTTP缓存是一种在客户端或代理服务器本地存储资源副本的机制,旨在提高访问效率和减少带宽消耗。当客户端再次请求已经缓存的资源时,会优先检查本地缓存是否有效。如果存在有效缓存,直接使用本地缓存数据,而无需再次通过网络获取服务器的响应。这就是HTTP缓存的基本原理。HTTP缓存主要
- nginx的底层理解
村口曹大爷
nginx
Nginx是一个高性能的Web服务器,同时也是一个反向代理服务器、负载均衡器和HTTP缓存器。它的底层设计注重效率和性能,能够支持高并发连接数,最大可以支持约50000个并发连接。以下是Nginx的一些关键特性和底层理解:事件驱动模型:Nginx采用了异步非阻塞的事件驱动模型。这意味着在处理请求时,不需要等待其他操作完成,从而能够同时处理大量并发连接。多进程模型:Nginx使用多进程模型来利用多核
- 【SPA首屏加载速度慢的怎么解决】
Zzexi
vue前端javascript
SPA首屏加载速度慢的怎么解决?SPA(单页面应用)首屏加载速度慢的问题,通常可以通过以下几种方式来解决:减小入口文件体积:这是一种常见的优化手段,通常通过路由懒加载来实现。具体做法是把不同路由对应的组件分割成不同的代码块,待路由被请求的时候会单独打包路由,使得入口文件变小,加载速度大大增加。静态资源本地缓存:通过HTTP缓存,设置Cache-Control、Last-Modified、Etag等
- HTTP查阅手册地址
iuiyiyut
https://developer.mozilla.org/zh-CN/docs/Web/HTTP教程HTTP概述HTTP缓存HTTPcookiesHTTP访问控制(CORS)HTTP的演变Mozillaweb安全引导HTTP消息典型的HTTP会话HTTP/1.x中的连接管理参考文档HTTP首部HTTP请求方法HTTP状态返回码CSP指令工具与资源Firefox开发者工具MozillaObserv
- HTTP缓存技术
踏遍三十六岸
网络缓存网络协议网络http
大家好我是苏麟,今天说说HTTP缓存技术.资料来源:小林coding小林官方网站:小林coding(xiaolincoding.com)HTTP缓存技术HTTP缓存有哪些实现方式?对于一些具有重复性的HTTP请求,比如每次请求得到的数据都一样的,我们可以把这对「请求-响应」的数据都缓存在本地,那么下次就直接读取本地的数据,不必在通过网络获取服务器的响应了,这样的话HTTP/1.1的性能肯定肉眼可见
- [vue源码01] data响应式 和 初始化渲染
woow_wu7
导航[深入01]执行上下文[深入02]原型链[深入03]继承[深入04]事件循环[深入05]柯里化偏函数函数记忆[深入06]隐式转换和运算符[深入07]浏览器缓存机制(http缓存机制)[深入08]前端安全[深入09]深浅拷贝[深入10]DebounceThrottle[深入11]前端路由[深入12]前端模块化[深入13]观察者模式发布订阅模式双向数据绑定[深入14]canvas[深入15]web
- 掌握Web服务器之王:Nginx 学习网站全攻略!
知识分享小能手
学习心得体会编程语言如门前端服务器nginx
介绍:Nginx是一款高性能的Web服务器,同时也是一个反向代理、负载均衡和HTTP缓存服务器。具体介绍如下:轻量级设计:Nginx的设计理念是轻量级,这意味着它在占用最少的系统资源的同时提供高效的服务。高并发能力:Nginx能够处理大量的并发连接,这使得它非常适合于流量大的网站和服务。低内存消耗:Nginx在运行时占用的内存相对较少,这对于节约服务器资源非常有利。丰富的功能:除了作为Web服务器
- HTTP协议笔记
sasaraku.
计算机网络http笔记网络协议
HTTP协议笔记参考:(建议精读)HTTP灵魂之问,巩固你的HTTP知识体系《透视HTTP协议》——chrono目录:1、说说你对HTTP的了解吧。 1.HTTP状态码。 2.HTTP请求头和响应头,其中包括cookie、跨域响应头、Accept相关字段、鉴权token等等。 3.HTTP缓存。 4.HTTP跨域。 5.HTTPS。2、输入网址后到页面显示,浏览器发生了什么3、HTTP的优缺点4、
- CDN相关和HTTP代理
sasaraku.
计算机网络http网络协议网络
CDN相关和HTTP代理参考:《透视HTTP协议》——chrono把这两个放在一起是因为容易搞混,我一开始总以为CDN就是HTTP代理,但是看了极客时间里透视HTTP协议的讲解,感觉又不仅于此,于是专门写下来。先说结论:CDN使用了HTTP缓存代理的技术+DNS负载均衡技术,它是一组分散在不同地理位置的web服务器。什么是HTTP缓存代理意思是这里有个代理服务器,然后它拥有缓存的能力。在HTTP的
- HTTP的强制缓存策略
JX灬君
http缓存策略(强制缓存)浏览器初次访问服务器,服务器返回资源和Cache-Control(服务器端觉得可以被缓存就会加上Cache-control,如果觉得不被缓存就不加)浏览器再次访问服务器,首先会判断有没有设置Cache-Control,然后看Cache-Control设置的时间有没有过期,如果没有过期,直接在本地缓存里获取Cache-Control是否缓存,客户端控制不了,只能服务器端R
- [深入02] 原型链
woow_wu7
导航2021/07/21更新constructor.png2021/07/22更新原型链.png[深入01]执行上下文[深入02]原型链[深入03]继承[深入04]事件循环[深入05]柯里化偏函数函数记忆[深入06]隐式转换和运算符[深入07]浏览器缓存机制(http缓存机制)[深入08]前端安全[深入09]深浅拷贝[深入10]DebounceThrottle[深入11]前端路由[深入12]前端模
- 为什么Nginx被称为“反向”代理呢?
这我可不懂
nginx运维
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备和Web服务器之间的中介或中间人,执行与传统或正向代理相比在相反方向上的功能。让我们详细解释一下主要的区别:正向代理:功能:正向代理位于用户设备(客户端)和互联网之间。它代表客户端访问互联网资源。常见用途:
- 2021前端字节跳动真题解析 (90页) ,拿去不谢
书苏
前言笔者应届生,参加今年春招实习面试,顺利拿到了offer,给大家分享面试经历和面试题,供大家参考一下。希望大家都能顺利通过面试。前端字节(实习)一面自我介绍介绍项目滑动懒加载如何实现如果出现了问题怎么办http状态码讲一下http缓存promise设计方法清理缓存爬楼梯vue响应式原理了解react吗二面介绍一下做过的项目看题说输出:原型链,this,promise实现[[‘a’,‘b’],[‘
- [深入19] 手写Promise
woow_wu7
image导航[深入01]执行上下文[深入02]原型链[深入03]继承[深入04]事件循环[深入05]柯里化偏函数函数记忆[深入06]隐式转换和运算符[深入07]浏览器缓存机制(http缓存机制)[深入08]前端安全[深入09]深浅拷贝[深入10]DebounceThrottle[深入11]前端路由[深入12]前端模块化[深入13]观察者模式发布订阅模式双向数据绑定[深入14]canvas[深入1
- .一次js请求一般情况下有哪些地方会有缓存处理?
m0_46195627
jsjs
29.一次js请求一般情况下有哪些地方会有缓存处理?a.浏览器端存储b.浏览器端文件缓存c.HTTP缓存304d.服务器端文件类型缓存e.表现层&DOM缓存
- 一次js请求一般情况下有哪些地方会有缓存处理
Style_Rx
一次js请求一般情况下有哪些地方会有缓存处理?a.浏览器端存储b.浏览器端文件缓存c.HTTP缓存304d.服务器端文件类型缓存e.表现层&DOM缓存
- 彻底理解浏览器的缓存机制
如果俞天阳会飞
来源:https://mp.weixin.qq.com/s/d2zeGhUptGUGJpB5xHQbOA概述浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的,所以在分析浏览器缓存机制之前,我们先使用图文简单介绍一下HTTP报文,HTTP报文分为两种:HTTP请求(Request)报文,报文格式为:请求行–HTTP头(通用信息头,请求头,实体头)–请求报文主体
- 浏览器——HTTP缓存机制与webpack打包优化
爱喝酸奶的一旬
前端实战http缓存webpack
文章目录概要强缓存定义开启关闭强缓存协商缓存工作机制通过Last-Modified+If-Modified-Since通过ETag+If-None-Match不使用缓存前端利用缓存机制,修改打包方案webpack打包webpack打包名称优化webpack默认的hash值webapck其他hash类型配置webpack打包webpack代码分割优化小结概要在前端开发中,经常接触到JavaScrip
- 顶顶通呼叫中心中间件asrproxy和fs http缓存目录(mod_cti基于FreeSWITCH)
朝思暮柒
呼叫中心FAQ缓存
一、asrproxy缓存目录/ddt/asrproxy/ttsasrproxy缓存目录二、fshttp缓存目录/ddt/fs/storage/http_file_cachehttp缓存目录
- okhttp缓存分析
鹈鹕醍醐
在实际项目开发中,数据的缓存是十分有必要的,一来可以减少服务器端查询压力,二来也能加速反馈时间,在网络良好时实现秒回。服务端的缓存处理服务端无论采用php或者java实现,在业务层都可以使用非常成熟的MemCache或Radis缓存框架,合理配置缓存以减少数据库压力,在发送响应时通过header中的Cache_Control实现更精准的缓存控制策略1.Header中的"Cache_Control"
- Jmeter之配置元件
小杜℃
软件测试javajvm开发语言
配置元件用于设置一些测试过程中的辅助配置信息。配置元件可以创建在任何目录下(包括测试计划、线程组、取样器),添加路径为:右键单击左侧某个菜单-'添加'-'配置元件',如下图所示常用的配置元件有:HTTP信息头管理器、HTTPCookie管理器、HTTP缓存管理器。HTTP信息头管理器默认情况下,JMeter在发送请求时,并不是按照真实情况模拟请求头。比如访问京东首页,JMeter在访问时会自动生成
- JMeter配置元件
卿卿Mui
JMeter
JMeter配置元素CSV数据文件设置HTTP信息头管理器HTTPCookie管理器HTTP缓存管理器HTTP请求默认值BoltConnectionConfigurationDNS缓存管理器FTP默认请求HTTP授权管理器JDBCConnectionConfigurationJava默认请求LDAP扩展请求默认值LDAP默认请求TCP取样器配置密钥库配置用户定义的变量登录配置元件/素简单配置元件计
- jquery ajax 缓存
wangyue4
jqueryajax缓存
在jQuery中使用AJAX请求时,浏览器和服务器共同决定是否缓存响应。默认情况下,对于GET请求,现代浏览器通常会遵循HTTP缓存策略(例如根据Cache-Control、Expires和ETag等头部信息)。然而,jQuery的$.ajax()函数提供了一个可选参数cache来控制AJAX请求的缓存行为。cache:true(默认值可能依赖于具体版本和用法):这意味着jQuery将允许浏览器使
- 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