- ES6笔记总结:第四天(ES6完结)
星河路漫漫
ES6笔记总结es6笔记前端
Xmind鸟瞰图:简单文字总结:node的模块化:1.CommonJS规范:Node.js遵循CommonJS模块规范,该规范定义了如何在服务器环境中实现模块化,包括如何定义模块、如何引入和使用模块。2.模块的定义:每个文件都是一个模块,模块内部定义的变量和函数默认情况下是私有的,即它们只在模块内部可用。3.模块的导出:使用module.exports或exports对象将模块中的变量或函数导出4
- ES6笔记
云囍
一.对象(1)简写①属性varobj={uname,uage};②方法varobj={run(){}}(2)使用...合并对象varobj1={a:1,b:3}varobj2={...obj1};(3)is①类方法(静态方法)varobj3={};varobj4={};varobj5=obj3;console.log(Object.is(obj3,obj4));console.log(Object
- ES6笔记-symbol
小全upup
笔记es6笔记前端
ES6symbol是什么ES5的对象属性名是字符串,这容易造成属性名的冲突。symbol是一种机制,保证每个属性的名字都是独一无二的。这样就从根本上防止属性名冲突。它是一种原始数据类型Symbol,表示独一无二的值。它属于javaScript语言的原生数据类型之一。其他数据类型是,undefinde,null,布尔值(Boolean),字符串(String),数值(Number),大整数(BigI
- ES6笔记
云囍
1.声明与表达式:(a)let:作用域在块里面(b)var:全局注意函数有自己的作用域(c)const:常量(1)常量的值是不能被更改的(2)可以使用const来做预定义处理(3)应用场景1.私有协议a.即时通讯b.与硬件通讯2.预定义数据值网路接口2.解构赋值(1)定义:解构赋值是对赋值运算符的扩展。他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。在代码书写上简洁且易读,语义更加
- ES6笔记总结
雷霆半月斩掉你的板砖
es6笔记前端
首先我们需要了解一下什么是ECMA:ECMA(EuropeanComputerManufacturersAssociation)中文名称为欧洲计算机制造商协会,这个组织的目标是评估、开发和认可电信和计算机标准。1994年后该组织改名为Ecma国际什么是ECMAScript:ECMAScript是由Ecma国际通过ECMA-262标准化的脚本程序设计语言;百度百科:https://baike.bai
- 学习es6笔记(一)面向对象和面向过程
沙滩上的一颗石头
面向过程:就是分析出解决问题需要那些过程和步骤,在用函数实现这些步骤,最后在一步一步的调用这些步骤。它是以步骤来划分问题,性能比较高,容易与硬件相配合,比如单片机。但不够灵活,不太容易维护。他写出来的像蛋炒饭面向对象:分析出解决问题需要哪些对象,再写出这些对象的功能,最后在由对象间的合作与分工来解决问题。它是以对象功能来划分问题,具有封装性,继承性和多态性。比较灵活,容易维护,代码可复用,更适合大
- 学习es6笔记(二)子类继承父类需要使用super()
沙滩上的一颗石头
##在es6中,子类继承父类的方法需要使用super()来调用父类中的构造函数示例```classstr{constructor(x,y){this.x=x;this.y=y;}sing(){console.log(this.x+this.y)}}//继承使用extends继承classsgextendsstr{constructor(x,y){super(x,y);//调用了父类的构造函数}}c
- ES6笔记大全(最新)
wh_fighting1
前端javascriptes6学习
文章目录前言一、ES6是什么?二、语法规范1.let关键字2.const关键字3.变量和对象的解构赋值4、模板字符串5、简化对象和函数写法6、箭头函数7.ES6中函数参数的默认值8.rest参数9.扩展运算符10.Symbol11.迭代器12.生成器13.Set集合14.Map集合前言为什么要学习ES6:ES6的版本变动内容最多,具有里程碑意义;ES6加入许多新的语法特性,编程实现更简单、高效;E
- ES6笔记
慢慢manman
es6es6前端javascript
ES6varconstlet区别varconstlet变量提升有无无块作用域{}有有有同一作用域下,声明同名变量可以不可以不可以声明的值、类型、变量能否改变可以基础数据类型不能改变,引用数据类型可以修改其属性可以暂时性死区域无有有window挂载有无无变量提升:var有变量提升vara=1;console.log(a);//1console.log(a);//undefinedvara=1;//上
- 初学ES6笔记四函数的扩展
Dassily
ES6四初学ES6笔记四函数的扩展
本人的笔记内容来自于[阮一峰老师的ECMAScript6详细内容请看(http://es6.ruanyifeng.com/#docs/array)函数的扩展1.函数参数的默认值ES6可以直接为函数的参数指定默认值。即直接写在参数定义的后面。functionlog(x,y='World'){console.log(x,y);}log('Hello')//HelloWorldlog('Hello','
- ES6笔记————let,箭头函数,剩余参数
枫玄雾隐
es6vue.js前端html5css3
目录一.let,var,const区别letconst区别二,解构1数组解构2对象解构三,箭头函数1基础语法2省略写法3对象方法里的this4apply/call调用时的this5箭头函数中this8箭头函数应用四,剩余函数一.let,var,const区别let关键字用来声明块级变量。--特点就是在{}声明具有块级作用域,var变量无此特点。--防止循环变量编程全局变量。--let关键词无变量提
- Es6笔记之箭头函数与解构赋值
诗霖雪
js笔记javascript前端vue.js
目录箭头函数箭头函数this箭头函数与普通函数的区别解构赋值数组解构对象解构展开运算符与剩余运算符箭头函数箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上。//constfn=function(){//console.log(123)//}//1.箭头函数基本语法constfn=()=>{console.log(123)}fn()//constfn=(x)=
- ES6笔记--深度克隆(深拷贝和浅拷贝)
weixin_55045143
javascript
深度克隆(深拷贝和浅拷贝)拷贝数据:基本数据类型:拷贝后会生成一份新的数据,修改拷贝以后的数据不会影响原数据对象/数组拷贝后不会生成新的数据,而是拷贝引用,修改拷贝后的数据会影响原数据拷贝数据的方法:1.直接赋值给一个变量:浅拷贝修改拷贝以后的数据会影响原数据2.Object.assign():浅拷贝3.Array.prototype.concat():浅拷贝,可用于合并数组,如果传值。4.Arr
- ES6笔记:模板字符串和箭头函数
小涂异想世界
${变量名/表达式/有返回值的函数}箭头函数的内容:原来的函数function(){}箭头函数:1.写法更简单letaa=()=>如果只有一行代码可以不写大括号;letaa=()=>如果只有一行代码可以不写大括号这行代码的执行结果直接当做返回值letaa=()=>{return}返回值参数只有一个的话小括号也可也省略2.this指向箭头函数是没有this的,一旦出现this就会向上级找,找上级的t
- 初学ES6笔记十一Set 和 Map 数据结构
Dassily
ES6十一初学ES6笔记十一Set和Map数据结构
本人的笔记内容来自于[阮一峰老师的ECMAScript6详细内容请看(http://es6.ruanyifeng.com/#docs/array)Set和Map数据结构一、set基本用法它类似于数组,但是成员的值都是唯一的,没有重复的值。set本身是一个构造函数,用来生成Srt数据结构。consts=newSet();[2,3,5,4,5,2,2].forEach(x=>s.add(x));for
- ES6_note
glAkihi
ES6笔记es6-解构数组的解构赋值let[a,b,c]=[1,2,3];这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。let[foo,[[bar],baz]]=[1,[[2],3]];foo//1bar//2baz//3let[,,third]=["foo","bar","baz"];third//"baz"let[x,,y]=[1,2,3];x//1y//3l
- ES6笔记一----认识ES6、let变量声明和特性总结
ABU_MOlI_ITUI
ES6es6
介绍ES6ES6:ECMA(EuropeanComputerManufacturersAssociation)欧洲计算机制造商协会就是规范Javascript的计算机标准语言ECMA:是由ecma通过ECMA-262规范语言ECMA-262所有标准列表查看http://www.ecma-international.org/publications/standards/Standard.htmECM
- ES6笔记1
lby23456
一.对象(1)简写①属性varobj={uname,uage};②方法varobj={run(){}}(2)使用...合并对象varobj1={a:1,b:3}varobj2={...obj1};(3)is①类方法(静态方法)varobj3={};varobj4={};varobj5=obj3;console.log(Object.is(obj3,obj4));console.log(Object
- ES6笔记1:箭头函数
_百草_
格式:(参数)=>{函数体}//多个参数需要括号letsum=(num1,num2)=>{returnnum1+num2;};//只有一个参数:可以不写括号letdouble=(x)=>{return2*x};letdouble=x=>{return2*x};//无参数letgetRandom=()=>{returnMath.random()}箭头函数在参数和箭头之间不能换行;但在=>之后,或()
- 年糕のES6笔记之Generator函数
李年糕子
前言(重点)这一系列的文章是我搜集了很多文章和资料综合在一起整理出的一个适合我自己学习的笔记,并不是原创内容。为什么放在最前面,因为我觉得原作者才是最辛苦哒。笔记也是持续更新的,若有错误欢迎提出。学习资料:ECMAScript6入门:http://es6.ruanyifeng.com/#docs/generator你知道为什么会有Generator吗:https://juejin.im/post/
- ES6笔记(五)Array类型的扩展、扩展运算符
leo_heart_14
前端javascript前端开发语言
ES6Array类型的扩展简介数组遍历for...of新增的Array方法Array.form()Array.of()fill()find()与findIndex()copyWithin()扩展运算符含义应用简介 ES6对JS原生的各个数据类型都进行了扩展,对于Array类型:新增了for…of的遍历方式;扩展了一些新方法;新增扩展运算符,用于数组的解构。数组遍历for…of语法:for(var
- es6笔记
jiuyunmeng
一、es6声明变量的方式var命令和function命令,let和const命令和import命令和class命令。二、es6顶层对象的属性ES6为规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩。var
- ES6笔记
lby23456
1.声明与表达式:(a)let:作用域在块里面(b)var:全局注意函数有自己的作用域(c)const:常量(1)常量的值是不能被更改的(2)可以使用const来做预定义处理(3)应用场景1.私有协议a.即时通讯b.与硬件通讯2.预定义数据值网路接口2.解构赋值(1)定义:解构赋值是对赋值运算符的扩展。他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。在代码书写上简洁且易读,语义更加
- ES6笔记-函数的拓展
望溪行
ES6笔记
本文是学习ES6根据网上整理的笔记1.函数参数的默认值ES6之前不能为函数的参数直接设定默认值functionlog(x,y){if(typeofy==='undefined'){y='World';}console.log(x,y);}log('Hello')//HelloWorldlog('Hello','China')//HelloChinalog('Hello','')//HelloWor
- ggggxc学习笔记----ES6笔记II----变量、解构、对象、数组
gaoxiaochan
ES6学习笔记javascriptes6
一、变量:let介绍:在es5中,我们通常使用var声明一个变量,但是var有很多特性与常规的编程语言都不太相同,在es6中,又提供了与常规语言类似的声明变量的方法。let对比var有如下特点:(1)变量声明不会被提升,即在变量声明之前无法使用该变量(2)具有局部作用域,即let声明的变量只能在对应代码块中使用(3)不允许重复声明。二、const:用于声明常量,与let具有相同的特性。其他特性:c
- ES6笔记1(let变量声明以及声明特性,const声明常量以及特点,变量的解构赋值,模板字符串,简化对象写法,箭头函数,箭头函数的实践)
明灭18
笔记es6
ES6let变量声明以及声明特性const声明常量以及特点变量的解构赋值模板字符串简化对象写法箭头函数箭头函数的实践ES全称EcmaScript,是脚本语言的规范,而平时经常编写的JavaScript,是EcmaScript的一种实现,所以ES新特性其实指得就是JavaScript的新特性let变量声明以及声明特性1、声明变量leta;letb,c,d;letf=234,g='tt';h=[];2
- ES6笔记(一)
同Young不同样
ECMAScript6.0简称ES6,是JavaScript语言的下一代标准。ECMAScript和JavaScript的关系是:ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现。let命令ES6新增了let命令,用于声明变量,与var的作用相似,let与var的不同之处在于通过let声明的变量只在let命令所在的代码块中有效。for循环的计数
- es6笔记-let、const、var的区别
就是三木啊
javascriptes6笔记
let、const、var的区别变量提升var声明的变量存在变量提升,在声明前可以调用,直为undefindconsole.log(a);vara=1;相当于:vara;console.log(a);a=1;let和const不存在变量提升,变量要在声明前调用,否则报错console.log(a);//leta=1;报错如下:暂时性死区var不存在暂时性死区let和const存在暂时性死区,声明变
- ES6笔记(一):类的基本用法总结
www_ye
一、基本写法a.classExample{constructor(a,b){this.a=a;this.b=b;}say(){return'a:'+this.a+',b:'+this.b;}}b.typeofExample//"function"Example===Example.prototype.constructor//truec.lete=newExample();e.constructo
- 学习es6笔记-环境部署
咬了一口的苹果灬
环境部署笔者作为一个前端怎么能不会es6,所以规划学习es6顺便进阶到react(虽然写过一段时间的reactnative,但是没有系统的学习)。有想一起学习的小伙伴们不妨一起加入,交流学习☺。编辑工具笔者使用的是vscode,因为浏览器支持的问题,将es6转换为es5,这并不影响用es6的功能,转换的工具是babel,mac环境下学习。新建自己的工程目录随意在本地新建一个文件夹,这是笔者练习的工
- github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected]"
- ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
- 读书笔记-jquey+数据库+css
chengxuyuancsdn
htmljqueryoracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
- javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
- shiro入门学习
cugfy
javaWeb框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
- Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
- navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
- unicode转换成中文
adminjun
unicode编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
- 一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
- 设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
- Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
- [Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
- 【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
- Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
- Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
- 读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
- HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
- maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
- linux shell 中文件编码查看及转换方法
daizj
shell中文乱码vim文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
- MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
- 数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
- Java反转字符串
dyy_gusi
java反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
- UI设计中我们为什么需要设计动效
gcq511120594
UIlinux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
- JBOSS服务部署端口冲突问题
HogwartsRow
java应用服务器jbossserverEJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
- 第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdbreidstwemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
- ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
- 程序员解决问题的60个策略
pda158
框架工作单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
- Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
- JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它