1.HTML与 CSS 1css
1.1 HTML 1html
1.2 HTML5 2html5
1.2.1 HTML5的特性 3程序员
1.3 CSS 4spring
2.JavaScript 6数据库
2.1特性 7编程
2.2编程 8canvas
3.Spring 8设计模式
3.1框架特征 9跨域
3.2特性 10
3.3特色 10
4.Spring MVC 12
4.1框架 12
4.2优势 12
4.3经常使用注解 12
结论 13
参考文献 14
超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。 “超文本”就是指页面内能够包含图片、连接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
超文本标记语言(初版)——在1993年6月做为互联网工程工做小组(IETF)工做草案发布(并不是标准):
HTML 2.0——1995年11月做为RFC 1866发布,在RFC 2854于2000年6月发布以后被宣布已通过时
HTML 3.2——1997年1月14日,W3C推荐标准
HTML 4.0——1997年12月18日,W3C推荐标准
HTML 4.01(微小改进)——1999年12月24日,W3C推荐标准
HTML5 —— 2014年10月29日,万维网联盟宣布,通过接近8年的艰苦努力,该标准规范终于制定完成。
HTML最基本的就是页面。在WWW上的一个超媒体文档称之为一个页面(page)。做为一个组织或我的在万维网上开始点的页面称为主页Homepage,或首页,主页中一般包括有指向其余相关页面或其余节点的指针(超级连接)。在逻辑上将视为一个总体的一系列页面的有机集合称为网站(Website或Web)。Web页面也就是一般所说的网页,在这里不做区分。
HTML是一种规范,一种标准,它经过标记符号来标记要显示的网页中的各个部分。网页文件自己是一种文本文件,经过在文本文件中添加标记符,能够告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,而后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不中止其解释执行过程,编制者只能经过显示效果来分析出错缘由和出错部位。但须要注意的是,对于不一样的浏览器,对同一标记符可能会有不彻底相同的解释,于是可能会有不一样的显示效果。
HTML之因此称为超文本标记语言,是由于文本中包含了所谓“超级连接”点------就是一种URL指针,经过激活(点击)它,可以使浏览器方便地获取新的网页。这也是HTML得到普遍应用的最重要的缘由之一。因而可知,网页的本质就是HTML,经过结合使用其余的Web技术(如:脚本语言、CGI、组件等),能够创造出功能强大的网页。于是,HTML是Web编程的基础,也就是说万维网是创建在超文本基础之上的。
一个网页对应于一个HTML文件,HTML文件以.htm或.html为扩展名。可使用任何可以生成TXT类型源文件的文本编辑来产生HTML文件。 标准的HTML文件都具备一个基本的总体结构,即HTML文件的开头与结尾标志和HTML的头部与实体两大部分。有3个双标记符用于页面总体结构的确认。
在原有的HTML的基础上,为了适应当前技术的发展和用户的需求制定了新的标准。这就是HTML5。标准通用标记语言下的一个应用HTML标准自1999年12月发布的HTML4.01后,后继的HTML5和其它标准被束之高阁,为了推进Web标准化运动的发展,一些公司联合起来,成立了一个叫作 Web Hypertext Application Technology Working Group (Web超文本应用技术工做组 -WHATWG) 的组织。WHATWG 致力于 Web 表单和应用程序,而W3C(World Wide Web Consortium,万维网联盟) 专一于XHTML2.0。在 2006 年,双方决定进行合做,来建立一个新版本的 HTML。HTML5将会取代1999年制定的HTML 4.01、XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求,为桌面和移动平台带来无缝衔接的丰富内容。
HTML5还有望成为梦想中的“开放Web平台”(Open Web Platform)的基石,如能实现可进一步推进更深刻的跨平台Web应用。接下来,W3C将致力于开发用于实时通讯、电子支付、应用开发等方面的标准规范,还会建立一系列的隐私、安全防御措施。
HTML5的设计目的是为了在移动设备上支持多媒体。新的语法特征被引进以支持这一点,如video、audio和canvas 标记。HTML5还引进了新的功能,能够真正改变用户与文档的交互方式,包括:新的解析规则加强了灵活性、新属性、淘汰过期的或冗余的属性、一个HTML5文档到另外一个文档间的拖放功能、离线编辑、 信息传递的加强、详细的解析规则、多用途互联网邮件扩展(MIME)和协议处理程序注册。在SQL数据库中存储数据的通用标准(Web SQL)。
(1)语义特性(Class:Semantic)
HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。
(2)本地存储特性(Class: OFFLINE & STORAGE)
基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一)和API说明文档。
(3)设备兼容特性 (Class: DEVICE ACCESS)
从Geolocation功能的API文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优点。HTML5提供了史无前例的数据与应用接入开放接口。使外部应用能够直接与浏览器内部的数据直接相连,例如视频影音可直接与microphones及摄像头相联。
(4)链接特性(Class: CONNECTIVITY)
更有效的链接工做效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流获得了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性可以帮助咱们实现服务器将数据“推送”到客户端的功能。
(5)网页多媒体特性(Class: MULTIMEDIA)
支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音功能相得益彰。
(6)三维、图形及特效特性(Class: 3D, Graphics & Effects)
基于SVG、Canvas、WebGL及CSS3的3D功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。
(7)性能与集成特性(Class: Performance & Integration)
没有用户会永远等待你的Loading——HTML5会经过XMLHttpRequest2等技术,解决之前的跨域等问题,帮助您的Web应用和网站在多样化的环境中更快速的工做。
(8)CSS3特性(Class: CSS3)
在不牺牲性能和语义结构的前提下,CSS3中提供了更多的风格和更强的效果。此外,较之之前的Web排版,Web的开放字体格式(WOFF)也提供了更高的灵活性和控制性。CSS将在下一小节中讨论。
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不只能够静态地修饰网页,还能够配合各类脚本语言动态地对网页各元素进行格式化。
CSS 可以对网页中元素位置的排版进行像素级精确控制,支持几乎全部的字体字号样式,拥有对网页对象和模型样式编辑的能力。CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它能够实现修改一个小的样式更新与之相关的全部页面元素。CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和现实的方式。CSS样式能够直接存储于HTML网页或者单独的样式单文件。不管哪种方式,样式单包含将样式应用到指定类型的元素的规则。外部使用时,样式单规则被放置在一个带有文件扩展名_css的外部样式单文档中。
样式规则是可应用于网页中元素,如文本段落或连接的格式化指令。样式规则由一个或多个样式属性及其值组成。内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页经过一个特殊标签连接外部样式单。
名称CSS中的“层叠(cascading)”表示样式单规则应用于HTML文档元素的方式。具体地说,CSS样式单中的样式造成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先级由CSS根据这个层次结构决定,从而实现级联效果。
整体来讲,CSS具备如下特色:
(1)丰富的样式定义
CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;容许为任何元素建立边框,以及元素边框与其余元素间的距离,以及元素边框与元素内容间的距离;容许随意改变文本的大小写方式、修饰方式以及其余页面效果。
(2)易于使用和修改
CSS能够将样式定义在HTML元素的style属性中,也能够将其定义在HTML文档的header部分,也能够将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表能够将全部的样式声明统一存放,进行统一管理。
另外,能够将相一样式的元素进行归类,使用同一个样式进行定义,也能够将某个样式应用到全部同名的HTML标签中,也能够将一个CSS样式指定到某个页面元素中。若是要修改样式,咱们只须要在样式列表中找到相应的样式声明进行修改。
(3)多页面应用
CSS样式表能够单独存放在一个CSS文件中,这样咱们就能够在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中均可以将其引用。这样就能够实现多个页面风格的统一。
(4)层叠
简单的说,层叠就是对一个元素屡次设置同一个样式,这将使用最后一次设置的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其余样式,就能够针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。
(5)页面压缩
在使用HTML定义页面效果的网站中,每每须要大量或重复的表格和font元素造成各类规格的文字样式,这样作的后果就是会产生大量的HTML标签,从而使页面文件的大小增长。而将样式的声明单独放到CSS样式表中,能够大大的减少页面的体积,这样在加载页面时使用的时间也会大大的减小。另外,CSS样式表的复用更大程序的缩减了页面的体积,减小下载的时间。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,普遍用于客户端的脚本语言,最先是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增长动态功能。
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。由于Netscape与Sun合做,Netscape管理层但愿它外观看起来像Java,所以取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。为了取得技术优点,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript一样可在浏览器上运行。为了统一规格,由于JavaScript兼容于ECMA标准,所以也称为ECMAScript。
JavaScript是一种属于网络的脚本语言,已经被普遍用于Web应用开发,经常使用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。一般JavaScript脚本是经过嵌入在HTML中来实现自身的功能的。
是一种解释性脚本语言(代码不进行预编译)。主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。能够直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。跨平台特性,在绝大多数浏览器的支持下,能够在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
Javascript脚本语言同其余语言同样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则能够完成较复杂的信息处理。嵌入动态文本于HTML页面,对浏览器事件作出响应,读写HTML元素,在数据被提交到服务器以前验证数据,检测访客的浏览器信息,控制cookies,包括建立和修改等,基于Node.js技术进行服务器端编程。
JavaScript脚本语言具备如下特色:
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程当中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不只能够建立对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未作出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不须要通过Web服务器就能够对用户的输入作出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操做JavaScript均可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操做系统,仅须要浏览器的支持。所以一个JavaScript脚本在编写后能够带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。
不一样于服务器端脚本语言,例如PHP与ASP,JavaScript主要被做为客户端脚本语言在用户的浏览器上运行,不须要服务器的支持。因此在早期程序员比较青睐于JavaScript以减小对服务器的负担,而与此同时也带来另外一个问题:安全性。而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优点大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。
JavaScript是一种脚本语言,其源代码在发往客户端运行以前不需通过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,并且在JavaScript中,若是一条运行不了,那么下面的语言也没法运行。而其解决办法就是于使用try{}catch(){}︰
1 2 3 4 5 6 7 8 9 10 11 12 13 |
console.log("a");//这是正确的 console.log("b");//这是正确的 console.logg("c");//这是错误的,而且到这里会停下来 console.log("d");//这是正确的 console.log("e");//这是正确的
/*解决办法*/ try{console.log("a");}catch(e){}//这是正确的 try{console.log("b");}catch(e){}//这是正确的 try{console.logg("c");}catch(e){}//这是错误的,可是到这里不会停下来,而是跳过 try{console.log("d");}catch(e){}//这是正确的 try{console.log("e");}catch(e){}//这是正确的
|
Javascript被归类为直译语言,由于主流的引擎都是每次运行时加载代码并解译。V8是将全部代码解译后再开始运行,其余引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提升性能,称为实时编译),但因为V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),所以在不一样的测试上,二者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行以前,必须通过编译,将代码编译为机器码,再加以运行。
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson建立。简单来讲,Spring是一个分层JavaSE/EEfull-stack(一站式) 轻量级开源框架。
轻量——从大小与开销两方面而言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的这些特征使你可以编写更干净、更可管理、而且更易于测试的代码。它们也为Spring中的各类模块提供了基础支持。
强大的基于 JavaBeans的采用控制反转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组件更加快捷简易。一个可用于从 applet 到 Java EE 等不一样运行环境的核心 Bean 工厂。数据库事务的通常化抽象层,容许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。内建的针对 JTA 和 单个 JDBC 数据源的通常化策略,使 Spring 的事务支持不要求 Java EE 环境,这与通常的 JTA 或者 EJB CMT 相反。
JDBC 抽象层提供了有针对性的异常等级(再也不从SQL异常中提取原始代码), 简化了错误处理, 大大减小了程序员的编码量. 再次利用JDBC时,你无需再写出另外一个 '终止' (finally) 模块. 而且面向JDBC的异常与Spring 通用数据访问对象(Data Access Object) 异常等级相一致.以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的反转控制方便特性来全面支持, 解决了许多典型的Hibernate集成问题. 全部这些所有听从Spring通用事务处理和通用数据访问对象异常等级规范.灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者经过策略接口将拥有对该框架的高度控制,于是该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层能够轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。提供诸如事务管理等服务的面向切面编程(AOP)框架。
(1)方便解耦,简化开发
经过Spring提供的IoC容器,咱们能够将对象之间的依赖关系交由Spring进行控制,避免硬编码所形成的过分程序耦合。有了Spring,用户没必要再为单实例模式类、属性文件解析等这些很底层的需求编写代码,能够更专一于上层的应用。
(2)AOP编程的支持
经过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能能够经过AOP轻松应付。
(3)声明式事务的支持
在Spring中,咱们能够从单调烦闷的事务管理代码中解脱出来,经过声明式方式灵活地进行事务的管理,提升开发效率和质量。
(4)方便程序的测试
能够用非容器依赖的编程方式进行几乎全部的测试工做,在Spring里,测试再也不是昂贵的操做,而是随手可作的事情。例如:Spring对Junit4支持,能够经过注解方便的测试Spring程序。
(5)方便集成各类优秀框架
Spring不排斥各类优秀的开源框架,相反,Spring能够下降各类框架的使用难度,Spring提供了对各类优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
(6)下降Java EE API的使用难度
Spring对不少难用的Java EE API(如JDBC,Java Mail,远程调用等)提供了一个薄薄的封装层,经过Spring的简易封装,这些Java EE API的使用难度大为下降。
(7)Java 源码是经典学习范例
Spring的源码设计精妙、结构清晰、匠心独运,到处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。若是想在短期内迅速提升本身的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。
Spring MVC属于Spring Frame Work的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,能够选择使用Spring的Spring MVC框架或集成其余MVC开发框架,如Struts1,Struts2等。
经过策略接口,Spring 框架是高度可配置的,并且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,因此不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。
Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。
它是一个典型的教科书式的MVC构架,而不像struts等都是变种或者不是彻底基于MVC系统的框架,对于初学者或者想了解MVC的人来讲我以为 spring是最好的,它的实现就是教科书!第二它和tapestry同样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具备的优点。并且框架自己有代码,看起来容易理解。
MVC已是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。以前的项目比较简单,可能是用JSP 、Servlet + JDBC 直接搞定,在项目中尝试用 Struts(Struts MVC)+Spring+Hibernate。
MVC做为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,这边不去讨论项目中是否应用MVC ,也不针对MVC的实现原理进行讲解,而是探讨实践中如何从应用SSH, 到Struts(Struts MVC)+Spring+Hibernate的演化过程。