JavaWeb应用概述 (2).ppt
Java Web应用概述,目标,了解什么是Web应用以及Web应用是如何运行的了解HTML语言和HTTP协议在Web应用中的地位了解Web应用的特点了解Java Web应用主要有哪些技术了解Java Web应用能够完成哪些功能了解Java Web应用的开发环境和运行环境了解Java Web应用的发展历史,主要内容,1.1 认识Web应用1.2 Java Web应用概述1.3 运行环境和开发环境1.4 发展历史,1.1 认识Web应用,1.1.1 Web应用运行过程1.1.2 Web应用文档类型1.1.3 运行环境支持1.1.4 HTML语言1.1.5 HTTP协议1.1.6 Web应用的特点1.1.7 网络应用架构模型(C/S、B/S)1.1.8 主要技术,1.1.1 Web应用运行过程,(1)有关Web的基本知识什么是Web?World Wide Web(简称Web或WWW,万维网)Web的三个基本要素:统一的资源命名方案,如URI访问资源的方式,即协议,如HTTP协议资源之间自由访问的方法,即超文本,如HTML语言 Web 技术经历了三个发展阶段第一代:提供对静态文档(信息)的管理和访问。第二代:与数据库系统相结合,提供对动态文档(信息)的访问和显示。第三代:除动态文档生成和访问之外,还提供了基于Web的联机事务处理能力,实现基于Web的服务。,(2)用户如何使用Web应用,1 打开浏览器窗口,2 输入IP地址,3 浏览器解析服务器返回的信息,4-1 用户输入信息提交,4-2 用户点击按钮或者超链接,(3)服务器如何对用户操作响应,Web服务器,应用服务器,1 接收请求,2 转发请求,3 查找文件,4 执行文件,5 返回执行结果,6 转发给客户,1.1.2 Web应用涉及的文件类型,大量的网页文件,用于展示信息;网页的格式信息;资源文件:网页中用到的图像,音频,视频等资源。配置文件:用于声明网页的相关信息。处理文件:处理用户请求,或者供网页调用,或者访问数据库等。,运行环境支持,客户端程序:通用的客户端浏览器发送请求展示服务器的响应信息服务器端程序接收请求,对用户响应;处理请求网络,连接服务器与客户端,1.1.4 HTML语言,是HyperText Markup Language的缩写服务器使用HTML语言对用户响应,1.1.5 HTTP协议,Web应用所使用的主要协议;采用请求/应答模式,由客户端发送请求,服务器端响应;无状态,服务器端不会专门为客户端保存信息;请求包括:请求方法、请求头和请求数据;响应包括:状态码、响应头和响应数据。,1.1.6 Web应用的特点,信息开放与安全访问速度和信息量可靠性用户类型多、用户量大,1.1.7 网络应用架构模型,联网的主要目的是实现资源共享和计算机之间的通信。资源包括硬件资源、软件资源、数据资源和通信信道资源。其中数据资源共享是Internet的主要功能之一。数据资源共享的方式主要有:文件服务器模型和域模型文件服务器模型:其代表是Novell NetWare局域网。,文件服务器(FS):提供高速存取的大容量硬盘,保存网络中其它工作站(WS)共享的文件和目录,包括各种应用程序和数据库。用户根据所拥有的权限使用程序和访问数据库。不过,采用这种方式访问数据库通信量大,效率较低。,工作组模型:其代表是Windows 95/98/NT。由系统管理员创建一个用户工作组,组中成员以对等方式工作。工作组中的每一台计算机既可作为服务器,又可作为工作站。每台计算机具有自己的帐户和管理。这种网络的管理比较松散,安全性较差。域模型:其代表是Windows NT Server/Windows 2000 Server。除了提供工作组模型外,还提供了域模型的网络使用方式。可以将一个单位的计算机连成一个域(Domain),每个域中的用户再分成若干个工作组。一个域中可以有若干个服务器和工作站,其中至少有一台服务器为域服务器,负责域的集中管理。域模型是一种安全、高效的网络使用模型。,客户机/服务器模式C/S模式(Client/Server,简称C/S)早期的“主机+终端”模式中,所有处理任务都由主机承担。后来的文件服务器模式,所有处理任务几乎都由工作站承担,文件服务器只起共享磁盘的作用。为了充分调动服务器和工作站双方的处理能力,人们提出了客户机/服务器模式。,C/S模式把处理分配给客户机和服务器共同承担。优点:发挥双方的处理能力;减少网上信息传输量;服务器可高效、完全地处理数据库,客户机可处理GUI界面和本地I/O;提供了开放、分布式计算环境。,三层C/S模式“客户机-功能服务器-数据库服务器”模式,客户机:存放用户界面层(表示层)软件,负责用户与应用层之间的对话。,功能服务器:存放业务逻辑层(功能层)软件,响应客户机请求,完成业务处理或复杂计算。如根据客户机要求,向数据库服务器发送SQL命令。,数据库服务器:存放数据库服务层(数据层)软件,负责执行功能层送来的SQL命令,并通过功能服务器向客户机返回处理结果。,B/S模式 B/S模式是把Web技术和数据库技术结合起来的技术,实现开发环境和应用环境的分离,客户端用相对统一的浏览器代替客户软件,实现跨平台的应用和多媒体服务。基于B/S模式的信息系统通常采用:“浏览器Web服务器数据库服务器”三层结构。,B/S结构与C/S结构的对比,1.1.8 Web应用开发技术,常见的服务器端脚本编程技术:微软的ASP和ASP.NET、开源的PHP技术和 Sun公司的Java Web技术。ASP(Active Server Pages):ASP内含于Internet信息服务系统IIS中,提供一个服务器端的脚本环境,站点服务器会自动将所设计的ASP程序代码解释为标准HTML格式的主页内容,并在客户端浏览器上显示出来。ASP编程的脚本语言是VBScript。ASP.NET是ASP技术的升级,其编程语言是C#。,PHP(Personal Home Page Tools):PHP是基于标准C语法,可以内嵌于HTML的一种脚本语言。理论上讲,PHP通过插件可以运行在多种平台上,包括微软公司的IIS,但在实际应用上,PHP在Linux的Apache下应用较多。Java Web技术:是以Java为中心的一套技术。,1.2 Java Web应用概述,1.2.1 Java Web与Java的关系1.2.2 Java Web应用的主要技术1.2.3 Java Web技术能够完成的任务,1.2.1 Java Web与Java的关系,Java技术的3个版本:Java SE,标准版,主要用于桌面应用的开发,同时是其他版本的基础。Java EE(J2EE),企业版,主要用于企业级应用的开发。Java ME,微版本或者称为嵌入式版本,占用内存较少,主要用于嵌入式设备中应用的开发。,J2EE采用分层架构,分为4层,各层包含的技术以及各层之间的关系如下图所示。其中,第二层是Web应用层,Java Web开发指的就是该层应用的开发。,1.2.2 Java Web应用的主要技术,主要有:JSP、Servlet、JavaBean、JDBC和XML。JSP(Java Server Pages):JSP是Sun公司推出的站点开发语言,解决了ASP、PHP的一个通病脚本级执行。JSP可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。主要用于输入、输出。,JSP实例,JSP内置对象,Request:表示HttpServletRequest对象,包含了有关浏览器的信息,并且提供获取cookie、header、session数据的方法。Response:表示HttpServletResponse对象,提供了用于设置回送浏览器的相应方法,如Request中提到的cookie、header等。Out:是的一个实例,提供了用于向浏览器显示输出结果的方法。,pageContext:用于存取各种范围的名字空间、Servlet有关对象的API。Session:表示一个请求的对象,它可以存储用户的状态信息。Application:表示对象,有助于查找有关Servlet引擎和环境的信息。Config:存储Servlet实例的初始化参数。Page:从所在页面产生一个Servlet实例。Exception:异常处理,继承于Java的异常类,JSP中的常用标签,Jsp:include:在页面被请求时引入一个文件Jsp:useBean:实例化一个JavaBeanJsp:setProperties:设置JavaBean属性Jsp:getProperties:输出某个JavaBean属性Jsp:forward:将请求转到一个新页面Jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。,Servlet:Java Servlet是运行于Web服务器端的小程序。利用Java Servlet可以实现网页中很多交互式效果,在动态网页设计中具有广泛应用。用户通过Web浏览器访问服务器端的Java Servlet程序,Java Servlet负责实现对数据库的访问,并动态生成HTML格式的结果文件,交给Web浏览器显示。Servlet主要用于系统流程控制。,Servlet实例,HttpServlet类:定义了doGet方法和doPost方法,分别用以响应来自客户的get请求和post请求。这些方法是由service方法调用的,当一个请求到达服务器上时,就会调用这个 service方法。service方法首先判断请求的类型,然后调用适当的方法处理该请求。doGet方法和doPost方法接收HttpServletRequest和HttpServletResponse对象作为参数。,HttpServlet类处理用户HTTP请求的过程,HttpServletRequest 接口:是对Http协议请求消息的包装。通常客户端传给Web服务器的数据包含在Http的请求消息中。Get方法下,数据以查询串的形式放在请求的URI的末尾;Post方法下,数据包含在请求的实体中。两种情况下,数据都是以“关键字/值”对的形式存放。HttpServletRequest接口继承了ServletRequest接口中定义的一些获取表单数据的基本方法(getParameter()、getParameterValues()、getParameterNames())。Get方法和Post方法的区别:P19,HttpServlet的每个doGet调用或doPost调用都接收到一个实现了HttpServletRequest接口的对象。执行Servlet的Web服务器创建一个HttpServletRequest对象,并将此对象传递给Servlet的service方法(该方法又将它传递给doGet方法和doPost方法)。该对象中包含有来自客户的请求。,HttpServletResponse接口:是对Http协议响应消息的面向对象包装,里面定义了一系列操作Http协议响应消息的方法。其中,常用有:setContentType()方法、getWriter()方法和getOutputStream()方法,Servlet的生命周期,从生成一个 Servlet实例开始到其消亡为止的这段时间称作 Servlet的生命周期(lifecycle)。包括:加载、实例化、初始化、处理请求和销毁服务等。Servlet接口定义了下列与Servlet生命周期(相关的方法,这些方法是由Servlet容器调用的。三个方法的定义为:Public void init(ServletConfig config)throws ServletExceptionPublic void service(ServletRequest req,ServletResponse res)throws Public void destroy(),Servlet 的生命周期如下图所示:,JavaBean:完成核心功能,是一个比较特殊的Java类,编写方法与普通Java类相同。JDBC:Java访问数据库的中间件,完成与数据库的交互。XML:Java Web应用中的配置文件采用XML文件的形式,另外JSP页面也可以采用XML文档的形式。,XML知识介绍,XML(eXtensible Markup Language)为可扩展标记语言,其格式分为标记、元素和属性。标记是左尖括号“”之间的文本,有开始标记(如“”)和结束标记(如“”)。元素是开始标记、结束标记以及位于二者之间的所有内容。属性是一个元素开始标记中的名-值对。例如,中的sex就是属性。元素区分大小写字母、属性取值需加引号。,XML文档举例:,XML的文档类型:无效文档(没有遵守XML规范定义的语法规则)、有效文档(遵守XML语法规则和在DTD或模式中定义的规则)、格式良好的文档(遵守XML语法,但没有DTD或模式)。XML的用途:用于存储、传输和交换数据(并不是用来显示数据的)。具体作用如下:将数据从HTML中分离出来;交换数据;共享数据;存取数据。,XML的解析方式DOM(文档对象模型)规范:是一个基于平台、语言无关的官方W3C标准,它定义了XML文档的逻辑结构,给出了访问和处理XML文档的方法。在DOM规范中,把XML文档作为整体进行处理,它将整个XML文档加载入内存,并在内存中形成一个树形对象,然后对XML文档的操作就转化为对内存中对象树的操作。由于要把所有信息全部加载入内存,所以对内存要求比较高,但是操作速度较快。上述文档解析为内存树图示如下:,SAX技术:把XML文件作为数据流来处理,不用事先调入整个文档,读取一部分数据,处理一部分数据,对系统的内存要求不高。SAX是基于事件模型的,将XML数据文件中不同的内容归为不同的对象。分析到不同对象的时候(如发现元素开始、元素结束、文本、文档的开始或结束等),就会产生不同的事件,进而调用不同的事件处理器。例如,下图中在解析XML文件的时候,首先开始解析文件事件,会调用startDocument事件处理器;当读取到文件结束的时候,会调用endDocument事件处理器。,JAXP规范:SUN公司提出的一种Java操作XML数据文件的标准,其作用是在Java应用程序与具体解析器之间提供一个统一的编程接口。JDOM:是想成为Java特定文档的模型,它简化与XML的交互并且比使用DOM实现得更快。与DOM的主要区别在于:JDOM使用的是具体类而不使用接口;API大量使用了Collection类,方便开发者。另外,JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档。,DOM4J:是一个独立的开发结果,也是一个非常优秀的Java XML API,具有性能优异、功能强大和容易使用的特点,同时它也是一个开放源代码的软件。目前,越来越多的 Java 软件都在使用 DOM4J 来读写 XML;Hibernate 也采用 DOM4J 来读取 XML 配置文件。,1.2.3 能够完成的主要任务,信息展示信息查询信息输入信息更新信息处理信息存储,1.3 运行环境及开发环境,1.3.1 运行环境1.3.2 开发环境,1.3.1 运行环境,需要:Web服务器接收用户的Web请求,然后提交给应用服务器把应用服务器执行的结果返回给用户 应用服务器根据用户的请求,选择合适的文件加载执行把执行的结果返回给Web服务器,常用的应用服务器JSP服务器Tomcat,Bejy Tiger,Geronimo,Jetty,Jonas,Jrun,Orion,Resin J2EE服务器Bea公司的Weblogic,IBM的Websphere,Sun公司的Application Server,Oracle公司的Oracle9i/AS,Sun公司的Sun Java System Application Server,JBoss,1.3.2 开发环境,EclipseNetBeansJBuilder,1.4 发展历史,1.4.1 Servlet技术1.4.2 JSP技术1.4.3 模型1:JSP+JavaBean1.4.4 模型2:JSP+JavaBean+Servlet1.4.5 框架1.4.6 可视化开发,1.4.1 Servlet技术阶段,Java技术中最早的Web解决方案,页面中的所有信息需要通过输出语句来生成。,HelloWorld!,优点:纯Java,执行速度快。缺点:实现输入/输出功能的时候效率比较低,可维护性差。,1.4.2 JSP技术阶段,JSP技术的目标是快速开发网站,通过在网页中嵌入Java代码实现网站开发。使用脚本嵌入用于完成功能的Java代码。,1.4.3 模型1:JSP+JavaBean阶段,把业务处理代码从JSP中提取出来,然后形成JavaBeanJSP完成输入、输出和控制功能需要的时候JSP调用JavaBean的功能,JSP页面,JavaBean,模型1(JSP+JavaBean)的优缺点,优点业务处理功能从JSP页面中分离出来由JavaBean完成,减少了页面中的代码可以共享JavaBean功能缺点页面中仍然存在用于控制的代码,1.4.4 模型2:JSP+JavaBean+Servlet,JSP完成输入输出JavaBean完成功能Servlet完成控制,输入界面,输出界面,Servlet,JavaBean,模型2(JSP+JavaBean+Servlet)的优缺点,优点分工清晰JSP代码主要用于输入和输出,便于维护控制功能使用Servlet缺点作为控制器的Servlet存在大量的重复代码。,1.4.5 框架阶段(Struts),提取Web应用的通用功能,形成基础框架用户的开发基于这个基础框架,然后添加自己应用特有的内容即可。,中心控制器,自定义标签库,基本类库,框架,用户应用,用户界面,控制器,配置文件,使用,使用,业务JavaBean,优点减少重复代码提高开发效率便于维护缺点对于小型项目,增加了复杂性,1.4.6 可视化开发,随着集成开发环境对于Web应用支持的增强,可视化Web应用开发(JSF技术)应该是未来的发展趋势。这种方式的开发就像以前在C+Builder或者VB中开发应用一样方便。,小结,对Web应用进行了概述对Java Web应用进行了概述对Java Web应用的运行环境和开发环境进行了介绍介绍了Java Web应用的发展历史,