Java开发中的关键技术
1、 servlet 技术
Servlet (Server Applet),全称Java Servlet。是用Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web 内容。狭义的Servlet 是指Java 语言实现的一个接口,广义的Servlet 是指任何实现了这个Servlet 接口的类。Servlet 运行于支持Java 的应用服务器中。从实现上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下Servlet 只用来扩展基于HTTP 协议的Web 服务器。
Servlet 技术的实现过程:
最早支持servlet 技术的是JavaSoft 的Java Web Server,此后,一些其他的基于Java 的Web Server开始支持标准的Servlet API,Servlet 的主要功能在于交互式地浏览和修改数据,生成动态Web 内容。这个过程为:
1) 客户端发送请求至服务器
2) 服务器将请求发送至Servlet ;
3) Servlet 生成响应内容并将其传给服务器,响应内容动态生成,通常取决于客户
端的请求;
4) 服务器将响应返回给客户端。
Servlet 的生命周期:
1. 客户端请求该Servlet ;
2. 加载Servlet 类到内存;
3. 实例化并调用init()方法初始化该Servlet ;
4. Service()根据请求方法的不同调用doGet()或doPost()等实现方法;
5. Destory();
对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象) ,当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。
Servlet 技术相比传统的CGI 技术或类似CGI 技术的技术相比,Java Servlet 具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。
* 方便
Servlet 提供了大量的实用工具例程,例如自动地解析和解码 HTML 表单数据、读取和设置 HTTP 头、处理Cookie 、跟踪会话状态等。
* 功能强大
在Servlet 中,许多使用传统 CGI 程序很难完成的任务都可以轻松地完成。例如,Servlet 能够直接和 Web 服务器交互,而普通的 CGI 程序不能。Servlet 还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
* 可移植性好
Servlet 用 Java 编写,Servlet API具有完善的标准。因此,为 IPlanet Enterprise Server 写的 Servlet 无需任何实质上的改动即可移植到 Apache 、MicrosoftIIS 或者 WebStar 。几乎所有的主流服务器都直接或通过插件支持 Servlet 。
* 节省投资
不仅有许多廉价甚至免费的 Web 服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持 Servlet 的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。
2、 JSP 技术
JSP 全名为Java Server Pages,中文名叫java 服务器页面,其根本是一个简化的Servlet
设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似ASP 技术,它是在传统的网页HTML (标准通用标记语言的子集)文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和JSP 标记(tag),从而形成JSP 文件,后缀名为(*.jsp)。用JSP 开发的Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行。它实现了Html 语法中的java 扩展(以形式)。JSP 与Servlet 一样,是在服务器端执行的。通常返回给客户端的就是一个HTML 文本,因此客户端只要有浏览器就能浏览。JSP 技术使用Java 编程语言编写类XML 的tags 和scriptlets ,来封装产生动态网页的处理逻辑。网页还能通过tags 和scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web 的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet 中分离出来。Java Servlet 是JSP 的技术基础,而且大型的Web 应用程序的开发需要Java Servlet和JSP 配合才能完成。JSP 具备了Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP 技术主要有以下的一些特点:
1) 将内容的生成和显示进行分离
用JSP 技术,Web 页面开发人员可以使用HTML 或者XML 标识来设计和格式
化最终页面,并使用JSP 标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans 组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans 中,所以Web 管理人员和页面设计者,能够编辑和使用JSP 页面,而不影响内容的生成。
2) 可重用组件
绝大多数JSP 页面依赖于可重用的、跨平台的组件(JavaBeans 或者Enterprise
JavaBeans 组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3) 采用标识
Web 页面开发人员不会都是熟悉脚本语言的编程人员。JSP 技术封装了许多功
能,这些功能是在易用的、与JSP 相关的XML 标识中进行动态内容生成所需要的。标准的JSP 标识能够访问和实例化JavaBeans 组件,设置或者检索组件属性,下载Applet ,以及执行用其他方法更难于编码和耗时的功能。
4) 适应平台
几乎所有平台都支持Java ,JSP+JavaBeans几乎可以在所有平台下通行无阻。
从一个平台移植到另外一个平台,JSP 和JavaBeans 甚至不用重新编译,因为Java 字节码都是标准的与平台无关的。
5) 数据库连接
Java 中连接数据库的技术是JDBC ,Java 程序通过JDBC 驱动程序与数据库相连,
执行查询、提取数据等操作。Sun 公司还开发了JDBC -ODBC bridge ,利用此技术Java 程序可以访问带有ODBC 驱动程序的数据库,大多数数据库系统都带有ODBC 驱动程序,所以Java 程序能访问诸如Oracle 、Sybase 、MS SQL Server和MS Access等数据库。
JSP 技术图解
3、 MVC 框架
MVC 全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC 被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC 是一种使用MVC 设计创建的Web 应用程序的模式:
∙ Model (模型)表示应用程序核心(比如数据库记录列表)。
∙ View (视图)显示数据(数据库记录)。 ∙ Controller
(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML 、CSS 和 JavaScript 的完全控制。
Model (模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View (视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller (控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
MVC 框架图解
MVC 组件类型的关系和功能
MVC 框架的优点:
耦合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
重用性高
随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC 模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任
何WEB (HTTP )浏览器或者无线浏览器(wap ),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML 来表示,但是也有可能用WAP 来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能。
生命周期成本低
MVC 使开发和维护用户接口的技术含量降低。
部署快
使用MVC 框架使得开发时间得到相当大的减少,它使程序员集中精力于业务逻辑,界面程序员集中精力于表现形式上。
可维护性高
分离视图层和业务逻辑层使得WEB 应用更易于维护和修改。
有利软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
4、 Struts技术
Struts 是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC 模式,能够很好地帮助java 开发者利用J2EE 开发Web 应用。和其他的java 架构一样,Struts 也是面向对象设计,将MVC 模式" 分离显示逻辑和业务逻辑" 的能力发挥得淋漓尽致。Struts 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans ,ResourceBundles 与XML 等标准技术,以及 Jakarta Commons 的一些类库。Struts 由一组相互协作的类(组件)、Servlet 以及jsp tag lib组成。基于struts 构架的web 应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC 设计模式的一种变化类型。
Struts 的流程:
服务器启动后,根据web.xml 加载ActionServlet 读取struts-config.xml 文件内容到内存。以登录为例:第一次进login.jsp 会先实例化Form 、把默认值(String 默认为空字符串,整型默认为0)赋给表单元素。输入用户名密码提交表单、提交到action 属性的login.action ,通过ActionServlet 读struts-config.xml 文件找到 action 下的path 属性找到.action ,通过name 属性找form-beans 中的form-bean 的name 属性得到ActionForm 的包名类名,先实例化form ,把表单的值填充给form ,调用form 的validate 方法验证、ActionErrors 返回null 表示验证通过,否则失败返回input 指定的页面. 验证通过会实例化Action ,执行Action 的execute 方法。
Struts 的实现流程
Struts 的优点:
Struts 跟Tomcat 等诸多的Apache 项目一样,是开源软件,这是它的一大优点,使开发者能够更深入的了解其内部的实现机制。
除此之外,struts 的优点主要集中体现在两个方面:Taglib和页面导航。Taglib 是Struts 的标签库,灵活应用,能大大提供开发的效率。另外,就是目前国内的JSP 开发者而言,除了使用JSP 自带的常用标签之外,很少开发自己的标签,Struts 是一个很好的起点。
关于页面导航,能够使系统的脉络更加清晰,通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有莫大的好处,尤其是另外一批开发者接手这个项目时,这种优势体现的更加明显。
5、 Hibernate 技术
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP的Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB 的J2EE 架构中取代CMP ,完成数据持久化的重任。
Hibernate 的核心类和接口一共有6个,分别为:Session、SessionFactory 、
Transaction 、Query 、Criteria 和Configuration 。这6个核心类和接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
Hibernate 中的核心接口与类
Hibernate 的工作原理:
1、通过Configuration().configure();读取并解析hibernate.cfg.xml 配置文件。
2、由hibernate.cfg.xml 中的读取解析映射信息。
3、通过config.buildSessionFactory();//得到sessionFactory 。
4、sessionFactory.openSession();//得到session 。
5、session.beginTransaction();//开启事务。
6、persistent operate;
7、session.getTransaction().commit();//提交事务
8、关闭session;
9、关闭sessionFactory;
Hibernate 的优点:
1、封装了jdbc ,简化了很多重复性代码。
2、简化了DAO 层编码工作,使开发更对象化了。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate 代码。
4、支持透明持久化,因为hibernate 操作的是纯粹的(pojo )java 类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
6、 Spring技术
Spring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的JavaBean 来完成以前只可能由EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。Spring 的核心是控制反转(IoC )和面向切面(AOP )。简单来说,Spring 是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
Spring 框架的特征:
轻量——从大小与开销两方面而言Spring 都是轻量的。完整的Spring
框架可以在一个大小只有1MB 多的JAR 文件里发布。并且Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于Spring 的特定类。
控制反转——Spring 通过一种称作控制反转(IoC )的技术促进了低耦合。当应用了IoC ,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC 与JNDI 相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing )和事务(transaction )管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean 如何被创建——基于一个可配置原型(prototype ),你的bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的EJB 容器,它们经常是庞大与笨重的,难以使用。
框架——Spring 可以将简单的组件配置、组合成为复杂的应用。在Spring 中,应用对象被声明式地组合,典型地是在一个XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
MVC ——Spring 的作用是整合,但不仅仅限于整合,Spring 框架可以被看做是一个企业解决方案级别的框架。客户端发送请求,服务器控制器(由DispatcherServlet 实现的) 完成请求的转发,控制器调用一个用于映射的类HandlerMapping ,该类用于将请求映射到对应的处理器来处理请求。HandlerMapping 将请求映射到对应的处理器Controller (相当于Action )在Spring 当中如果写一些处理器组件,一般实现Controller 接口,在Controller 中就可以调用一些Service 或DAO 来进行数据操作 ModelAndView 用于存放从DAO 中取出的数据,还可以存放响应视图的一些数据。如果想将处理结果返回给用户,那么在Spring 框架中还提供一个视图组件ViewResolver ,该组件根据Controller 返回的标示,找到对应的视图,将响应response 返回给用户。
Spring 技术体系结构
7、 JavaScript技术
JavaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML (标准通用标记语言下的一个应用)网页上使用,用来给HTML 网页增加动态功能。
JavaScript 的组成部分:
ECMAScript ,描述了该语言的语法和基本对象。
文档对象模型(DOM ),描述处理网页内容的方法和接口。
浏览器对象模型(BOM ),描述与浏览器进行交互的方法和接口。
JavaScript 脚本语言的特点:
(1)脚本语言。JavaScript 是一种解释型的脚本语言,C 、C++等语言先编译后执行, 而JavaScript 是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript 是一种基于对象的脚本语言, 它不仅可以创建对象, 也能使用现有的对象。
(3)简单。JavaScript 语言中采用的是弱类型的变量类型, 对使用的数据类型未做出严格的要求, 是基于Java 基本语句和控制的脚本语言, 其设计简单紧凑。
(4)动态性。JavaScript 是一种采用事件驱动的脚本语言, 它不需要经过Web 服务器就可以对用户的输入做出响应。在访问一个网页时, 鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript 都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript 脚本语言不依赖于操作系统, 仅需要浏览器的支持。因此一个JavaScript 脚本在编写后可以带到任意机器上使用, 前提上机器上的浏览器支持JavaScript 脚本语言, 目前JavaScript 已被大多数的浏览器所支持。
8、 Json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript 的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于C 语言家族的习惯(包括C 、C++、C#、Java 、JavaScript 、Perl 、Python 等)。这些特性使JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率) 。
JSON 的基础结构:
1、对象:对象在js 中表示为“{}”括起来的内容,数据结构为 {key:value,key :value,...}的键值对的结构,在面向对象的语言中,key 为对象的属性,value 为对应的属性值,所以很容易理解,取值方法为对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。
2、数组:数组在js 中是中括号“[]”括起来的内容,数据结构为
["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。
JSON 的具体形式:
1) 对象是一个无序的“名称/值”对的集合
2) 数组是值的有序集合
3) 值可以是双引号括起来的字符串,数值,true ,false ,null ,对象或者数组。
这些结构可以嵌套。
4) 字符串是由双引号包围的任意数量Unicode 字符的集合,使用反斜线转义。
一
个字符即一个单独的字符串,字符串与
C 或者Java 的字符串非常相似。
5) 数值也与C 或者Java 的数值非常相似,除去未使用的八进制和十六进制格式。
9、 JQuery技术
JQuery
是继
prototype 之后又一个优秀的Javascript 库。它是轻量级的js 库,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery 使用户能更方便地处理HTML (标准通用标记语言下的一个应用)、events 、实现动画效果,并且方便地为网站提供AJAX 交互。jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery 能够使用户的html 页面保持代码和html 内容分离,也就是说,不用再在html 里面插入一堆js 来调用命令了,只需要定义id 即可。
jQuery 是免费、开源的,使用MIT 许可协议。jQuery 的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM 元素、制作动画效果、事件处理、使用Ajax 以及其他功能。除此以外,jQuery 提供API 让开发者编写插件。其模块化的使用方式
使开发者可以很轻松的开发出功能强大的静态或动态网页。
JQuery 技术的特点:
1) 动态特效
2) AJAX
3) 通过插件来扩展
4) 方便的工具-例如浏览器版本控制
5) 渐进增强
6) 链式调用
7) 多浏览器支持,支持Internet Explorer、Opera 、FireFox 、Safari 、Chrome 等
浏览器。
10、 HTML5技术
万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML )的第五次重大修改。
HTML5的设计目的是为了在移动设备上支持多媒体。新的语法特征被引进以支持这一点,如video 、audio 和canvas 标记。HTML5还引进了新的功能,可以真正改变用户与文档的交互方式,包括:
·新的解析规则增强了灵活性
·新属性
·淘汰过时的或冗余的属性
·一个HTML5文档到另一个文档间的拖放功能
·离线编辑
·信息传递的增强
·详细的解析规则
·多用途互联网邮件扩展(MIME )和协议处理程序注册
·在SQL 数据库中存储数据的通用标准(Web SQL)
HTML5的特性:
语义特性(Class :Semantic )
HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa 的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web 。
本地存储特性(Class: OFFLINE & STORAGE)
基于HTML5开发的网页APP 拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一)和API 说明文档。
设备兼容特性 (Class: DEVICE ACCESS)
从Geolocation 功能的API 文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优势。HTML5提供了前所未有的数据与应用接入开放接口。使外部应用可以直接与浏览器内部的数据直接相连,例如视频影音可直接与microphones 及摄像头相联。
连接特性(Class: CONNECTIVITY)
更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets 就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。
网页多媒体特性(Class: MULTIMEDIA)
支持网页端的Audio 、Video 等多媒体功能,与网站自带的APPS ,摄像头,影音功能相得益彰。
三维、图形及特效特性(Class: 3D, Graphics & Effects)
基于SVG 、Canvas 、WebGL 及CSS3的3D 功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。
性能与集成特性(Class: Performance & Integration)
没有用户会永远等待你的Loading ——HTML5会通过XMLHttpRequest2等技术,解决以前的跨域等问题,帮助您的Web 应用和网站在多样化的环境中更快速的工作。
CSS3特性(Class: CSS3)
在不牺牲性能和语义结构的前提下,CSS3中提供了更多的风格和更强的效果。此外,较之以前的Web 排版,Web 的开放字体格式(WOFF )也提供了更高的灵活性和控制性。
HTML5的优点:
1、提高可用性和改进用户的友好体验;
2、有几个新的标签,这将有助于开发人员定义重要的内容;
3、可以给站点带来更多的多媒体元素(视频和音频) ;
4、可以很好的替代FLASH 和Silverlight ;
5、当涉及到网站的抓取和索引的时候,对于SEO 很友好;
6、将被大量应用于移动应用程序和游戏;
7、可移植性好。