javaweb电子教案第一章
第1章 Java Web开发技术概述,本章首先分析了J2EE体系结构,然后在此基础上介绍了容器、组件、Web应用、J2EE应用等与Java Web开发技术密切相关的基本概念。最后,阐述了组成J2EE体系结构的各层所应用的Java Web开发技术、运行原理以及所提供的各种服务。,第1章 Java Web开发技术概述,1.1 J2EE体系结构 1.2 J2EE容器和组件 1.3 客户层技术 1.4 Web层技术 1.5 EJB层技术 1.6 数据层技术 1.7 J2EE平台中角色与任务,1.1 J2EE体系结构,J2EE体系结构定义了4个不同的层,自上而下的方向分别是: 客户层(client tier) 表示逻辑层(presentation logic tier),也称为Web层(web tier) 业务层(business tier) 数据层(data tier),1概述,客户层 与最终用户进行交互的前端表示组件 数据层 而提供数据存储与访问功能的组件 表示逻辑层和业务层 在逻辑上驻留在前端与后端之间的中间层,1概述,2J2EE应用,企业(enterprise) 描述的是依照一组公共规则进行运作的任何组织 J2EE应用(J2EE application) 是特定于企业的软件程序,它基于控制组织的一般规则中的某一部分来提供某种形式的功能,1.2 J2EE容器和组件,1.2.1 容 器 1.2.2 组 件,Web应用,一个由HTML/XML、Servlet、JSTL、类以及其他任何可以捆绑起来,并在来自多个厂商的多个Web容器上运行的Web资源构成的集合; 可以将Web应用从一个服务器移到另外一个,或移动到同一服务器的不同位置,而不需要对组成Web应用的任何种类的文件作任何改动。,1.2.1 容 器,容器(container) 指的是提供特定程序组件服务的标准化运行时环境,通过这些组件,可以在任何供应商提供的J2EE平台上得到所期望的服务。 容器的作用 为组件提供与部署、执行、生命周期管理、安全和其他组件需求相关的服务。,1.2.1 容 器,EJB容器 为Enterprise JavaBean组件提供运行时环境,对应于业务层和数据访问层,主要负责数据处理以及和数据库或其他Java程序的通信。 Web容器 管理JSP和Servlet等Web组件的运行,主要负责Web应用和浏览器的通信,对应于表示层。,1.2.1 容 器,应用客户端容器 负责Web应用在客户端组件的运行,对应于用户界面层。 Applet容器 负责在Web浏览器和Java插件(Java Plug-in)上运行Applet程序,对应于用户界面层。,提示:,第2章介绍开发Web应用的集成开发环境Oracle JDeveloper 10g; 第3章介绍如何基于Oracle JDeveloper 10g开发Java应用程序; 第4章介绍Web开发的执行环境OC4J(Oracle Containers For J2EE)10g。,1.2.2 组 件,1组件的概念 2组件的类型,1组件的概念,组件(component) 在应用程序中发挥特定功能的软件单位 组件实质上是几种特定的Java程序,只不过这些程序被规定了固定的格式和编写方法,它们的功能和使用方式在一定程度上被标准化了,2组件的类型,客户端组件 客户端的Applet和客户端应用程序 Web组件 Web容器内的JSP、Servlet、Web过滤器、Web事件监听器 EJB组件 EJB容器内的EJB组件,2组件的类型,组件与容器的关系 组件是组装到J2EE应用中独立的软件功能单元,每一个J2EE组件在容器中执行 容器为组件提供标准服务和API,容器充当通向底层J2EE平台的接口,2组件的类型,J2EE应用 由软件组件构成,这些软件组件根据其各自所属的层进行了分类 组成J2EE应用的各种组件在对应容器中执行,容器为组件提供底层J2EE API的统一视图 容器管理组件,并且为组件提供多种系统级服务 J2EE客户为应用提供用户界面。,1.3 客户层技术,1.3.1 Web客户 1.3.2 Applet客户 1.3.3 应用客户,1.3.1 Web客户,Web客户的组成: Web页面 由浏览器提供,用来向最终用户提供进入企业应用的界面 浏览器 负责将页面正确地显示给用户,并不承担复杂的数据检索和计算任务,1.3.1 Web客户,浏览器的主要功能: 以特定格式显示HTML文件 获取客户的点击并转化成HTTP请求(request) 连接Web服务器,发出HTTP请求并接收处理响应(response) 管理客户和服务器之间的对话状态(Session State),1.3.1 Web客户,优先考虑使用Web客户的情形: J2EE应用的最终用户驻留在企业的外部 J2EE应用的最终用户由于只需要使用Web浏览器而不容易进行管理 最终用户不一定要下载或安装任何特殊的软件,1.3.2 Applet客户,Applet 使用Java语言编写的轻量级客户程序,一般是在Web浏览器的上下文中执行 Applet容器 负责管理Applet客户的运行时执行,由Web浏览器和Java插件组成 Applet的优点 可以提供在一处管理的丰富图形用户界面 主要缺点 是Applet很难部署,尤其是当浏览器运行在一个嵌入不同版本的Java虚拟机上时更是如此,1.3.3 应用客户,应用客户 使用Java语言编写,在标准的JVM上运行的Java应用程序 对J2SE API具有完全的访问能力,可以使用Java的Swing和AWT库构建具有复杂功能和丰富的图形用户界面,1.3.3 应用客户,客户端技术的选择: 电子商务网站,采用Web浏览器作为客户端 要求使用者随时地获取信息,程序的客户端可以采用无线设备 要求具有复杂快速的用户界面,就应该考虑在客户端使用Applet或独立运行的Java应用程序 要求用户可在各种操作系统上都能使用,就尽量使用标准的浏览器和Java技术作为程序客户端,1.4 Web层技术,1.4.1 Web组件 1.4.2 Web层基本结构 1.4.3 Web组件的选择,Web层与客户层的主要区别:,Web层主要在Web服务器端工作,而用户界面通过Web浏览器在客户端工作,两者之间通过Web通信 Web层侧重于信息格式的处理,而用户界面则主要是方便人的理解和操作,1.4.1 Web组件,1Java Servlet,Servlet是在服务器上运行的,用Java语言编写的程序 Servlet是用Java语言书写的一种协议,是与平台无关的服务器端组件,可在支持Servlet的Web服务器上运行 Servlet被装载到Web服务器后,在JVM上执行,所以不需要任何图形用户界面,Servlet的基本运行方式,Java Servlet具有以下主要优点,可移植性 方便性 高效性 通用廉价,提示:,第5章介绍了Servlet的基本概念、工作原理、基本程序结构,阐述了如何基于Oracle JDeveloper 10g和OC4J开发Servlet 第6章介绍了Servlet API中主要的类和接口的用法,阐述了如何基于Servlet API开发Web应用,2JSP,JSP技术规范由Sun制定,定义了如何在服务器和JSP之间进行交互,描述了页面的格式和语法。 JSP 使用XML标签和Scriptlets封装生成页面内容的逻辑。 JSP将各种格式的标签直接传递给响应的页面。通过这种传送方式,JSP实现了页面逻辑与其设计和显示的分离。,2JSP,JSP技术主要优点 简单实用 移植性和规范性好,3过滤器,是驻留在Web层上的软件对象,在Servlet或JSP容器中运行,可对到来的客户请求由Servlet或JSP页面创建的应答响应进行动态变换 过滤器并不创建针对请求的响应,而是对由Web预先创建的响应进行过滤。实现过滤的方式是在响应文档返回给客户之前对该响应文档进行修改,4事件监听器,是一些Java类,用于实现一个或多个Servlet事件监听接口,接收特定类型的面向Servlet的事件通知 例如,可以创建事件监听器来监听与Servlet上下文有关的生命周期和状态变化、HTTP会话和与Servlet请求相关的事件等,提示:,第6章介绍了Servlet过滤器与事件监听器的基本概念,以及在Web开发中应用。 第7章介绍了JSP的基本概念、工作原理、基本语法,阐述了如何基于Oracle JDeveloper 10g和OC4J开发JSP程序。 第8章阐述了如何基于JSP指令、操作以及JavaBean开发Web应用。,1.4.2 Web层基本结构,基本结构 Web层的主体是Web服务器,主要包括Web连接器和Web容器 Web服务器是Web应用运行的平台,是一套能够编译和运行Web组件的Java动态运行时环境 Web层的基本功能是管理、运行和设置Web应用,并使其能够对Web客户的请求做出正确的响应和处理,1.4.2 Web层基本结构,运行机制 当浏览器向Web服务器发出HTTP请求时,HTTP连接器负责接收请求,并分析出该请求对应的Web应用和资源 Web容器在部署Web应用时,根据其部署描述文件规定了每个Web组件的URL地址,在Web服务器中描述了URL和程序资源的对应关系 Web容器可根据Web组件的种类进行处理,1.4.2 Web层基本结构,1.4.3 Web组件的选择,程序的规模和功能要求 如果是相对简单而不要求在分布式服务器上运行的程序,可以选择使用Servlet/JSP而不需要使用EJB。 项目的资金能力 如果购买Web服务器的费用太贵,可以选择像Apache Tomcat这样免费而被广泛使用的Web服务器。 技术的复杂性 EJB技术要比Servlet/JSP和JavaBean技术复杂。如果编程人员要快速地开发Web应用,使用Web层的Servlet/JSP技术而不用EJB技术是比较合适的选择。,1.5 EJB层技术,在J2EE体系结构中,EJB(Enterprise JavaBean)在服务器端执行,服务器方处于一种管理环境中,这种环境对事务、可伸缩性和安全性提供内置支持。 EJB驻留在业务层上,在业务层的EJB容器中执行,EJB容器在J2EE应用服务器上运行。因为EJB部署在业务层中来提供J2EE应用的业务逻辑功能,所以EJB有时也称为业务组件。,1.6 数据层技术,1.6.1 J2EE平台 1.6.2 命名服务与目录服务 1.6.3 部署服务与管理服务 1.6.4 Oracle DB XE 1.6.5 基于JDBC API的数据库服务 1.6.6 数据事务服务,1.6.1 J2EE平台,J2EE平台由标准服务包、API、协议和数据格式组成,这些要素共同提供了开发、部署和维护分布式多层应用必需的功能。 J2EE 1.4平台为网络通信、事务、安全、CORBA交互、数据库访问、消息传递、命令和目录访问、邮件、XML解析和Web服务提供标准服务。,1.6.1 J2EE平台,要求支持以下的Internet和Web协议: TCP/IP协议簇 HTTP 1.1 SSL 3.0和TLS 1.0 SOAP(Simple Object Access Protocol)1.1 其它通信协议RMI协议、IIOP协议、EJB互操作协议和CORBA(Common Object Request Broker Architecture)协议等,1.6.2 命名服务与目录服务,Java命名和目录接口JNDI是用于从Java应用程序中访问名称和目录服务的一组API “命名服务”是将名称与对象相关联,以便能通过相应名称来访问这些对象 “目录服务”是对象具有属性及名称的“命名服务”,1.6.2 命名服务与目录服务,J2EE平台提供的“命名服务” 允许对象按名称进行查找;另一方面,“目录服务”是“命名服务”的一个补充,“目录服务”允许对象基于其属性(功