版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息系统软件设计信息系统软件设计靳靳 鹏鹏合肥工业大学管理学院合肥工业大学管理学院课程内容简介课程内容简介第一章 Java EE 架构介绍第二章 Jsp 基础知识第三章 Struts2.0 表现层技术第四章 Spring 2.5 业务逻辑层技术第五章 Hibernate 3.2 数据持久层技术第六章 DWR基于Ajax技术应用框架参考书参考书p 建议教材:建议教材:1. Java EE实用教程基于WebLogic和Eclipse(第2版)李绪成2. 2. Java高级框架应用开发案例教程 Struts2+Spring+Hibernate ,(高等学校计算机科学与技术项目驱动案例实践规划教材)王
2、永贵、郭伟、冯永安、焦学理等,清华大学出版社,2012-3-23;3. Web编程技术JSP XML JAVAEE(普通高等教育十一五国家级规划教材),丁跃潮 主编,出 版 社:科学出版社,2008-3-1;4. JSP实训教程(21世纪高等学校规划教材 计算机科学与技术),宋智军,邱仲潘编著,出 版 社:电子工业出版社,出版时间:2012-7-1主要参考书主要参考书 Struts2权威指南:基于WebWork核心的MVC开发,李刚,出版社: 电子工业出版社,2007-9-1;Spring技术内幕:深入解析Spring架构与设计原理(第2版), 计文柯 机械工业出版社, 2012-03;精通H
3、ibernate:Java对象持久化技术详解, 孙卫琴, 电子工业出版社,2010-02出版;轻量级Java EE企业应用实战(第3版):Struts 2Spring 3Hibernate整合开发, 李刚, 电子工业出版社, 2012-04;SOA思想、技术与系统集成应用详解, 梁爱虎, 北京:电子工业出版社, 2007.12。XML Web Services高级编程范例, 胡海璐等编著, 北京:电子工业出版社,2003.2. 第第1 1章章 Java EEJava EE架构介绍架构介绍1.1 Java EE 概述概述p Java 发展过程发展过程 90年,年,Sun公司公司James Gos
4、ling领导的小组设计了一种平领导的小组设计了一种平台无关的语言台无关的语言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 1.1 Java EE 概述概述 99.7,重新组织,重新组织Java平台的集成方法,平台的集成方法, 升级到升级到1.2版;版;Java从一种从一种语言语言发展成为一种发展成为一种开发平台开发平台,并将,并将Java企业企业级应用级应用开
5、发平台作为发展方向,出现了开发平台作为发展方向,出现了Sun ONE和和Java平台的三个版本平台的三个版本J2SE、J2ME和和J2EE。1.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.2 平台平台1.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.2 关键思想关键思想 应用的逻辑分层,客户端层、Web层 、EJB层和数据层 组件概念,将应用中的不同程序分成不同的组件,包括Applet、Application、JSP、Servlet和EJB等组件; 服务的标准化,对常见的服务进行标准化,制定标准规范,例如JMS、JNDI、JTA等; 容器的概念,容
6、器为组件提供运行环境,并为组件提供必要的服务。1.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.31.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.3 比较大的变动:比较大的变动: Connection API 支持与外部企业信息系统的集成; 需要一个JMS提供者 JAXP API 支持对XML的处理 JAAS API 对Connection API 的安全支持 EJB规范支持使用IIOP协议的互操作 EJB规范增加一种新的容器管理持久性模型,支持消息驱动Bean,支持本地EJB1.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.
7、4 1.1 Java EE 1.1 Java EE 概述概述pJ2EE 1.4 主要目标是支持web service 增加几个API 增强许多现有的J2EE API1.1 Java EE 1.1 Java EE 概述概述pJava EE 51.1 Java EE 1.1 Java EE 概述概述pJava EE 5 主要的变动是: J2EE 变成了 Java EE 5 用Java 语言元注释(Annotation)u 减少Java EE 部署描述符的使用u 注释主要作用是将资源和其它的依赖注入到Java EE组件中,是对已有的JNDI查找能力的一种补充 增加JSTL和JSF技术 增加Java
8、持久性API,简化Java对象到数据库的映射。1.1 Java EE 1.1 Java EE 概述概述pJava EE 特点:特点: 标准:支持许多标准的服务、组件、客户端、工具,可以跨平台 分布式 通用服务,可以由平台提供通用的服务,例如事物、安全、持久性 组件模型,开发可以分模块进行,不同应用可以共享代码、业务 互操作,可以通过标准的协议与其它系统进行交互1.1 Java EE 1.1 Java EE 概述概述pJava 技术系列的技术系列的 3 个版本个版本 JavaSE:Java Standard Edition,Java 技术标准版,以界面程序、Java小程序和其它一些典型的应用为目
9、标JavaEE:Java Enterprise Edition,Java技术企业版,以服务器端程序和企业软件的开发为目标JavaME:Jave Micro Edition,Java技术微型版,为小型设备、独立设备、互联移动设备、嵌入式设备程序开发而设计1.1 Java EE 1.1 Java EE 概述概述JavaSE、JavaEE、JavaME 之间的关系图Java Platform Standard Edition Java Platform Standard Edition Java SE APIJava SE API.Net FrameWork.Net FrameWork.Net Fr
10、ameWork.Net FrameWorkJDKJDKpJDK 是整个Java的核心,包括了Java运行环境(Java Runtime Enviornment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。软件开发层次结构软件开发层次结构单机单机最简单的开发模式图示单机应用程序数据存储p最简单的软件开发模式,是单机形式软件开发层次结构软件开发层次结构C/SC/Sp胖客户端开发模式:可以在各个客户端上面运行应用程序,各个客户端都访问服务器端的数据库胖客户端开发模式图示软件开发层次结构软件开发层次结构B/SB/Sp客户机使用的是浏
11、览器,那么连表示逻辑都可以存放在服务器端,称为瘦客户端基于 Web 的瘦客户端开发模式1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介p J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次组件、服务架构及技术层次,均有共通的标标准及规格准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介p组件技术组件技术 由开发人员用来创建企业应用程序的主要部分,即用户界面和业务逻辑。p服务技术服务
12、技术 数据库访问(JDBC) Java命名与目录接口 (JNDI) 事务服务 JTA (Java事务API) JTS (Java事务服务)1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介p通信技术通信技术提供在客户端与服务器之间以及不同服务器托管的协作对象之间进行通信的机制。HTTP(S)RMI (远程方法调用)OMG (对象管理组协议)JMS(Java消息服务)JavaMail (Java电子邮件)连接器架构1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJavaEE 中的重要技术规范例举中的重要技术规范例举JDBC(Java Databas
13、e Connectivity):JDBC API 为访问不同的数据库提供了一种统一的途径 JNDI(Java Name and Directory Interface):JNDI API 被用于执行名称和目录服务,它提供了一致的模型来存取和操作企业级的资源或应用服务器中的对象1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EE的体系结构的体系结构 运行在客户端机器上的客户层组件。如应用客户端程序和 Applets,是客户层组件,它们可以直接访问数据库 运行在 JavaEE 服务器上的 Web 层组件。Java Servlet 和 JavaServer Pag
14、es(JSP)是 Web层组件,它们也可以访问数据库,运行在服务器中的 Web 容器中 运行在 JavaEE 服务器上的业务逻辑层组件。Enterprise JavaBeans(EJB)是业务层组件,也可以访问数据库,运行在服务器中的 EJB 容器中1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EE的体系结构的体系结构应用程序应用程序客户端客户端动态动态HTML页面页面JAVA EE应用程序应用程序 1JAVA EE应用程序应用程序 2JSP页面页面企业企业Bean企业企业Bean数据库数据库数据库数据库客户层客户层Web层层业务层业务层EIS 层层JAV
15、A EE 服务器机服务器机客户机客户机数据库服务器机数据库服务器机客户层客户层客户层的组件在客户机上运行,客户机客户层的组件在客户机上运行,客户机可以是笔记本电脑、台式电脑、可以是笔记本电脑、台式电脑、掌上电脑和移动电话等掌上电脑和移动电话等Web层层Web层组件在层组件在JAVA EE 服务器上运行。服务器上运行。Web 层对客户层的请求做出处理及响应层对客户层的请求做出处理及响应业务层在业务层在JAVA EE 服务器上运行。服务器上运行。 业务层实业务层实现了应用程序的业务逻辑现了应用程序的业务逻辑.服务器提供系统级服务器提供系统级服务服务,如事务管理、安全性和并发控制如事务管理、安全性和
16、并发控制EIS 层组件在层组件在 EIS 服务器上运行,服务器上运行,表示企业数据信息表示企业数据信息EIS层层1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EE 容器和组件容器和组件Java容器容器 分布性分布性 可伸缩性可伸缩性 可用性可用性 事务性事务性 安全性安全性 生命周期管理生命周期管理Java组件组件 表示表示JSP、Servlet 、Applet 业务逻辑业务逻辑EJB 数据访问数据访问EJB1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJa
17、va EE平台基于“容器”(container)的结构提供必要的系统服务。p容器向使用Java编写的面向对象应用程序组件提供运行环境,并提供一系列的底层服务,例如:安全、事务、生命周期管理、对象查找与缓存、持久化以及网络通讯等等。p容器用来管理组件行为的一个集合工具,组件的行为包括与外部环境的交互、组件的生命周期、组件之间的合作依赖关系等等。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava Java 容器作用容器作用 容器是一种运行在服务器上的软件实体容器是一种运行在服务器上的软件实体,用于管理特定类型的用于管理特定类型的组件组件,为开发的J2EE组件提供执行
18、环境。 在一个组件被执行前,必须被装配到一个J2EE应用程序中,并且部署到它们的容器部署到它们的容器。装配的过程包括为J2EE应用程序中的每一个组件以及J2EE应用程序本身指定容器的设置指定容器的设置。 容器设置定制了由容器设置定制了由J2EEJ2EE服务器提供的底层支持服务器提供的底层支持,这将包括诸如安全性、事务管理、Java命名目录接口(JNDI)搜寻以及远程序连接。 通过容器, J2EE体系结构就能在开发和部署时,在不同类型的中间层服务器间实现可移植性。 容器还负责管理部署在其中的组件的生命周期容器还负责管理部署在其中的组件的生命周期,及诸如资源汇集和强制执行安全之类的工作。 依赖于容
19、器的类型,还可以访问一些或全部J2EE API。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EEJava EE容器组成容器组成 Web容器:包括Jsp与Servlet组件,可使用EJB中的组件完成复杂的商务逻辑; EJB容器:包含组件EJB, EJB规范定义了一个开发和部署分布式商业逻辑的框架; Applet容器包含组件Applet,即可使用J2SE开发Applet; Application Client容器:包含组件Application Client。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EE 容器说明容
20、器说明nApplet 容器是运行在客户端机器上的web浏览器和Java 插件的结合。n应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行。应用程序客户端和它们的容器运行在客户端机器上。nWeb容器管理所有J2EE 应用程序中JSP页面和Servlet组件的执行。Web组件和它们的容器运行在J2EE服务器上。nEJB 容器管理所有J2EE 应用程序中企业级bean 的执行。enterprise bean 和它们的容器运行在J2EE服务器上。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介远程调用远程调用线程调度线程调度授权与验授权与验证证分布式管分布式管
21、理理Bean管理管理持久化管持久化管理理任务调度任务调度邮件服务邮件服务数据连接数据连接管理管理WS服务服务依赖注入依赖注入异步消息异步消息APOEJB容器容器EJBEJB规范规范servicesDAOSAOPOejb-jar.xml业务层业务层容器功容器功能总结能总结1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介小孩的积木小孩的积木 积木块积木块组装组装成品成品JavaEE组件组件组件间协作组件间协作应用程序应用程序组件开发组件开发组件组件开发开发1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介JavaEEJavaEE是基于组件开发是基于组件
22、开发 请求请求ServletJavaBeanJSP页面页面执行执行调用调用转向转向响应响应JSTL使用使用访问访问返回数据返回数据客户端客户端1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介pJava EE 组件技术组件技术 J2EEJ2EE应用程序是由组件构成的应用程序是由组件构成的。J2EEJ2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EEJ2EE应用程序,并与其他组件交互。pJavaEE的运行环境定义了的运行环境定义了4种类型的应用组件:种类型的应用组件:Applet客户端Application客户端Web组件EJB组件1.2 Java E
23、E 1.2 Java EE 核心技术简介核心技术简介pWeb 组件组件 Web 组件提供了对组件提供了对请求的响应请求的响应 它它包含包含Servlet 和和 JSP 两个两个 Web 组件组件,它们在,它们在 Web 服务服务器上运行器上运行l JavaEE其它核心技术其它核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、 JDBC、XML、 JNDI(Java Naming and Directory Interface)、 JMAPI(Java Management API)、 JTS/JTA(Java Transaction Servic
24、e/API)、 JMS( Java Messaging Service)、 Java Security API。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介p JavaEE核心核心技术:技术:EJB JavaEE的的基石基石EJB组件 EJB分为三种:会话EJB、实体EJB和消息驱动EJBEJB容器 是EJB组件的运行环境,为部署的EJB组件提供各种服务(事务、安全、远程客户端的网络发布、资源管理等)。容器厂商也可以在容器或
25、服务器中提供额外服务的接口。EJB服务器 管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介-EJB-EJBp EJB:企业级JavaBean(Enterprise JavaBean)是一个用来构筑企业级应用的服务器端可被管理组件组件。p Java EE API提供了对EJB的规范规范。EJB是一个封装有某个应用程序的业务逻辑服务器业务逻辑服务器端组件。p EJB最早于1997年由IBM提出,旋即被太阳微系统采用并形成标准(EJB 1.0 和EJB 1.1)。其后在JCPJCP(Java Community Pr
26、ocess)一系列JSRJSR(Java请求规范,Java Specification Request)被制订来定义新的EJB标准,分别是JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0)。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介-EJB-EJBp EJB规范明确了一个应用服务器应当支持的服务,包括:数据持久化事务处理并发控制基于JMS的事件驱动基于JNDI的名字和空间管理基于JCE和JAAS的安全管理应用服务器端的软件组件部署使用RMI-IIOP协议的远程过程调用将业务方法暴露为Web服务1.2
27、 Java EE 1.2 Java EE 核心技术简介核心技术简介-EJB-EJBp EJB容器可以接受三类EJB会话Bean(Session Beans)无状态会话Bean(Stateless Session Beans)有状态会话Bean(Stateful Session Beans)实体Bean(Entity Beans)消息驱动Bean(Message Driven Beans ,MDBs)p EJB规范还定义了一个跨平台的统一部署机制。部署描述符是一个XML文档,文件名通常为ejb-jar.xml。负责为每一个EJB定义入口。部署描述符的主要内容包括: Home接口名 Bean的Ja
28、va类名 Home接口的Java接口名 组件接口的Java接口名 持久化存储(针对实体Bean) 安全策略和角色分配p EJB3.0起开始广泛使用Java注释替代传统的部署描述符ejb-jar.xml。但后者仍然有效。1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介-EJB-EJB1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介p Java EE 其它核心技术其它核心技术RMI(Remote Method Invoke):RMI 协议调用远程对象上的方法,是被 EJB 使用的更底层的协议;XML(Extensible Markup Languag
29、e):XML 是一种标记语言,它被用来在不同的商务过程中共享数据,或者对系统功能进行配置;JMS(Java Message Service):JMS 是用于和面向消息的中间件相互通信的应用程序接口1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介JTA(Java Transaction Architecture):JTA 定义了一种标准的 API,应用系统由此可以访问各种事务 JavaMail 和 JAF(JavaBeans Activation Framework):JavaMail 是用于存取邮件服务器的 API,JavaMail 利用 JAF 来处理 MIME 编码
30、的邮件附件1.2 Java EE 1.2 Java EE 核心技术简介核心技术简介JSP(Java Server Pages):JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成。服务器在页面被客户端所请求以后,对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器 Java Servlet: Servlet 是一种小型的 Java 程序,是比 JSP 更加底层的组件,完成的功能和 JSP 类似1.3 Servlet1.3 Servlet基本知识基本知识p 理解HTTP Servlet 基础知识p 使用 Servlet APIp 理解Servlet 的生
31、命周期1.3 Servlet1.3 Servlet基本知识基本知识p CGI 的工作过程的工作过程浏浏览览器器Http Require setstatic htmlCGI 进程进程1CGI 进程进程2 1.3 Servlet1.3 Servlet基本知识基本知识p Servlet 的工作过程浏浏览览器器Http Require setstatic htmlServlet 实例实例线程线程1线程线程21.3 Servlet1.3 Servlet基本知识基本知识1“程序”代表一个静态的对象,是内含指令和数据的文件,存储在磁盘或其他存储设备中 2“进程”代表一个动态的对象,是程序的一个执行过程,存在
32、于系统的内存中。一个进程对应于一个程序3“线程”是运行于某个进程中,用于完成某个具体任务的顺序控制流程,有时被称为轻型进程。1.3 Servlet1.3 Servlet基本知识基本知识p Servlet与CGI的对比:CGI采用多进程的方式为并发客户请求服务Servlet采用多线程的方式为并发客户请求服务进程占有独立的资源,运行快,但启动慢线程共享进程的资源,启动快,资源冲突时速度慢并发客户端量大时,多线程因共享资源而占有很大优势1.3 Servlet1.3 Servlet基本知识基本知识p Servlet定义定义 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序,是按照
33、Servlet规范编写的java类。IE浏览器浏览器Servlet引擎引擎Servlet模块模块请请求求响响应应HTTP请求请求HTTP响应响应客户端客户端WEB服务器服务器1.3 Servlet1.3 Servlet基本知识基本知识p 整个处理流程如下整个处理流程如下: HTTP请求:客户将客户请求发送给Servlet引擎; 请求:Servlet引擎将请求转发送给处理请求的Servlet模块; 响应:Servlet模块接受请求后,调用相应的服务(service()对请求进行处理,然后将处理结果返回给Servlet引擎。 HTTP响应:Servlet引擎将结果发送给客户端。1.3 Servle
34、t1.3 Servlet基本知识基本知识p ServletAPI Servlet的框架是由两个java包组成: javax.servlet和javax.servlet.http javax.servlet包中定义了所有的servlet类都必须实现的接口和类。 javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类pServlet的框架的核心核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.1.3 Servlet1.3 Servlet基本知识基本知识p HttpServlet 类提供一个抽象类以创建 HTTP S
35、ervletpublic void doGet(HttpServletRequest req, HttpServletResponse res)doGet() 方法处理客户端作出的 GET 请求。public void doPost(HttpServletRequest req, HttpServletResponse res)doPost() 方法处理客户端作出的 POST 请求。Form表单处理表单处理1.3 Servlet1.3 Servlet基本知识基本知识p ServletRequest接口中封装了客户请求信息.如客户请求方式,参数名,参数值,客户端正在使用的协议,以及发出客户请求的
36、远程主机信息等p ServletResponse接口为Servlet提供了返回相应结果的方法1.3 Servlet1.3 Servlet基本知识基本知识p javax.servlet 包的接口为:ServletConfig 接口在初始化的过程中由 Servlet 容器使用ServletContext 接口定义 Servlet 用于获取来自其容器的信息的方法 ServletRequest 接口 向服务器请求信息 ServletResponse 接口 响应客户端请求1.3 Servlet1.3 Servlet基本知识基本知识ServletInputStream 类用于从客户端读取二进制数据Serv
37、letOutputStream 类用于将二进制数据发送到客户端1.3 Servlet1.3 Servlet基本知识基本知识p javax.servlet.http 包的接口为:HttpServletRequest 接口 提供 HTTP 请求信息HttpServletResponse 接口 提供 HTTP 响应1.3 Servlet1.3 Servlet基本知识基本知识pServlet 部署在容器里,生命周期由容器管理pServlet 的生命周期就是指创建 Servlet 实例之后其存在的时间以及何时消失pServlet的生命周期概括为以下几个阶段:装载Servlet:这项操作一般是动态执行的;
38、创建一个Servlet实例;调用Servlet的init()方法;服务:如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法;销毁:实例被销毁,通过调用Servlet的destory()方法来销毁servlet。1.3 Servlet1.3 Servlet基本知识基本知识Servlet 引擎引擎Servlet 实例实例第一次请求时创建实例第一次请求时调用init()方法调用service()方法销毁实例时调用destroy()方法Servlet 的生命周期的生命周期1.3 Servlet1.3 Servlet基本知识基本知识p 生命周期的各个阶段为:1.3
39、Servlet1.3 Servlet基本知识基本知识p 生命周期的 3个方法为: init()service()destroy()1.3 Servlet1.3 Servlet基本知识基本知识p init()在Servlet的生命周期中,仅执行一次init方法,是在服务器装入Servlet时执行的缺省的init()方法设置了Servlet的初始化参数,并用它的ServletConfig对象参数来启动配置Public void init(ServletConfig config) throws ServletException1.3 Servlet1.3 Servlet基本知识基本知识p serv
40、ice()1. 在调用service()方法之前,应确保已完成init()方法2. service()方法是Servlet的核心。 每当一个客户请求一个HttpServlet对象,该对象的service()方法就被调用;3. 当一个客户通过HTML表单发出一个HTTP POST请求时,doPost()方法被调用4. 当一个客户通过HTML表单发出一个HTTP GET请求或者直接请求一个URL时,doGet()方法被调用1.3 Servlet1.3 Servlet基本知识基本知识1.3 Servlet1.3 Servlet基本知识基本知识p destroy()在服务器停止且卸装Servlet时执
41、行该方法当服务器卸装Servlet时,将在所有service()方法调用完成后,或在指定的时间间隔过后调用destroy()方法Public void destroy()1.4 1.4 框架模式框架模式使用使用MVCMVC框架的原因框架的原因p 在早期使用JSP技术开发WEB项目时,程序员通过在HTML中嵌入Java代码和一些标签,来实现动态网页。显然这种开发的表现层和业务处理层是混杂在一起的,其优点是简单直观,易于搭建原型,但比较适宜开发只有几个页面的小型项目。p 在大型WEB项目的开发中,将程序代码分割成带有清晰功能的组件是一种更好的方式。MVC框架将网页内容的产生,网页内容的显示,业务对
42、象的处理划分为3个相对独立的层,因而可以很方便地实现表现层和业务处理层的分离。同时这也使得网页制作人员和软件开发人员之间可以有明确的分工。p 单独使用JSP或JSP+JavaBean称为Model1。p Model1中JSP页面响应请求并返回结果,同时充当视图和控制器,未能实现视图和业务逻辑完全分离,尽管十分简单但不适合大型应用开发,给网页设计和维护带来很多麻烦。1. 客户端请求由JSP页面接受。2. JavaBean处理业务逻辑,由JSP决定与不同JavaBean交互。3. JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。4. 由JSP将改变的结果响应到客户端。1.4 1.4
43、框架模式框架模式Model 1 Model 1 客户端客户端JSPJavaBean数据库数据库1234JSP和Servlet可以一起使用来部署Web 应用。Servlet负责控制流管理,而 JSP 则专注于显示逻辑(编写HTML)。结合使用JSP和Servlet的开发模式被称为Model2,该模式又叫做MVC模式。1. Servlet接受客户端请求。2. Servlet处理请求并调用不同的JavaBean。3. JavaBean与数据持久层交互,由业务逻辑操作并改变其状态。4. 由Servlet将处理后的JavaBean模型传递给JSP页面。5. 由JSP将后端处理结果展示到客户端。1.4 1
44、.4 框架模式框架模式 Model 2 Model 2客户端客户端JSPJavaBean数据库数据库1234Servlet51.4 1.4 框架模式框架模式 Model2 Model2工作机制工作机制p 由Servlet通过request.SetAttribute方式与JSP通信,负责请求管理以及调用相关的业务逻辑。p 而JSP则通过request.getAttribute方式获得所需要的Model信息,并最终显示在JSP页面上。p 这是最基本的MVC Model2,也是一种责任的划分,实现了各组件间的松散耦合,以后的Struts、Spring 的MVC都是基于这样的理念。1.4 1.4 框架
45、模式框架模式841.4 1.4 框架模式框架模式设计模式的定义设计模式的定义p 什么是设计模式什么是设计模式是一套被反复使用、多数人知晓的、代码设计经验的总结模式必须是典型问题(不是个别问题)的解决方案p 设计模式的作用设计模式的作用解决一类问题的成功经验是为了可重用代码、让代码更容易被他人理解、保证代码可靠性1.4 1.4 框架模式框架模式 MVC MVC框架简介框架简介p 不同的体系结构的web应用程序可能需要不同的开发模式。MVC是一种软件设计模式,最初是为SMALLTALK-80语言提出的,后来在JSP开发中渐渐得到广泛的应用,并且成为Sun公司推荐的J2EE平台的设计模式。Sun公司
46、提出的Model2开发模型就是基于MVC设计模式的应用。p MVC框架支持大多数现代图形用户界面。在Web应用程序开发中,MVC框架应用非常广泛,特别适合应用在大型的、比较复杂的项目开发中。p MVC(Model-View-Controller),即模型-视图-控制器是当前最为流行的Web开发模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。MVC MVC 设计模式框架是什么设计模式框架是什么p MVC 设计模式、思想、目的设计模式、思想、目的MVC设计模式即是模型视图-控制器(Model-View-Controller)设计模式。其中M代表Model,V代表Vi
47、ew,C代表Controller。MVC的核心思想是将一个应用程序的数据业务处理功能(模型层),表示功能(视图层)和控制功能(控制层)在3个不同的部分(也叫层)上分别实现。MVC的目的是增强代码的复用性,降低数据描述和应用操作的可耦合度,并提高代码的可读性。同时也可以使软件的可维护性,可修复性,灵活性和封装性提高871.4 1.4 框架模式框架模式 MVC MVC设计模式设计模式MVCMVC设计模式设计模式模型 - Model视图 - View控制器 - ControllerMVC 模式模式控制器控制器模型模型视图视图JavaBeanJSPServlet1.4 1.4 框架模式框架模式V(视图
48、)Login.jspsuccess.jspfailure.jspC(控制器)LogServletM(模型)userbean请求成功调用返回失败用户登用户登录应用录应用p 模型(模型(ModelModel)封装了内核功能和数据封装了内核功能和数据业务逻辑(软件的核心)业务逻辑(软件的核心)数据以及访问它们的函数(视图组件使用)数据以及访问它们的函数(视图组件使用)执行特定应用程序处理的过程(控制器代表用户调用)执行特定应用程序处理的过程(控制器代表用户调用)模型对于用户来说是不可见的模型对于用户来说是不可见的(M(M与与V V独立独立) )模型独立于特定输出表示或者输入方式模型独立于特定输出表示
49、或者输入方式(M(M与与C C独立独立) )用户只能通过控制器操作模型用户只能通过控制器操作模型(C(C是是M M与与V V之间的桥梁之间的桥梁) )1.4 1.4 框架模式框架模式1.4 1.4 框架模式框架模式p 变更变更- -传播机制传播机制(1)(1)一个模型可对应多个视图一个模型可对应多个视图 如果用户通过一个视图的控制器改变了模型中的数如果用户通过一个视图的控制器改变了模型中的数据,那么依赖于该数据的其他视图也应该反映出这样据,那么依赖于该数据的其他视图也应该反映出这样的变化的变化 一旦模型的数据发生了变化,模型需要通知所有相一旦模型的数据发生了变化,模型需要通知所有相关的视图做出
50、相应的变化关的视图做出相应的变化维护数据的一致性维护数据的一致性1.4 1.4 框架模式框架模式p 变更变更-传播机制传播机制(2)p 工作原理:工作原理:模型维护了一个表的视图和控制器都会收到变更通知模型维护了一个表的视图和控制器都会收到变更通知所有视图还有一些控制器在这个表中登记了对变更通所有视图还有一些控制器在这个表中登记了对变更通知的需求知的需求模型状态的改变将触发变更模型状态的改变将触发变更-传播机制,每个在表中登传播机制,每个在表中登记记1.4 1.4 框架模式框架模式p 视图(视图(View)向用户显示信息向用户显示信息不同的视图使用不同的方法呈现信息不同的视图使用不同的方法呈现信息每个视图组件都有一个更新函数,这个函数被模型变每个视图组件都有一个更新函数,这个函数被模型变更通知激活更通知激活这个函数被激活(此时模型已经改变)后,将使得视这个函数被激活(此时模型已经改变)后,将使得视图重新和模型一致图重新和模型一致在初始化阶段,视图向模型登记请求变更通知(表)在初始化阶段,视图向模型登记请求变更通知(表)p 从模型获得数据从模型获得数据通过状态查询函数实现通过状态查询函数实现例如:定时刷新例如:定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西证券投资基金合同
- 燃气工程维保费合同
- 汽车车衣质保合同
- 公司违约解除合作合同
- 疏通下水管道合同
- 酒会承包合同
- 工程施工款项合同
- 闵行区知识产权合同
- 型材采购合同
- 汽车销售合同范本及注意事项
- 2025辽宁沈阳市铁西区面向社会招聘社区工作者73人笔试考试参考题库及答案解析
- 口腔医学技术生涯规划
- 深信服-HCI超融合-L1认证考试复习题库资料(含答案)
- 胸腔闭式引流护理-中华护理学会团体标准
- 机器人目标点调整及轴配置
- kV配电网接线选用原则
- GA 1029-2022机动车驾驶人考试场地及其设施设置规范
- YY/T 1469-2016便携式电动输液泵
- GA/T 642-2020道路交通事故车辆安全技术检验鉴定
- 眼底荧光血管造影课件
- 内蒙古易高煤化科技有限公司装置生产过程df
评论
0/150
提交评论