第 1 章Java EE 架构介绍(2003)_第1页
第 1 章Java EE 架构介绍(2003)_第2页
第 1 章Java EE 架构介绍(2003)_第3页
第 1 章Java EE 架构介绍(2003)_第4页
第 1 章Java EE 架构介绍(2003)_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息系统软件设计靳 鹏合肥工业大学管理(gunl)学院共一百零三页课程(kchng)内容简介第一章 Java EE 架构介绍第二章 Jsp 基础知识第三章 Struts2.0 表现层技术第四章 Spring 2.5 业务逻辑层技术第五章 Hibernate 3.2 数据持久层技术第六章 DWR基于Ajax技术应用(yngyng)框架共一百零三页参考书建议(jiny)教材:Java EE实用教程基于WebLogic和Eclipse(第2版)李绪成2. Java高级框架应用开发案例教程 Struts2+Spring+Hibernate,(高等学校计算机科学与技术项目驱动案例实践规划教材)王永贵、郭

2、伟、冯永安、焦学理等,清华大学出版社,2012-3-23;Web编程技术JSP XML JAVAEE(普通高等教育十一五国家级规划教材),丁跃潮 主编,出 版 社:科学出版社,2008-3-1;JSP实训教程(21世纪高等学校规划教材 计算机科学与技术),宋智军,邱仲潘编著,出 版 社:电子工业出版社,出版时间:2012-7-1共一百零三页主要(zhyo)参考书 Struts2权威指南:基于WebWork核心的MVC开发,李刚,出版社:电子工业出版社,2007-9-1;Spring技术(jsh)内幕:深入解析Spring架构与设计原理(第2版), 计文柯 机械工业出版社, 2012-03;精通

3、Hibernate:Java对象持久化技术详解, 孙卫琴, 电子工业出版社,2010-02出版;轻量级Java EE企业应用实战(第3版):Struts 2Spring 3Hibernate整合开发, 李刚,电子工业出版社, 2012-04;SOA思想、技术与系统集成应用详解, 梁爱虎, 北京:电子工业出版社, 2007.12。XML Web Services高级编程范例, 胡海璐等编著, 北京:电子工业出版社,2003.2. 共一百零三页第1章 Java EE架构(ji u)介绍1.1 Java EE 概述 Java 发展过程 90年,Sun公司James Gosling领导(ln do)的

4、小组设计了一种平台无关的语言Oak,用于为各种家用电器编程。95.1,Oak改名为Java,5.23 Sun正式发布Java。96.2,Java beta版结束,Java 1.0诞生。97.2,Java发展到1.1版。共一百零三页1.1 Java EE 概述(i sh)99.7,重新组织Java平台的集成方法, 升级到1.2版;Java从一种语言发展(fzhn)成为一种开发平台,并将Java企业级应用开发平台作为发展方向,出现了Sun ONE和Java平台的三个版本J2SE、J2ME和J2EE。共一百零三页1.1 Java EE 概述(i sh)J2EE 1.2 平台(pngti)共一百零三页

5、1.1 Java EE 概述(i sh)J2EE 1.2 关键(gunjin)思想应用的逻辑分层,客户端层、Web层 、EJB层和数据层组件概念,将应用中的不同程序分成不同的组件,包括Applet、Application、JSP、Servlet和EJB等组件;服务的标准化,对常见的服务进行标准化,制定标准规范,例如JMS、JNDI、JTA等;容器的概念,容器为组件提供运行环境,并为组件提供必要的服务。共一百零三页1.1 Java EE 概述(i sh)J2EE 1.3共一百零三页1.1 Java EE 概述(i sh)J2EE 1.3 比较大的变动:Connection API 支持与外部企业

6、信息系统的集成;需要一个JMS提供者JAXP API 支持对XML的处理JAAS API 对Connection API 的安全支持EJB规范支持使用IIOP协议的互操作EJB规范增加一种(y zhn)新的容器管理持久性模型,支持消息驱动Bean,支持本地EJB共一百零三页1.1 Java EE 概述(i sh)J2EE 1.4 共一百零三页1.1 Java EE 概述(i sh)J2EE 1.4 主要目标是支持web service增加几个API增强许多(xdu)现有的J2EE API共一百零三页1.1 Java EE 概述(i sh)Java EE 5共一百零三页1.1 Java EE 概

7、述(i sh)Java EE 5 主要的变动是:J2EE 变成了 Java EE 5用Java 语言元注释(Annotation) 减少Java EE 部署描述符的使用 注释主要作用是将资源和其它的依赖注入到Java EE组件(z jin)中,是对已有的JNDI查找能力的一种补充增加JSTL和JSF技术增加Java 持久性API,简化Java对象到数据库的映射。共一百零三页1.1 Java EE 概述(i sh)Java EE 特点:标准:支持许多标准的服务、组件(z jin)、客户端、工具,可以跨平台分布式通用服务,可以由平台提供通用的服务,例如事物、安全、持久性组件模型,开发可以分模块进行

8、,不同应用可以共享代码、业务互操作,可以通过标准的协议与其它系统进行交互共一百零三页1.1 Java EE 概述(i sh)Java 技术系列的 3 个版本(bnbn) JavaSE:Java Standard Edition,Java 技术标准版,以界面程序、Java小程序和其它一些典型的应用为目标JavaEE:Java Enterprise Edition,Java技术企业版,以服务器端程序和企业软件的开发为目标JavaME:Jave Micro Edition,Java技术微型版,为小型设备、独立设备、互联移动设备、嵌入式设备程序开发而设计共一百零三页1.1 Java EE 概述(i s

9、h)JavaSE、JavaEE、JavaME 之间的关系(gun x)图共一百零三页Java Platform Standard Edition 共一百零三页Java SE API共一百零三页.Net FrameWork共一百零三页.Net FrameWork共一百零三页JDKJDK 是整个Java的核心,包括了Java运行环境(Java Runtime Enviornment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个(mu )版本的JDK。共一百零三页软件开发层次结构单机最简单的开发(kif)模式图示单机应用程序数据(shj)存储最

10、简单的软件开发模式,是单机形式共一百零三页软件开发层次结构C/S胖客户端开发模式(msh):可以在各个客户端上面运行应用程序,各个客户端都访问服务器端的数据库胖客户端开发(kif)模式图示共一百零三页软件开发层次结构B/S客户机使用的是浏览器,那么连表示逻辑都可以(ky)存放在服务器端,称为瘦客户端基于(jy) Web 的瘦客户端开发模式共一百零三页1.2 Java EE 核心技术简介(jin ji) J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业(qy)后端使用的信息产品彼

11、此之间无法兼容,导致企业(qy)内部或外部难以互通的窘境共一百零三页1.2 Java EE 核心技术简介(jin ji)组件技术由开发人员用来创建(chungjin)企业应用程序的主要部分,即用户界面和业务逻辑。服务技术数据库访问(JDBC)Java命名与目录接口 (JNDI)事务服务JTA (Java事务API)JTS (Java事务服务)共一百零三页1.2 Java EE 核心技术简介(jin ji)通信技术提供在客户端与服务器之间以及不同服务器托管的协作对象之间进行通信的机制。HTTP(S)RMI (远程方法调用)OMG (对象管理组协议)JMS(Java消息(xio xi)服务)Jav

12、aMail (Java电子邮件)连接器架构共一百零三页1.2 Java EE 核心技术简介(jin ji)JavaEE 中的重要技术规范例举JDBC(Java Database Connectivity):JDBC API 为访问(fngwn)不同的数据库提供了一种统一的途径 JNDI(Java Name and Directory Interface):JNDI API 被用于执行名称和目录服务,它提供了一致的模型来存取和操作企业级的资源或应用服务器中的对象共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE的体系结构 运行在客户端机器上的客户层组件。如应用客户端程

13、序和 Applets,是客户层组件,它们可以(ky)直接访问数据库 运行在 JavaEE 服务器上的 Web 层组件。Java Servlet 和 JavaServer Pages(JSP)是 Web层组件,它们也可以访问数据库,运行在服务器中的 Web 容器中 运行在 JavaEE 服务器上的业务逻辑层组件。Enterprise JavaBeans(EJB)是业务层组件,也可以访问数据库,运行在服务器中的 EJB 容器中共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE的体系结构共一百零三页共一百零三页共一百零三页应用程序客户端动态HTML页面JAVA EE应用程

14、序 1JAVA EE应用程序 2JSP页面企业Bean企业Bean数据库数据库客户层Web层业务层EIS 层JAVA EE 服务器机客户机数据库服务器机客户(k h)层客户层的组件(z jin)在客户机上运行,客户机可以是笔记本电脑、台式电脑、掌上电脑和移动电话等Web层Web层组件在JAVA EE 服务器上运行。Web 层对客户层的请求做出处理及响应业务层在JAVA EE 服务器上运行。 业务层实现了应用程序的业务逻辑.服务器提供系统级服务,如事务管理、安全性和并发控制EIS 层组件在 EIS 服务器上运行,表示企业数据信息EIS层共一百零三页1.2 Java EE 核心技术简介(jin j

15、i)共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE 容器(rngq)和组件Java容器分布性可伸缩性可用性事务性安全性生命周期管理Java组件表示JSP、Servlet 、Applet业务逻辑EJB数据访问EJB共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE平台基于“容器”(container)的结构提供必要(byo)的系统服务。容器向使用Java编写的面向对象应用程序组件提供运行环境,并提供一系列的底层服务,例如:安全、事务、生命周期管理、对象查找与缓存、持久化以及网络通讯等等。容器用来管理组件行为的一个集合工具,组件的行为包括

16、与外部环境的交互、组件的生命周期、组件之间的合作依赖关系等等。共一百零三页1.2 Java EE 核心技术简介(jin ji)Java 容器作用容器是一种运行在服务器上的软件实体,用于管理特定类型的组件,为开发的J2EE组件提供执行环境。在一个组件被执行前,必须被装配到一个J2EE应用程序中,并且部署到它们的容器。装配的过程包括为J2EE应用程序中的每一个组件以及J2EE应用程序本身指定容器的设置。容器设置定制了由J2EE服务器提供的底层支持,这将包括诸如安全性、事务管理、Java命名目录接口(JNDI)搜寻(suxn)以及远程序连接。通过容器, J2EE体系结构就能在开发和部署时,在不同类型

17、的中间层服务器间实现可移植性。容器还负责管理部署在其中的组件的生命周期,及诸如资源汇集和强制执行安全之类的工作。依赖于容器的类型,还可以访问一些或全部J2EE API。共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE容器组成Web容器:包括Jsp与Servlet组件(z jin),可使用EJB中的组件完成复杂的商务逻辑;EJB容器:包含组件EJB, EJB规范定义了一个开发和部署分布式商业逻辑的框架;Applet容器包含组件Applet,即可使用J2SE开发Applet;Application Client容器:包含组件Application Client。共一百

18、零三页共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE 容器说明Applet 容器是运行在客户端机器上的web浏览器和Java 插件的结合。应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行(zhxng)。应用程序客户端和它们的容器运行在客户端机器上。Web容器管理所有J2EE 应用程序中JSP页面和Servlet组件的执行。Web组件和它们的容器运行在J2EE服务器上。EJB 容器管理所有J2EE 应用程序中企业级bean 的执行。enterprise bean 和它们的容器运行在J2EE服务器上。共一百零三页1.2 Java EE 核心技术简

19、介(jin ji)远程调用线程调度授权与验证分布式管理Bean管理持久化管理任务调度邮件服务数据连接管理WS服务依赖注入异步消息APOEJB容器EJB规范servicesDAOSAOPOejb-jar.xml业务层容器功能总结共一百零三页1.2 Java EE 核心技术简介(jin ji)小孩(xio hi)的积木 积木块组装成品JavaEE组件组件间协作应用程序组件开发组件开发共一百零三页1.2 Java EE 核心技术简介(jin ji)JavaEE是基于组件(z jin)开发 请求ServletJavaBeanJSP页面执行调用转向响应JSTL使用访问返回数据数 据 库客户端共一百零三页

20、1.2 Java EE 核心技术简介(jin ji)Java EE 组件技术 J2EE应用程序是由组件构成的。J2EE组件是具有独立功能的软件单元,它们通过(tnggu)相关的类和文件组装成J2EE应用程序,并与其他组件交互。JavaEE的运行环境定义了4种类型的应用组件:Applet客户端Application客户端Web组件EJB组件共一百零三页共一百零三页1.2 Java EE 核心技术简介(jin ji)Web 组件Web 组件提供了对请求(qngqi)的响应它包含Servlet 和 JSP 两个 Web 组件,它们在 Web 服务器上运行共一百零三页JavaEE其它(qt)核心技术:

21、 EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、 JDBC、XML、 JNDI(Java Naming and Directory Interface)、 JMAPI(Java Management API)、 JTS/JTA(Java Transaction Service/API)、 JMS( Java Messaging Service)、 Java Security API。1.2 Java EE 核心技术简介(jin ji)共一百零三页1.2 Java EE 核心技术简介(jin ji)共一百零三页1.2 Java EE 核心技术简介(jin

22、ji) JavaEE核心技术:EJB JavaEE的基石EJB组件 EJB分为三种:会话EJB、实体EJB和消息驱动EJBEJB容器 是EJB组件的运行环境,为部署的EJB组件提供各种服务(事务、安全、远程客户端的网络发布、资源管理等)。容器厂商也可以在容器或服务器中提供额外服务的接口。EJB服务器 管理(gunl)EJB容器的高端进程或应用程序,并提供对系统服务的访问。共一百零三页1.2 Java EE 核心技术简介(jin ji)-EJBEJB:企业级JavaBean(Enterprise JavaBean)是一个用来构筑企业级应用的服务器端可被管理组件。Java EE API提供了对EJ

23、B的规范。EJB是一个封装有某个(mu )应用程序的业务逻辑服务器端组件。EJB最早于1997年由IBM提出,旋即被太阳微系统采用并形成标准(EJB 1.0 和EJB 1.1)。其后在JCP(Java Community Process)一系列JSR(Java请求规范,Java Specification Request)被制订来定义新的EJB标准,分别是JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0)。共一百零三页1.2 Java EE 核心技术简介(jin ji)-EJBEJB规范明确了一个应用服务器应当支持的服务,包括:

24、数据持久化事务处理并发控制基于(jy)JMS的事件驱动基于JNDI的名字和空间管理基于JCE和JAAS的安全管理应用服务器端的软件组件部署使用RMI-IIOP协议的远程过程调用将业务方法暴露为Web服务共一百零三页1.2 Java EE 核心技术简介(jin ji)-EJBEJB容器可以接受三类EJB会话(huhu)Bean(Session Beans)无状态会话Bean(Stateless Session Beans)有状态会话Bean(Stateful Session Beans)实体Bean(Entity Beans)消息驱动Bean(Message Driven Beans ,MDBs

25、)共一百零三页EJB规范还定义了一个(y )跨平台的统一部署机制。部署描述符是一个(y )XML文档,文件名通常为ejb-jar.xml。负责为每一个EJB定义入口。部署描述符的主要内容包括:Home接口名Bean的Java类名Home接口的Java接口名组件接口的Java接口名持久化存储(针对实体Bean)安全策略和角色分配EJB3.0起开始广泛使用Java注释替代传统的部署描述符ejb-jar.xml。但后者仍然有效。1.2 Java EE 核心技术简介(jin ji)-EJB共一百零三页1.2 Java EE 核心技术简介(jin ji)Java EE 其它核心技术RMI(Remote

26、Method Invoke):RMI 协议调用远程对象上的方法,是被 EJB 使用的更底层的协议;XML(Extensible Markup Language):XML 是一种标记语言,它被用来在不同的商务过程中共享数据,或者对系统功能进行配置;JMS(Java Message Service):JMS 是用于和面向消息的中间件相互(xingh)通信的应用程序接口共一百零三页1.2 Java EE 核心技术简介(jin ji)JTA(Java Transaction Architecture):JTA 定义了一种标准的 API,应用系统由此可以访问各种事务 JavaMail 和 JAF(Jav

27、aBeans Activation Framework):JavaMail 是用于存取邮件服务器的 API,JavaMail 利用(lyng) JAF 来处理 MIME 编码的邮件附件共一百零三页1.2 Java EE 核心技术简介(jin ji)JSP(Java Server Pages):JSP 页面由 HTML 代码和嵌入(qin r)其中的 Java 代码所组成。服务器在页面被客户端所请求以后,对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器 Java Servlet: Servlet 是一种小型的 Java 程序,是比 JSP 更加底层的组件,完成的功

28、能和 JSP 类似共一百零三页1.3 Servlet基本知识理解(lji)HTTP Servlet 基础知识使用 Servlet API理解Servlet 的生命周期共一百零三页1.3 Servlet基本知识CGI 的工作(gngzu)过程浏览器Http Require setstatic htmlCGI 进程(jnchng)1CGI 进程2 共一百零三页1.3 Servlet基本知识Servlet 的工作(gngzu)过程浏览器Http Require setstatic htmlServlet 实例(shl)线程1线程2共一百零三页1.3 Servlet基本知识1“程序”代表一个静态的对象

29、,是内含指令和数据的文件,存储在磁盘或其他存储设备中 2“进程”代表一个动态的对象,是程序的一个执行过程,存在于系统的内存中。一个进程对应于一个程序3“线程”是运行于某个进程中,用于完成某个具体任务的顺序控制流程,有时被称为轻型进程。共一百零三页1.3 Servlet基本知识Servlet与CGI的对比:CGI采用多进程的方式为并发客户请求服务Servlet采用多线程的方式为并发客户请求服务进程占有独立的资源(zyun),运行快,但启动慢线程共享进程的资源,启动快,资源冲突时速度慢并发客户端量大时,多线程因共享资源而占有很大优势共一百零三页1.3 Servlet基本知识Servlet定义(dn

30、gy) 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序,是按照Servlet规范编写的java类。IE浏览器Servlet引擎Servlet模块请求响应HTTP请求HTTP响应客户端WEB服务器共一百零三页1.3 Servlet基本知识整个处理流程如下:HTTP请求:客户将客户请求发送给Servlet引擎(ynqng);请求:Servlet引擎将请求转发送给处理请求的Servlet模块;响应:Servlet模块接受请求后,调用相应的服务(service()对请求进行处理,然后将处理结果返回给Servlet引擎。HTTP响应:Servlet引擎将结果发送给客户端。共一百零

31、三页1.3 Servlet基本知识ServletAPIServlet的框架是由两个java包组成: javax.servlet和javax.servlet.httpjavax.servlet包中定义了所有的servlet类都必须实现(shxin)的接口和类。javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类Servlet的框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.共一百零三页1.3 Servlet基本知识HttpServlet 类提供(tgng)一个抽象类以创建 HTTP Servletpub

32、lic void doGet(HttpServletRequest req, HttpServletResponse res)doGet() 方法(fngf)处理客户端作出的 GET 请求。public void doPost(HttpServletRequest req, HttpServletResponse res)doPost() 方法处理客户端作出的 POST 请求。Form表单处理共一百零三页1.3 Servlet基本知识ServletRequest接口中封装了客户请求信息.如客户请求方式,参数名,参数值,客户端正在使用的协议(xiy),以及发出客户请求的远程主机信息等Servle

33、tResponse接口为Servlet提供了返回相应结果的方法共一百零三页1.3 Servlet基本知识javax.servlet 包的接口(ji ku)为:ServletConfig 接口(ji ku)在初始化的过程中由 Servlet 容器使用ServletContext 接口定义 Servlet 用于获取来自其容器的信息的方法 ServletRequest 接口 向服务器请求信息 ServletResponse 接口 响应客户端请求共一百零三页1.3 Servlet基本知识ServletInputStream 类用于从客户端读取二进制数据(shj)ServletOutputStream

34、类用于将二进制数据(shj)发送到客户端共一百零三页1.3 Servlet基本知识javax.servlet.http 包的接口(ji ku)为:HttpServletRequest 接口(ji ku) 提供 HTTP 请求信息HttpServletResponse 接口 提供 HTTP 响应共一百零三页1.3 Servlet基本知识Servlet 部署在容器里,生命周期由容器管理Servlet 的生命周期就是指创建 Servlet 实例之后其存在的时间以及何时消失Servlet的生命周期概括为以下几个阶段:装载Servlet:这项操作一般是动态执行(zhxng)的;创建一个Servlet实例

35、;调用Servlet的init()方法;服务:如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法;销毁:实例被销毁,通过调用Servlet的destory()方法来销毁servlet。共一百零三页1.3 Servlet基本知识Servlet 引擎(ynqng)Servlet 实例(shl)第一次请求时创建实例第一次请求时调用init()方法调用service()方法销毁实例时调用destroy()方法Servlet 的生命周期共一百零三页1.3 Servlet基本知识生命周期的各个(gg)阶段为:共一百零三页1.3 Servlet基本知识生命周期的 3个方

36、法(fngf)为: init()service()destroy()共一百零三页1.3 Servlet基本知识init()在Servlet的生命周期中,仅执行(zhxng)一次init方法,是在服务器装入Servlet时执行的缺省的init()方法设置了Servlet的初始化参数,并用它的ServletConfig对象参数来启动配置Public void init(ServletConfig config) throws ServletException共一百零三页1.3 Servlet基本知识service()在调用service()方法之前,应确保已完成init()方法 service()

37、方法是Servlet的核心。 每当一个(y )客户请求一个(y )HttpServlet对象,该对象的service()方法就被调用;3. 当一个客户通过HTML表单发出一个HTTP POST请求时,doPost()方法被调用4. 当一个客户通过HTML表单发出一个HTTP GET请求或者直接请求一个URL时,doGet()方法被调用共一百零三页1.3 Servlet基本知识共一百零三页1.3 Servlet基本知识destroy()在服务器停止且卸装Servlet时执行(zhxng)该方法当服务器卸装Servlet时,将在所有service()方法调用完成后,或在指定的时间间隔过后调用des

38、troy()方法Public void destroy()共一百零三页1.4 框架模式使用(shyng)MVC框架的原因在早期使用JSP技术开发WEB项目时,程序员通过在HTML中嵌入Java代码和一些标签,来实现动态网页。显然这种开发的表现层和业务处理层是混杂在一起的,其优点是简单直观,易于搭建原型,但比较适宜开发只有几个页面的小型项目。在大型WEB项目的开发中,将程序代码分割成带有清晰功能的组件是一种更好的方式。MVC框架将网页内容的产生,网页内容的显示,业务对象的处理划分为3个相对独立的层,因而(yn r)可以很方便地实现表现层和业务处理层的分离。同时这也使得网页制作人员和软件开发人员之

39、间可以有明确的分工。共一百零三页单独使用JSP或JSP+JavaBean称为Model1。Model1中JSP页面响应请求并返回结果,同时充当视图和控制器,未能实现视图和业务逻辑完全分离,尽管十分简单但不适合大型应用开发,给网页设计和维护带来很多麻烦。1. 客户端请求由JSP页面接受。2. JavaBean处理业务逻辑,由JSP决定与不同(b tn)JavaBean交互。3. JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。4. 由JSP将改变的结果响应到客户端。1.4 框架(kun ji)模式Model 1 客户端JSPJavaBean数据库1234共一百零三页JSP和Serv

40、let可以一起使用来部署Web 应用。Servlet负责控制流管理,而 JSP 则专注于显示逻辑(编写(binxi)HTML)。结合使用JSP和Servlet的开发模式被称为Model2,该模式又叫做MVC模式。1. Servlet接受客户端请求。2. Servlet处理请求并调用不同的JavaBean。3. JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。4. 由Servlet将处理后的JavaBean模型传递给JSP页面。5. 由JSP将后端处理结果展示到客户端。1.4 框架(kun ji)模式 Model 2客户端JSPJavaBean数据库1234Servlet5共一百零

41、三页1.4 框架模式 Model2工作(gngzu)机制由Servlet通过request.SetAttribute方式与JSP通信,负责请求管理以及调用相关的业务逻辑。而JSP则通过request.getAttribute方式获得(hud)所需要的Model信息,并最终显示在JSP页面上。这是最基本的MVC Model2,也是一种责任的划分,实现了各组件间的松散耦合,以后的Struts、Spring 的MVC都是基于这样的理念。共一百零三页1.4 框架(kun ji)模式共一百零三页841.4 框架(kun ji)模式设计模式的定义什么(shn me)是设计模式是一套被反复使用、多数人知晓的

42、、代码设计经验的总结模式必须是典型问题(不是个别问题)的解决方案设计模式的作用解决一类问题的成功经验是为了可重用代码、让代码更容易被他人理解、保证代码可靠性共一百零三页1.4 框架模式(msh) MVC框架简介不同的体系结构的web应用程序可能需要不同的开发模式。MVC是一种软件设计模式,最初是为SMALLTALK-80语言(yyn)提出的,后来在JSP开发中渐渐得到广泛的应用,并且成为Sun公司推荐的J2EE平台的设计模式。Sun公司提出的Model2开发模型就是基于MVC设计模式的应用。MVC框架支持大多数现代图形用户界面。在Web应用程序开发中,MVC框架应用非常广泛,特别适合应用在大型

43、的、比较复杂的项目开发中。MVC(Model-View-Controller),即模型-视图-控制器是当前最为流行的Web开发模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。共一百零三页MVC 设计模式框架(kun ji)是什么MVC 设计模式、思想、目的MVC设计模式即是模型视图控制器(ModelViewController)设计模式。其中M代表Model,V代表View,C代表Controller。MVC的核心思想是将一个应用程序的数据业务处理功能(模型层),表示功能(视图层)和控制功能(控制层)在3个不同的部分(也叫层)上分别实现。MVC的目的是增强代码的

44、复用性,降低数据描述和应用操作(cozu)的可耦合度,并提高代码的可读性。同时也可以使软件的可维护性,可修复性,灵活性和封装性提高共一百零三页871.4 框架(kun ji)模式 MVC设计模式MVC设计模式模型(mxng) Model视图 View控制器 ControllerMVC 模式控制器模型视图JavaBeanJSPServlet共一百零三页1.4 框架(kun ji)模式V(视图(sht))Login.jspsuccess.jspfailure.jspC(控制器)LogServletM(模型)userbean请求成功调用返回失败用户登录应用共一百零三页模型(Model)封装了内核功能

45、和数据业务(yw)逻辑(软件的核心)数据以及访问它们的函数(视图组件使用)执行特定应用程序处理的过程(控制器代表用户调用)模型对于用户来说是不可见的(M与V独立)模型独立于特定输出表示或者输入方式(M与C独立)用户只能通过控制器操作模型(C是M与V之间的桥梁)1.4 框架(kun ji)模式共一百零三页1.4 框架(kun ji)模式变更-传播机制(1)一个模型可对应多个视图 如果用户通过一个视图的控制器改变了模型中的数据,那么依赖于该数据的其他视图也应该反映出这样(zhyng)的变化 一旦模型的数据发生了变化,模型需要通知所有相关的视图做出相应的变化维护数据的一致性共一百零三页1.4 框架(kun ji)模式变更-传播机制(2)工作原理:模型维护了一个表的视图和控制器都会收到变更通知所有视图还有一些控制器在这个表中登记了对变更通知的需求模型状态的改变(gibin)将触发变更-传播机制,每个在表中登记共一百零三页1.4 框架(kun ji)模式视图(View)向用户显示信息不同的视图使用不同的方法呈现(chngxin)信息每个视图组件都有一个更新函数,这个函数被模型变更通知激活这个函数被激活(此时模型已经改变)后,将使得视图重新和模型一致在初始化阶段,视图向模型登记请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论