1、基于J2EE架构的企业级组件开发技术,刘 炜 上海大学计算机学院 ,课程简介,在软件工程理论、高级程序设计语言的基础上,掌握基于Java EE的企业级开发环境、架构和开发技术,掌握面向对象和面向组件的编程思想,熟悉各种面向对象的软件设计模式。 自主开发或改写一个基于JAVA EE平台的开源组件系统。,课程目标,(1) 立足于企业级的JAVA EE架构技术,基于组件的软件开发思想。 (2) 讲授系统级的开发方法,从需求分析到设计及实现。 (3) 通过工程化训练,构筑一个完整的软件系统,实践java ee软件开发全过程。,课程内容结构,Java 6.0 编程语言 Java EE 架构技术 JSP、
2、Servlet和JavaBean相关技术 Struts2, Hibernate, Spring等Java EE框架 面向对象的设计模式 开源项目分析与开发(讨论),课程安排,第一讲:组件开发与Java EE技术概述(3学时) 概括地讲解什么是组件和组件开发,讲解Java EE技术框架。 使学生站在宏观角度看待Java EE和Java EE组件开发技术。第二讲:Java 6.0编程基础(3学时) 1Java EE编程基础 2. Java 6语言新特性:增强的for循环、注释、枚举、泛型、静态导入等 3. Java EE APIs 要求:掌握Java编程基础知识,面向对象的基本概念,Java类的编
3、写与测试,掌握Java 5的一些新特性。 重点:Java语言、面向对象语言的特性,Java类的编写、编译和测试 难点:Java 6的新特性:增强的for循环、注释、枚举、泛型、静态导入等,课程安排,第三讲:JSP、Servlet和JavaBean相关技术(3学时) 1. Jsp相关技术详解Web应用和Web.xml文件JSP基本原理JSP的10个基本指令JSP的9个内置对象JSP2特性 2Servlet相关技术详解Servlet的工作原理Servlet的开发Servlet的配置 3. JavaBean的开发与使用 4. Filter和Listener 要求:掌握Jsp、Servlet和Java
4、bean的相关技术。 重点:Jsp的工作原理,编写Jsp程序 难点:Jsp2特性,Servelet的工作原理,课程安排,第四讲:Struts 2应用及替代技术( 3 个学时) 1. MVC简介 2. Struts2体系结构 3Struts 2基本应用及工作流程 4Struts 2标签库应用 5Struts 2拦截器 6. Struts 2国际化应用 7. Struts 2综合应用实例 8. 其他替代技术 要求:了解MVC开发模式,理解MVC三层模式的工作原理;了解Struts2的体系结构及工作原理;掌握Struts开发流程(包括程序的编写和配置)。 重点:Struts的工作原理和开发流程。 难
5、点:Struts的体系结构以及工作原理,标签库和拦截器的工作原理。,课程安排,第五讲: Hibernate 3及替代技术( 3个学时) 1.ORM和流行的ORM框架介绍 2.Hibernate概述 3. 对象/关系数据库映射(ORM)、基本的映射方式 4.Hibernate体系结构 5.Hibernate深入使用 6.HQL语言的使用 7.Hibernate的事务控制 要求:掌握ORM的工作原理,掌握基本的映射方式,掌握使用Hibernate编写JAVA EE应用的数据库访问层,掌握Hibernate的配置、映射文件的编写、关联映射、继承映射等,熟悉HQL语言的使用。 重点:Hibernate
6、的配置和使用、HQL语言的使用 难点:Hibernate的关联映射,课程安排,第六讲: Spring及替代技术( 3 个学时) 1Spring的起源和背景 2Spring的下载和安装 3Spring的核心机制:依赖注入 4. Spring容器配置 5. Spring的资源访问 6. Spring的AOP 7Spring的事务管理 8Spring和Struts整合 9. Spring和Hibernate整合 要求:掌握Spring的安装和配置,掌握Spring的核心机制,掌握Spring容器的配置,了解Spring AOP、Spring的事务管理机制;掌握Spring和Struts及Hibern
7、ate的整合方法。 重点:Spring的核心机制,Spring的容器配置,Spring和Struts、Hibernate的整合。 难点:Spring的核心机制,Spring的AOP。,课程安排,第七讲: Spring、Struts、Hibernate整合开发( 3 个学时) 1.学生项目管理系统应用背景 2.JAVA EE编程结构3.系统功能介绍 4. 系统的设计 概要设计 数据库设计 5实现DAO层 6. 实现Service层 7. 实现Web层 要求:掌握JAVA EE编程环境的配置,掌握简单的JAVA EE应用系统开发流程,掌握JAVA EE相关技术的应用。 重点:基于MVC模式的JAV
8、A EE开发流程。 难点:如何将功能需求用JAVA EE技术转化成应用程序。,课程安排,第八讲:Java EE常用的设计模式( 3 个学时) 1.面向对象设计模式简介 2.JAVA EE与设计模式 3.单例模式 4. 工厂模式 5观察者模式 6. 抽象类模式 7. 接口模式 要求:掌握设计模式在JAVA EE应用开发中的使用方法,掌握几种常见设计模式的原理和编写方式。 重点:常见面向对象设计模式的使用。 难点:如何在系统设计中使用设计模式。,课程安排,第九讲:项目研讨( 5-6 个学时) 学生汇报所分析和开发的项目; 教师和学生进行点评和提问; 第十讲:android移动开发,课程考核方式,课
9、程成绩项目分析与研讨(50)课程论文或技术报告(50),参考项目,元搜索引擎 语义Web应用程序(本体编程) 全文检索系统 Web UI Android移动互联网应用 机器学习(文本分类、聚类应用) 网络爬虫 SNS语义分析 MVC 框架,参考书,轻量级Java EE企业应用实战,李刚 疯狂Java讲义,李刚 开发自己的搜索引擎-Lucene+Heritrix,邱哲,符滔滔,王学松 编著 Web 3.0与Semantic Web编程,(美)赫布勒 等,第一讲:组件开发与JAVA EE概述,刘 炜 上海大学计算机学院 ,目录,组件与组件开发 主流Web开发技术及比较 什么是Java EE? Ja
10、va EE Light Framework开发技术 Java EE开发与部署环境配置 总结,软件领域的发展,程序设计方法的发展软件需求的变化软件环境的变化软件开发模式的变化,程序设计方法的发展,功能分解法 计算任务结构化程序设计 以数据为中心面向对象程序设计 以对象为中心组件程序设计 以组件为中心,综 合 使 用,软件需求的变化,计算,实用,管理(MIS),分布式系统,软件环境的变化,单任务,多任务,文字界面,图形界面,单线程,多线程,平台相关,跨平台,单机(本地),网络(分布式),单一语言,多种语言,软件开发模式,机器码,高级语言 和脚本代码,OS + Compiler + Editor,O
11、S + Compilers + IDEs + Libraries + Wizards + Components + other inforstructures + 经验,对象技术,用一种新的思路来看待问题 10多年的发展证明了OO符合软件的规律 对象技术的发展需要开发工具和开发语言的支持三大特性:封装性、继承性、多态性 四个要点:对象+类+继承+消息通信,面向对象技术弱点,在中小规模的软件中,对象和对象之间的协作关系就能够满足需要。但是当软件规模扩大,复杂度上升的时候,面向对象技术强调的协作却表现出另一个极端的特点耦合度太高导致的复杂度。这时候就需要有一种新的方法来弥补面向对象技术的弱点。,大
12、规模软件的特点,大规模软件主要特点是复杂度。比较典型的例子是集成性的项目。软件系统需要将各种各样的硬件、遗留系统、外部接口整合起来。其间可能遇到不同的硬件接口,不同的操作系统,不同的语言,不同的平台,不同的数据库,不同的消息中间件,不同的网络介质。这些都使得系统变得非常的复杂。 面向对象技术的特点是通过对象之间的职责分工和高度协作来完成任务。这样的好处是代码量较少,系统布局合理,重用程度高。但是当对象的个数大量增加的时候,对象之间的高度耦合的关系将会使得系统变得复杂,难以理解。,大规模软件的特点,以前对于这个问题的方法是采用包作为容器来组织对象,对象之间的依赖性将转化为包之间的依赖性。这种方法
13、听起来有道理,但是在实际中仍会出现难以解决的问题。 包仅仅只是容器。这意味着对对象的组织可以是任意的,而包之间依赖关系的设计则还是取决于对象的依赖。此外,包的设计和对象一样,缺乏一个统一的风格。而统一的风格正是大规模软件设计所必须的,因为这样可以有效改进系统的可理解性,这一点非常重要。,面向组件编程,面向组件编程的缩写是COP。COP是对OOP的补充,帮助实现更加优秀的软件结构。组件的粒度可大可小,需要取决于具体的应用。 在COP中有几个重要的概念:服务,服务(Service)是一组接口,供客户端程序使用。例如,验证和授权服务,任务调度服务。服务是系统中各个部件相互调用的接口;组件,组件(Co
14、mponent)实现了一组服务,此外,组件必须符合容器订立的规范,例如,初始化,配置、销毁。 COP是对一种组织代码的思路,尤其是服务和组件这两个概念。在Spring框架中,就采用了COP的思路,将系统看作一个个的组件,通过定义组件之间的协作关系(通过服务)来完成系统的构建。这样做的好处是能够隔离变化,合理的划分系统。而框架的意义就在于定义一个组织组件的方式。,关于组件,定义:软件开发和重用的单位 构成:接口和实现 运行环境:容器 驱动机制:框架 可视化组件-包括外观,事件和属性 控件 非可视化组件-包括业务方法及其实现 服务,业务逻辑 形态:DLL,JSP,Jar等,组件的粒度,组件的粒度是
15、和系统的架构息息相关的。组件的粒度确定了,系统的架构也就确定了。在小规模的软件中,可能组件的粒度很小,仅相当于普通的对象,但是对于大规模的系统来说,一个组件可能包括几十,甚至上百个对象。因此,对使用COP技术的系统来说,需要正确的定义组件的粒度。较好的定义粒度的方法是对核心流程进行分析。,针对接口编程,接口和实现分离是COP的基础,没有接口和实现的分离,就没有COP。接口的高度抽象特性使得各个组件能够被独立的抽取出来,而不影响到系统的其它部分。,接口和实现分离的好处,在模块/组件/对象之间解耦。 轻松的抽换实现,而不用修改客户端。 用户只需要了解接口,而不需要了解实现细节。 增加了重用的可能性
16、。,基于组件开发的好处,实现了各类人员的分工合作 促进了代码重用 降低应用开发的难度 大大提高了软件开发效率 提升了软件的质量 便于分配任务和控制进度,目录,组件与组件开发 主流Web开发技术及比较 什么是Java EE? Java EE Light Framework开发技术 Java EE开发与部署环境配置 总结,主流Web开发技术,.NET Java EE(J2EE) LAMP(Linux+Apache+Mysql+PHP) Ruby on Rails,前三者曾经三足鼎立,R&R异军突起,LAMP,LAMP:LAMP是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的开源软件,包括
17、:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者 Python编程语言。 核心:PHP 领域:大型商业网站,如开心网、校内网、Discuz等,Ruby on Rails,Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,Rails 为你提供一个纯Ruby的开发环境。发布网站时,你只需要一个数据库和一个网络服务器即可。 各类机构,从初创公司、非赢利性组织到企业集团都在使用Rails。Rails是一个基础框架,适用于开发各类
18、网络应用程序。至于这个程序究竟是团队合作平台,社区,电子商务,内容管理或者统计系统, 则由你来决定。 国内先驱:,“Ruby on Rails 是一个重大突破,大大降低了编程的门槛。以前需要数周或数月才能实现的强力网络应用程序,现在只需要几天而已。” -Tim OReilly, OReilly 媒体创始人,Java EE,经过多年沉淀,Java EE平台已经成为电信、金融、电子商务、保险、证券等各行业的大型系统的首选开发平台。 目前Java行业的软件开发已经基本稳定,几年内没有出现具有广泛影响的新技术。 我们说的Java EE,大致分为两种方式: (1)以Spring为核心的轻量级Java E
19、E企业开发平台。 (2)以EJB3+JPA为核心的经典Java EE开发平台。,Java EE案例(业界), ,目录,组件与组件开发 主流Web开发技术及比较 什么是Java EE? Java EE Light Framework开发技术 Java EE开发与部署环境配置 总结,JAVA & J2EE,Java和Java EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,目前主要是.NET和Java两大主流体系。 目前JAVA 2有三个平台: 适用于小型设备和智能卡的Java 2平台Micro版(Java 2 P
20、latform Micro Edition,J2ME) 适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE) 适用于创建服务器应用程序和服务的Java2平台企业版(Java 2 Platform EnterPrise Edition,J2EE)。,What is Java EE,运用Java技术开发企业应用的标准 包括了 多层应用开发模型 开发平台 - APIs 和服务 测试软件包 参考实现 将所有Sun的企业技术集合在一个体系结构下的平台 特定版本下的EJB, Servlet, JSP Java Web Server JNDI,
21、 JDBC, JTA, JMS, JavaMail, CORBA,What is Java EE,今天我们说的Java EE应用,超出了Sun所提出的经典Java EE应用规范,而是一种更广泛的开发规范。 经典Java EE应用以EJB(企业级Java Bean)为核心,以应用服务器为运行环境,所以开发、运行成本高。 我们介绍的轻量级Java EE应用具备了Java EE规范的种种特征,例如面向对象建模的思维、优秀的应用分层及良好的扩展性、可维护性。轻量级Java EE保留了经典Java EE应用的架构,但开发更简单,成本更低。,Java EE 技术架构,任何平台,Java虚拟机,Java E
22、E Framework,安全,组件,组件,组件,组件,JCA,ebXML,JTA,JMS,框架的作用,为组件运行提供基础服务 为组件开发提供基础类 实现了组件之间的隔离 支持组件间的协作 管理组件生命周期 运行于容器之内,Java EE应用的分层模型(1),不管是经典的Java EE架构还是轻量级Java EE架构,大致上可以分为以下几层: Domain Object(领域对象)层:此层有系列的POJO(Plain Old Java Object,普通传统的Java对象) DAO(Data Access Object,数据访问对象)层:此层由系列的DAO组成,这些DAO实现了对数据库的创建、查
23、询、更新和删除(CRUD)等原子操作。,Java EE应用的分层模型(2),业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖DAO组件实现的业务逻辑方法。 控制器层:此层有系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。 表现层:此层有系列的jsp页面、Velocity页面、PDF文档视图组件组成,负责收集用户请求,并显示处理结果。,Java EE应用分层结构,数据库,Doma
24、in Object 层,DAO层,业务逻辑层,MVC控制器层,表现层,提供持久化服务,封装,提供数据访问服务,提供业务逻辑实现,显示,各层代码通过松散耦合方式组合在一起,不以硬编码方式组合。,组件,框架和容器之间的关系,UI组件,逻辑组件,数据组件,事件,调用,调用,客户端,请求,容器,事件处理,框架,业务处理,数据访问请求,数据处理,流程组件,数据库,Java EE应用的组件(1),Java EE大致包括如下几个组件: 表现层组件:主要负责收集用户输入数据和向用户显示系统状态。最常用的表现层技术就是JSP,还可以有Velocity, FreeMarker和Taperstry等技术,也可以用应
25、用程序充当表现层组件。 控制器组件:对于Java EE的MVC框架而言,框架提供一个前端核心控制器,负责拦截用户请求,并将请求转发给控制器组件,控制器组件调用业务逻辑方法,处理用户请求。控制器组件有Struts, Spring MVC等。,Java EE应用的组件(2),业务逻辑组件:系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作。一个业务逻辑方法应该是一个整体,因此我们要求对业务逻辑方法增加事务性,业务逻辑方法仅仅负责实现业务逻辑,不应该进行数据库访问,因此,在业务逻辑层不应该出现Hibernate,JDBC等API。 DAO组件:数据访问对象组件。每个DAO组件
26、都提供Domain Object对象基本的CRUD操作。采用不同的持久层访问技术,DAO组件的实现会完全不同。为了业务逻辑组件的实现与DAO组件的实现分离,我们为每个DAO组件提供接口,业务逻辑组件面向DAO接口编程,从而达到最好的解耦。,Java EE应用的组件(3),领域对象组件:领域对象抽象了系统的对象模型。通常而言,这些领域对象的状态都必须保存在数据库里。因此,每个领域对象通常对应一个或多个数据表,领域对象通常需要提供对数据记录的访问方式。,应用的构成,数据库,逻辑组件,数据组件,注册页面,购物流程,注册流程,充值流程,登陆流程,登陆页面,充值页面,购物页面,商品服务,认证服务,帐户服
27、务,支付服务,订单服务,帐户DAO,商品DAO,订单DAO,UI组件,流程组件,领域对象组件,帐户POJO,商品POJO,订单POJO,Java EE的优势,用简单的Jsp就能完成,为什么还要用Spring, Hibernate这些技术? 软件开发不仅仅考虑开发过程,还要考虑后期的维护、扩展;不仅仅考虑那些小型系统,还要考虑大型系统的协同开发。 对于大型系统而言,采用Java EE架构有很大优势。 软件不是一次性系统,在软件的更新换代中,不是彻底替换软件,只能在其原来基础上延伸。如果支撑企业系统的软件不具备扩展性,将损失惨重。 对于信息化系统,前期开发工作对于整个系统工作量而言只是一小部分,后
28、期的维护、升级往往占更大比重,极端情况下,企业需求发生重大变化,这些都要求软件具有很好的伸缩性。 Java EE可以让软件系统中组件以松耦合的方式组织在一起,让应用之间的耦合停留在接口层次,而不是代码层次。,Java EE的优势,保留现存的IT资产 高效的开发 支持异构环境 坚持面向对象的设计原则 灵活性、可移植性和互操作性 轻松的企业信息系统集成 引进面向服务的体系结构,Java EE为搭建具有可伸缩性、灵活性、易维护性的商业化系统提供了良好的机制:,HOW?,J2EE如此庞大!怎样入手学习?,最佳途径,J2EE without EJB Simplify the Best:轻量框架 Prag
29、matic的企业应用开发Kickstart,目录,组件与组件开发 主流Web开发技术及比较 什么是Java EE? Java EE Light Framework开发技术 Java EE开发与部署环境配置 总结,概念理清,JAVA技术流(以Java作为开发语言的技术),Java2平台(以j2se为核心api),Java2 EE架构规范,JDBC,JNDI,JMS,EJB,非EJB,J2EE容器,JSP, Servelet.,相关概念,Java EE=Java EE容器+Web应用 Java EE容器包括EJB容器和Web容器 Web容器是指Jsp/Servlet容器,你如果要开发一个Web应用
30、,无论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。,Java Web服务器,常见的Web服务器有三个: Tomcat:开源的java web服务器,和Java结合得最好,Sun官方推荐的Jsp服务器。性能和稳定性都非常优秀。 Jetty:另一个优秀的Web服务器,最大优点是可以作为嵌入式服务器。在应用中加入Jetty的jar文件,应用可以在代码中对外提供Web服务。 Resin:目前最快的Jsp、Servlet运行平台,支持EJB。,专业Java EE服务器,Java EE服务器支持更多的Java EE特性,例如分布式事务、EJB容器等。常见的Ja
31、va EE服务器有: JBoss:开源的Java EE服务器,支持EJB3.0。 Weblogic和Websphere:两个专业的商用Java EE服务器,价格不菲,性能非常出色。,对于轻量级Java EE应用而言,Java Web容器完全能胜任。,Java EE与设计模式,模式1:JSP+Java Beans 以JavaBean封装部分业务处理逻辑的开发模型 这种模式的最大优势是实现起来比较简单,适合快速开发小规模的项目。 模式2:MVC(Model-View-Controller) 合理使用了Servlet和JSP的各自特点, Servlet负责业务流程的控制,Bean负责业务数据的逻辑处
32、理, JSP专注于页面表示。 各个层次的责任明确而且独立,开发和维护非常容易。系统的可扩展性也比较好。,典型的MVC Framework,Struts Spring MVC Tapestry Webwork JSF,我们选择的技术路线与开源产品,技术路线: Struts 2+Spring+Hibernate,SSH Spring作为核心 MVC三层模式,开源技术:Tomcat, Hibernate,JBoss, MySQL, Struts, Spring, Hibernate, Acegi, JMS,Quartz JasperReport, iReport, JFreeChart, JBPM
33、,SSH:优秀的轻量级Java EE架构,Struts 2+Spring+Hibernate或SpringMVC+Spring+Hibernate,新的MVC软件开发模式 Struts2(Spring MVC)进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装,这种新的开发模式让我们的开发更加方便、快捷、思路清晰! SSH无需专业的JAVA EE服务器,只需简单的Web服务器就可以运行。 大多数组件和Web服务器都是开源和免费的。,相关技术:JSP、Servlet3.0和JavaBean及替代技术,Jsp是最早的Java EE规范之一,也是最经典的Java EE技术
34、之一。目前,Jsp仍然充当Java EE应用的表现层角色。 Servlet和Jsp完全统一,二者在底层的运行原理完全一样,Jsp必须被Web服务器编译成Servlet,真正在Web服务器运行的是Servlet,可以把Jsp看做是 “草稿”文件,用于生产Servlet,真正提供HTTP服务的是Servlet。Servlet开发成本高,难以维护。 JavaEE的中间层组件将应用底层的状态信息封装为JavaBean,也称为DTO(数据传输对象)。 Freemarker和Velocity可以替代Jsp作为表现层技术。,相关技术:Struts2及替代技术,Struts2是一个优雅的,可扩展的JAVA E
35、E web框架 。,相关技术:Struts2及替代技术,Struts是世界最早的MVC框架,是Java EE应用中使用最广泛的MVC框架。 Struts2拥有众多优秀设计,吸收了传统的Struts和WebWork的精华。 Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开。 其他替代技术:Spring MVC,JSF,Tapestry。,69,Spring简介,Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。 依赖注入set注入,Login log = new Login(); Lo
36、g.iuserDao = UsersDAO,对象名.msg = “world”,Spring简介,SpringFramework是种非侵入式轻量级框架,允许自由选择和组装各部分功能,也提供了和其他很多软件集成的接口,如与Hibernate、Struts的集成。 Spring主要功能有 Dependency Injection、Spring Context、 Spring AOP、Spring ORM、Spring DAO、Spring MVC。,Spring用法,下载springFramework最新版本,将其下的*.jar 拷贝到项目lib中,并引用。 在Web.xml中配置spring的启
37、动方式:Listener方式或Servlet方式。 设置Spring配置文件。 通常在系统运行前完Spring成初始化工作,因此在Web.xml中配置一个初始化Servlet。,Spring优势,利用延时注入思想组装代码,提高系统扩展性,灵活性,实现插件式编程。 利用AOP思想,集中处理业务逻辑,减少重复代码,构建优雅的解决方案。 利用HibernateTransactionManager类封装Hibernate事务管理,其是AOP思想的典型运用,使持久层操作代码简洁精悍。 ,73,Hibernate简介,Hibernate能帮助我们利用面向对象的思想,开发基于关系型数据库的应用程序 第一:将
38、对象数据保存到数据库 第二:将数据库数据读入对象中,Hibernate,对象到关系型数据映射(ORM)是架构中热门的话题,人们希望用ORM工具从单调的SQL中解脱出来, 规范数据层的开发,提高开发效率。Hibernate也是实现这样的功能。Hibernate性能稳定、参考文档齐全,有专门的组织提供升级与技术支持。,Hibernate-搭建环境,从www.hibernate.org下载hibernate最新发行包。 然后将hibernate相关jar包加入项目lib,并引用。 影射文件。 影射类。 加载配置信息。,76,SSH结构分析,Jsp页面,struts2,spring,hibernate
39、,database,View层,Controller层,Model层,客户端请求,解释用户的输入,映射为model层可执行的操作,返回值,Jsp页面,根据返回值选择恰当的视图以用于显示,Java EE逻辑结构图,Struts/ Spring MVC,数据库,IOC AOP事务管理,Hibernate Template Or Jdbc Template,Service,JSP,JSTL,WEB UI/ AJAX,Entity,DAO,SERVICE POOL,Spring Framework,轻量型架构,Spring=银弹?,目录,组件与组件开发 主流Web开发技术及比较 什么是Java EE?
40、 Java EE Light Framework开发技术 Java EE开发与部署环境配置 总结,Java EE开发运行环境配置,系统环境规范 系统环境包括了Java环境、环境变量定义、相关软件的安装和插件的配置。该部分目的在于保证一个全新系统执行标准操作后,能够达到开发的所需要的环境,而且所有团队中所有成员的环境都一致,能够降低因为不同环境造成的问题所浪费的精力。 1. 系统目录 建议所有Java开发所需要的软件都在Java目录下(e:java),不需要安装,只需要拷贝即可。Java目录包括: JDK6 Tomcat 6 Eclipse 3.6 Ant 1.8 Docs 包括各种javado
41、c ,如JDK ,Hibernate, Commons 等 autoexec.bat,Java EE开发环境配置,开发工具概述Eclipse,目前版本为3.6,使用方法略Dreamwaver 8.0UltraEdit32项目的版本控制Eclipse+NT CVS,安装Tomcat 6,通常机器上装了jdk6,建议安装Tomcat6.0.x系列。 Jdk6和Tomcat6以及Ant安装的路径都放在e:java目录下,安装路径如:e:javajdk1.6和e:javatomcat6.0 一个操作系统下可以安装多个Tomcat,安装的方法可以通过运行安装程序,也可以直接复制Tomcat6目录文件。
42、启动Tomcat的方式: 运行Tomcat 6.0binstartup.bat或tomcat6.exe 通过Tomcat Monitor启动tomcat服务 运行系统服务中的Tomcat服务,Tomcat 6文件结构,Bin:存放启动和关闭Tomcat的命令 Conf:存放Tomcat配置文件 Lib:存放Tomcat服务器的核心类库(jar文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。 Logs:保存Tomcat每次运行后产生的日志 Temp:存放Web应用运行过程中生成的临时文件 Webapps:用于自动部署Web应用,将Web应用复制到该路径下,Tomcat会将该
43、应用自动部署在容器中; Work:保存web应用运行过程中,编译生成的class文件,可删除,每次启动tomcat将再次建立。,Tomcat6服务端口配置,打开conf下的server.xml 修改如果要让Tomcat运行多个服务,只需要复制Server.xml文件的元素,并修改相应的参数便可以实现一个Tomcat运行多个服务,要求不同的端口。,Tomcat6部署web应用,四种方法: Tomcat自动部署 利用控制台部署 增加自定义的Web部署文件 修改server.xml部署,项目目录结构,项目目录结构说明,Src/java目录主要用来存放项目的类代码 Src/test目录主要用来存放一些
44、单元测试代码 .jar文件项目所使用的一些第三方类库 docs目录主要存放项目的相关说明文件(如需求说明,工作日志等) WebContent目录主要存放web应用的页面文件 WebContent /web-inf和webapp/web-info/config配置文件 project.xml文件基于ant的项目管理脚本,课后实验,任务1:安装jdk6.0和Tomcat6.0,并能运行Tomcat6.0,用不同的方法启动和关闭Tomcat服务; 任务2:安装mysql,按test.txt中的数据库脚本建立数据库和表,注意建立数据库时的字符集为gb2312; 任务3:部署aa应用,修改aa的部署文件,在Tomcat中为aa配置一个局部数据源,通过jndi的方式访问mysql数据库。运行aa应用中的tomcatTest。 任务4:安装和熟悉使用Eclipse3.6创建一个Web应用,并使之运行。,