分布式计算、云计算与大数据第五章

HTTP协议

  HTTP协议是TCP/IP 协议栈中的应用层协议,而TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议和Internet国际互联网络的基础。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。与七层OSI参考模型不同,从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。各层的协议如下图所示,其中HTTP为应用层最重要的协议之一。
HTTP请求响应过程:
分布式计算、云计算与大数据第五章_第1张图片

Web开发技术简介

分布式计算、云计算与大数据第五章_第2张图片
  HTML(HyperText Markup Language),超文本标记语言或超文本链接标示语言,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。
   JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。
   css级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。
   XML (EXtensible Markup Language)即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,它是一种很类似于HTML的标记语言,它被设计用来传输和存储结构化数据。
XML是一种平台无关的数据表示方法和数据交换语言,即使用XML创建的数据可以被在任何平台上的任何应用程序读取,或者说使用XML标记语言可以做到数据或数据结构在任何编程语言环境下的共享

CGI

  公共网关接口CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。   CGI(The Common Gateway Interface)是一个标准化的协议,能够使应用程序(通常称为CGI程序或CGI脚本)同web服务器和客户端进行交互。CGI程序能够用Python, PERL, Shell, C or C++等语言来实现。

Web会话

  WEB会话是指web客户端与服务器的一次连接、中间多次交互到最后断开的过程。由于HTTP协议是无状态的,因此需要会话跟踪技术管理客户端的多次请求的状态信息。会话(Session) 跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。

Applet和Servlet

  Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet不是通过main方法来运行的。在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。
语言特点
1)从Applet类扩展而创建的用户Applet新类。
2)类定义举例:public class hello2 extends Applet
3)Applet依赖于浏览器的调用。
4)通过〈Applet〉标记嵌入在HTML文件中。
   Applet在用户的计算机上执行时,还可以下载其它的资源,如声音文件、图像文件或更多的Java代码,有些Applet还允许用户进行交互式操作。但这需要重复的链接与下载,因此速度很慢,这是一个亟待解决的问题,可以想到的一个好办法是采用类似高速缓存的技术,将每次下载的文件都临时保存在用户的硬盘上,虽然第一次使用时花的时间比较多,但当再次使用时,只需直接从硬盘上读取文件而无需再与Internet连接,便可以大大提高性能了。
Servlet执行过程
   最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer(如tomcat, WebLogic, iPlanet, WebSphere)开始支持标准的Servlet API。Servlet的执行过程为:
客户端发送请求至服务器端
服务器将请求信息发送至Servlet
Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
服务器将响应返回给客户端
   从servlet的命名可以看出其特点,如Applet=Application+let,表示小应用程序;Scriptlet=Script+let,表示小脚本程序;同样Servlet=Server+let,表示小服务程序。
Servlet 与 Applet 的比较
相似之处:
它们不是独立的应用程序,没有main()方法。
它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。
它们都有一个生存周期,包含init()和destroy()方法。
不同之处:
Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。
Servlet 则没有图形界面,运行在服务器端。

SSH框架与应用开发

  MVC全名是Model View Controller,即模型、视图与控制器三个部分。MVC 架构的核心思想是:将程序分成相对独立,而又能协同工作的三个部分。通过使用 MVC 架构,可以降低模块之间的搞合,提供应用的可扩展性。另外, MVC 的每个组件只关心组件内的逻辑,不应与其他组件的逻辑混合。MVC 并不是 Java 所独有的概念,而是面向对象程序都应该遵守的设计理念。
  SSH(struts+spring+hibernate)是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。
表示层:通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
业务层:管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
持久层:依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
  Struts 是Apache 项目,Struts的前身是Craig R.McClanahan编写的JSP Model2 架构。Struts 在英文中是"支架、支撑"的意思,这表明了 Struts 在Web 应用开发中的巨大作用,采用 Struts 可以更好地遵循 MVC 模式。此外, Struts 提供了一套完备的规范,以及基础类库,可以充分利用 JSP/Servlet 的优点,减轻程序员的工作量,具有很强的可扩展性。
  Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。Spring 致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的"一站式"选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而与它们无缝地整合。

总结起来,Spring有如下优点:

低侵入式设计,代码污染极低。
  独立于各种应用服务器,可以真正实现WriteOnce, Run Anywhere的承诺。Spring的DI机制降低了业务对象替换的复杂性。
  Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
   Hibernate是目前最流行的开放源代码的持久层框架,专注于数据库操作。使用Hibernate框架能够使开发人员从繁琐的SQL语句和复杂的JDBC中解脱出来。它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。

  Hibernate是目前最流行的开源对象关系映射(ORM)框架。Hibernate采用低侵入式的设计,完全采用普通的Java对象(POJO),而不必继承Hibernate 的某个超类或实现Hibernate的某个接口。因为Hibernate是面向对象的程序设计语言和关系数据库之间的桥梁,所以Hibernate允许程序开发者采用面向对象的方式来操作关系数据库。
  ORM的全称是Object/Relation Mapping,对象/关系映射。ORM也可理解是一种规范,具体的 ORM 框架可作为应用程序和数据库的桥梁。基于ORM框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势。目前流行的ORM框架有产品有:Hibernate、iBATIS、EntityEJB等。

Hibernate
  Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
1)Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
2)SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
3)Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
4)Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
5)Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

你可能感兴趣的:(分布式计算、云计算与大数据第五章)