J2EE复习

合集下载

J2EE期末复习

J2EE期末复习

1、ORM 有什么好处?( )A).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值?( )A).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询?( )A).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法?( )A).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。

( )A).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式?( )A).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类?( )A).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种?( )A).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的?( )A).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色?( )A).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的?( )A).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写?( )A).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中?( )A).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是?( )A).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。

j2ee复习

j2ee复习

1.JDBC资源关闭的顺序(rs.close、stmt.close、con.close。

)2.J2EE容器(EJB容器、Web容器、客户端应用程序、Applet容器)3.include指令(把指定文件插件正在生成的页面)4.JSP动作标记p2455.JDBC连接数据库程序(纸)6.page指令p2517.注释语句(HTML注释<!-- --> JSP<%-- --%>)8.JSP默认加载的类(ng.* javax.servlet.* 、javax.servlet.jsp.* 、javax.servlet.http.* )9.J2EE服务器(Tomcat、Jboss、BEA公司的Weblogic、IBM公司的Websphere)10.JSP的各种标记p24411.内置对象request p24912.JMS是Java消息服务(队列模式、基于主题的发布/订阅模式)13.EJB组件可以分为三种主要类别(Session Bean、Entity Bean、Message-Driven Bean)15.遍历P67选择1.以下哪个不属于Thread类所提供的方法(C )。

A) start( ) B) stop( ) C)query() D) run( )2.以下关于Eclipse插件的安装方法错误的是( B )。

A)直接拷贝到安装目录下 B)以修改的方式安装C)以link方式安装 D)在线安装3.下述选项中不属于JDBC基本功能的是( D )。

A)与数据库建立连接 B)提交SQL语句C)处理查询结果 D)数据库维护管理4.关于JSP页面的include指令,正确的说法为( D )。

A)在一个JSP页面中,最多能有一条include指令B)include指令可以出现在JSP页面的任何位置C)JSP页面的第一条指令必须为include指令D)其他三项说法都不正确5.以下不属于JSP动作标记的是( D )。

j2ee考试题及答案ejb

j2ee考试题及答案ejb

j2ee考试题及答案ejb1. 什么是EJB(Enterprise JavaBeans)?EJB是一种服务器端组件架构,用于开发和部署多层结构的、分布式的、面向对象的Java应用程序。

EJB组件提供了一种结构化的方法来创建可重用的、可伸缩的和事务性的业务逻辑。

2. EJB有哪些类型?EJB主要有三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。

3. 会话Bean(Session Beans)的作用是什么?会话Bean代表与客户端的短暂交互,它们通常用于实现应用程序的业务逻辑,但不保存数据。

会话Bean可以是无状态的(Stateless)或有状态的(Stateful)。

4. 实体Bean(Entity Beans)和会话Bean(Session Beans)有什么区别?实体Bean代表业务实体,通常与数据库中的持久数据相关联,而会话Bean代表与客户端的短暂交互,不直接与持久数据关联。

5. 消息驱动Bean(Message-Driven Beans)的主要功能是什么?消息驱动Bean是一种特殊的EJB,用于处理来自消息队列的消息。

它们是无状态的,并且可以异步处理消息,这使得它们非常适合处理大量消息。

6. EJB容器提供哪些服务?EJB容器提供多种服务,包括事务管理、安全性、持久性、生命周期管理、并发控制和资源池。

7. EJB的事务属性有哪些?EJB的事务属性包括:Required、RequiresNew、Mandatory、Never、NotSupported和Supports。

8. 如何在EJB中处理异常?在EJB中,可以通过声明异常(declarative exception handling)和编程异常(programmatic exception handling)两种方式来处理异常。

j2ee复习要点

j2ee复习要点

复习要点第一章J2EE简介(6%)1)J2EE分层构架【J2EE客户端、Web组件、业务组件】2)J2EE容器3)Web应用程序的目录结构〔见Web应用程序简介.ppt〕第二章 servelt(18%)1)servlet基本概念、servlet容器职能2)servlet的生命周期3)servlet的部署描述符4)过滤器的功能5)会话追踪机制原理、常用的方法6)请求映射的方法,包括URL路径解析、匹配规则、映射语法第三章JSP(18%)1)JSP的基本概念,与servlet的区别2)JSP页面的构成元素,基本语法3)JSP中jsp:usebean的四种类型的作用域4)JSP的注释5)页面包含的两种方式6)page指令的属性含义、及设置7)JSP生命周期,特别是转译阶段各种元素在对应java文件中的位置8)JSP的内置对象的基本概念、内置对象种类、使用方法第四章 JavaBean在JSP中的应用(10%)1)掌握JavaBean契约,能熟练编写JavaBean2)熟练使用标准Action:<jsp:useBean>、< jsp:setProperty >、< jsp: getProperty > 第五章 JDBC (18%)1)JDBC驱动程序四种类型2)掌握JDBC URL协议格式3)数据源DataSource的基本概念、属性等4)掌握ResultSet的类型、光标的概念、及各种类型ResultSet的光标移动5)熟练使用JDBC API进行数据库编程、数据库元数据编程试题类型一、选择题(15×2%)二、简答题(3×5%)三、编程题(3~4小题 25%)(1)读JSP程序写出执行结果(2)实现一个JavaBean(3)数据库编程(4).。

J2EE复习资料

J2EE复习资料

Struts2:1、第一章Struts入门:【复习点】struts2的工作流程。

struts2是MVC框架,并作出说明。

2、第二章Action访问servlet API【复习点】Action访问servletAPI(jsp内置对象中的request、session和application)的常用方法。

复习ActionContext、ServletActionContext类的使用。

【复习点】:创建Action有几种方式?项目中常用的创建Action的形式是什么,在Action中能够使用的Action接口中的常量是什么?【复习点】:一个Action处理多个业务,有哪几种方式可以完成指定方法的调用3、第三章struts2标签—表单标签及fielderror标签【复习点】:熟悉表单标签中有哪些标签4、第四章OGNL表达式的使用【复习点】:怎么用OGNL表达式完成对象图的遍历。

怎么编写OGNL表达式。

OGNL表达式的作用。

5、第五章struts2标签—数据标签、控制标签【复习点】:数据标签、控制标签中有哪些【复习点】:s:if/s:else/s:elseif ,s:s:set; s:iterator。

详见以前案例。

6、第七章struts2输入校验与校验框架【复习点】:有几种形式可以完成校验,分别是什么。

Hibernate:1、第一章Hibernate入门【复习点】:Hibernate优点、对象关系映射(Object Relational Mapping,简称ORM)、Hibernate的工作原理或者工作步骤;Hibernate的第一个入门案例2、第二章Hibernate的核心API【复习点】:Hibernate的核心API有哪些?session接口中的常用方法的使用详见详见以前案例3、第三章操纵持久化对象【复习点】:持久化对象的状态有哪些,特点是什么,判断语句中某个对象处于的状态。

4、第四章Hibernate映射文件【复习点】:*.hbm.xml中,Hibernate映射文件结构<hibernate-mapping package=“”><class name="" table=""><id></id><property name="" column=""/><class/></hibernate-mapping>会编写hbm.xml文件【复习点】:主键-id映射中常用的id映射策略有哪些,区别是什么。

J2EE复习资料82839

J2EE复习资料82839

1.三层软件设计架构:表示逻辑层、业务逻辑层、数据层。

其中,数据访问层的作用:即对某个数据库管理系统进行的存储、查询、删除和更新等数据库操作。

2.J2EE架构中包含的4个容器:Applet Container、Web Container、Application Client Container、EJB Container。

3.JNDI技术(Java Naming and Directory Interface)java命名和目录接口。

4.EJB(Enterprise Java Bean)是java的核心代码,定义了三种不同类别的Bean,包括会话Bean、实体Bean、消息驱动Bean。

EJB的完整执行过程为:客户端通过JNDI检索Home对象的引用,JNDI返回Home对象的引用,请求创建一个新的EJB对象,创建EJB对象,返回EJB对象,调用相关业务逻辑方法,调用Enterprise Bean。

5.MVC设计模式:Model(模型)业务逻辑层。

其作用是实现系统信息、状态记录功能,对业务逻辑的封装。

View(视图)表示逻辑层。

其作用是实现可视化界面供用户输入数据,并提供结果展示功能。

Controller(控制器)控制层。

其作用是负责协调模型与视图即业务逻辑层与表示逻辑层的工作流程。

6.J2EE体系结构中包含的组件:视图组件(主要实现类包括ActionForm、ActionMapping、ActionForward),控制器组件(主要实现类包括ActionServlet、RequestProcessor、Action),模型组件(主要涉及的Java技术和开发包有Java Bean、EJB、OR开发工具)。

7.Structs的工作流程:(1)在容器中检索与用户匹配的ActionMapping实例;(2)根据struts-config.xml文件中定义的ActionForm 的Scope属性,查找ActionForm实例;(3)调用ActionForm类中的reset()方法,将ActionForm属性设置为默认值;(4)将客户端提交的表单数据填充到ActionForm对应属性中;(5)根据struts-config.xml文件对<action>元素的validate属性设置,指定是否调用ActionForm的validate()方法;(6)如果validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,即表示表单的验证成功;则返回一个包含ActionMessage的ActionErrors对象,即表示表单验证失败;(7)控制器主组件ActionServlet 将请求转发至相应Action;(8)调用Action实例的execute()方法,返回一个ActionForward对象;ActionServlet将客户请求转发至ActionForward对象指向的JSP组件,同时生成动态网页,呈现在客户端Web浏览器。

J2EE期末复习

第一章概述J2EE体系结构设计理念:组件- 容器体系结构每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行,实现组件间的相互调用。

J2EE核心技术:EJB--J2EE的基石; CORBA -- ORB是其核心;RMI ; JSP ; Java Servlet ;JavaBean ;JDBC ;JMS 1.Web应用的工作方式答:内容在发送到浏览器之前由Web站点动态生成,基于浏览器/服务器模式(B/S)2、什么是URL地址,URL的工作原理答:Uniform Resource Locator的简写,统一资源定位器,指向WWW上的资源。

由左至右的组成为Internet资源类型(schema):HTTP://、FTP://、TELNET://等等类型服务器地址(host)端口(port)路径(path)当用户在浏览器地址栏输入URL时,客户浏览器建立到服务器的TCP/IP连接-浏览器向服务器发送服务请求-服务器发送应答信息给客户-服务器关闭连接补充:URI是Uniform Resource Identifier的简写,统一资源标识符所有的URL都是URI,但并不是所有的URI都是URL3、企业软件与中间件之间关系答:在软件开发过程中,出现面向对象开发软件的方法后,可以实现代码重用,但只能部分实现,原因之一是对象都细粒度化,造成对象间紧密耦合状态,从而使得大范围的重用变得很困难。

解决途径——设计软件组件与对象不同,软件组件是在更高的抽象级别中设计的,可以提供一个完整的功能或服务组件间的耦合更为松散。

利用组件的接口,可以将组件迅速组合在一起构建更大的应用程序,这样所用的成本也比较合算4、计算机模型的演变答:单层到多层(从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层)5、Web静态网页和动态网页差别答:静态页面:服务者尽可能将信息发布给所有用户,信息以静态HTML页面形式传递给用户,所有用户只能看到相同内容基于Applet的动态页面:可为不同用户提供不同数据,不能访问后台系统数据6、J2SE、J2ME各自特点答:J2SE:提供了编写桌面、工作站应用程序所必需的功能,基于Java跨平台技术和安全模块开发,提升了Java计算的性能与缩放能力,客户机应用方面得到重大提升,基于Swing的Java小程序和应用程序在图形用户介面的响应速度得到提高,支持SSL、LDAP、CORBA等业界标准,保证异构平台、系统和环境间的互操作能力,支持Web Services,与J2EE兼容J2ME:应用在消费电子产品及嵌入式设备,包括JVM规范和API规范(基于J2SE),支持跨平台和安全网络传输,可升级到J2SE或J2EE使用配置(定义基本运行环境为一组核心类及相应JVM)和简表(定义应用程序支持的设备类型)定制JRE(Java Runtime Environment)技术特点:J2ME代码短小,利用Java语言优点,安全性好补充:J2EE特点:平台无关性,支持异构环境,可伸缩性强,保留现有系统,稳定的可用性,高效开发,开发人员只需集中精力处理商业逻辑,多层架构体系7、J2EE四层模型答:组件-容器体系结构:每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通讯,实现组件间的相互调用四层模型描述:客户层(Client Tier):通常是一台桌面计算机,客户可以使用GUI与应用程序进行交互中间层(Middle Tier):由表示层和业务层组成,通常由一个或者多个Web服务器和应用服务器组成,应用服务器处理客户的请求,执行复杂的表示形式和业务逻辑,然后将结果返回给客户层企业信息系统层(Enterprise Information System,EIS):也称为数据层,是驻留业务数据的地方,在处理业务逻辑时,由中间层访问EIS层8、容器类型答:EJB容器:管理所有企业级bean的执行Web容器:管理JSP页面和Servlet组件的执行应用程序客户端容器:管理应用程序客户端组件的执行Applet容器:运行在客户端Web浏览器和Java插件的结合9、会话bean答:有状态bean:表示客户与系统交互的短暂对象,操作完成后被删除,每个用户有一个会话bean 无状态bean:不在客户请求之间维护状态信息,所有无状态会话Bean的实例都是相同的(无状态会话Bean能支持多个客户端)会话Bean的构造:至少需要编写三个类(Home接口,Remote接口,会话Bean类)Home接口:(定义create,remove及find方法,控制EJB对象的生命周期)均继承javax.ejb.EJBHome;都定义create()方法。

J2EE期末复习(含答案)

1、ORM 有什么好处AA).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值 CA).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询CA).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法AA).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。

BA).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式CA).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类BA).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种BA).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的DA).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色AA).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的CA).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写BA).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中DA).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是AA).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。

J2EE复习资料

1J2EE三层体系结构:应用服务器层、应用服务层、数据服务层(客户层、web 层、业务层)2J2EE组件:一个自包含的Java功能程序单元,可以和其他元素装配成应用程序,分为:客户组件(Application Client/Applet)web组件(Servlet/Jsp)业务组件(EJB)3J2EE全称:Java 2 Enterprise Edition,J2EE技术主要是java的服务器端技术4.对J2EE技术的理解:用于开发便于组装、健壮、可扩展、安全的服务器端Java 应用。

Java EE技术的基础是Java,不但拥有Java SE平台的所有功能,同时还提供了对EJB、Servlet、JSP、XML等企业级技术的全面支持,形成了一个开发健壮且可移植的企业级应用系统的完整体系结构。

5.B/S模式的特点:是一种分布式系统,通过客户端上的浏览器和web服务器、应用服务器、数据库服务器之间进行交互和协作来完成某个任务6.Web应用程序的特点:是运行在web服务器上的程序,也是基于B/S模式的程序,其特点是客户端软件都是运行在浏览器中的,一般安装或部署在应用服务器中,由应用服务器装载并运行并给客户端的请求提供相应的服务JSPJSP页面一般有JSP标签,JA V A程序,和HTML标签组成。

JSP标签控制JSP页面属性。

JA V A程序实现逻辑运算。

HTML标签创建用户界面。

当访问某个.jsp文件时,jsp引擎(理解为servlet容器中的某个特定的模块)会将.jsp 文转换为.java文件(.java文件就是一个servlet),然后创建其实例,并调用其service()方法。

7JSP网页的组成元素:注释、指令、脚本元素、模板数据、动作静态的Html网页内容和动态的脚本语言程序和JSP标签8JSP脚本:程序脚本<%....%>表达式脚本<%=…%>声明语句<%!...%>9JSP标签(静态)<%@ page import=“ foo.* ”%> jsp编译时执行<%@include file=”filename”%><%@ taglib uri=”taglibURI” prefix=”tagPrefix”%>(动态)<jsp:include><jsp:param>例:<jsp:include page=”included.jsp”><jsp:param name=”companyName” value=”SDFI”/> </jsp:include><jsp:useBean>例<jsp:useBean id=”var” class=”classPathName” scope=”?”/><jsp:forward><jsp:setProperty><jsp:getProperty例<jsp:setProperty name=”var” property=”proName” value=”data”> <jsp:setProperty name=”var” property=”proName” param=”paraName”/><jsp:getProperty name=”var” property=”proName”/>其中:?表示session或page或request或application10.Jsp的内置对象及其作用:request:表示客户端的请求,包含了所有的请求信息,是Servlet中service(或doPost/doGet方法)方法的resquest参数。

J2EE复习资料

1.搞清策略模式,观察者模式,适配器模式,装饰模式,模板模式,要认识其类图不同,各种模式基本思想是啥?装饰模式的效果是啥?适配器模式:类图适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。

主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。

首先,我们来看看类的适配器模式核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Targetable里,对象的适配器基本思路和类的适配器模式相同,只是将Adapter类作修改,这次不继承Source类,而是持有Source类的实例,以达到解决兼容性的问题第三种适配器模式是接口的适配器模式,接口的适配器是这样的:有接口的适配器模式时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行。

总结一下三种适配器模式的应用场景:类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。

对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例,在Wrapper类的方法中,调用实例的方法就行。

接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可策略模式(strategy)策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011级J2EE复习资料
选择
1、mongodbd端口:27017(服务端口,默认的)28017(web端口)
2、inverse:
<set inverse=”true”> 放弃维护主控权
<set inverse=”false”> 不放弃维护主控权(默认情况下)
3、下面HQL查询语句错误的是
from Employee;
from Employee e;
select e from Employee e;
from Employee where id=?;
select e from Employee e where e.id=?;
select count(*) from Employee;
错误:select * from Employee;
4、AOP目标与实现
AOP面向切面编程,目标:将问题集中进行处理
实现:动态代理(JDK的动态代理,CGLIB的动态代理)
5、IoC(控制反转):控制权交给外部容器;
6、DI(Dependency Injection 依赖注入):在代码之外管理程序的依赖关系;
7、SSH:三个框架可以用多种方式进行集成
8、MongoDB不适用于复杂的跨表查询
9、classpath*:beans.xml:的路径
src/beans.xml
10、spring Bean的作用域:
Singleton(单例), prototype(也称non-singleton), Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean
简答题:
1、IoC(控制反转)概念:
public class PersonServiceBean {
private PersonDao personDao = new PersonDaoBean();
public void save(Person person){
personDao.save(person);
}
}
PersonDaoBean 是在应用内部创建及维护的。

所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。

这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

2、AOP(面向切面编程)相关概念:
Aspect(切面):指横切性关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的
抽象,而切面横切性关注点的抽象.
joinpoint(连接点):所谓连接点是指那些被拦截到的点。

在spring中,这些点指的是方法,因为spring只支持方法类型的连接点,实际上joinpoint还可以是field或类构造器)
Pointcut(切入点):所谓切入点是指我们要对那些joinpoint进行拦截的定义.
Advice(通知):所谓通知是指拦截到joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异
常通知,最终通知,环绕通知
Target(目标对象):代理的目标对象
3、NoSQL(泛指非关系型数据库)的优缺点
优点:
1、简单的扩展,可以运行在便宜的PC服务器集群上
2、快速读写,可以处理超大量的数据;
3、成本低廉,主要都是开源软件,没有过多的操作,击碎了性能瓶颈
缺点:
1、不提供对SQL的支持,如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁
移成本;
2、支持的特性不够丰富,现有产品提供的功能都比较有限,大多数NoSQL数据库都不支持事务,
也不像SQL Server /Oracle那样提供各种附加功能;
3、现有产品的不够成熟:大多数产品都还处于初创期,和关系型数据库几十年的完善不可同日而
语; 。

4、spring/spring mvc/hibernate集成步骤
1、集成Spring框架:
编写spring的配置文件
在web.xml中通过监听器加载spring的配置文件
2、集成Hibernate框架:
在spring 的配置文件中,配置sessionFactory 对象。

为sessionFactory 对象注入Hibernate 相关属性
配置transactionManager 事务管理器
3、集成spring mvc 框架:
编写spring mvc 的配置文件
在web.xml 中注册DispatcherServlet ,加载spring mvc 配置文件
4、在web.xml 中注册常用的过滤器:字符集过滤器和OpenSessionInView 过滤器等。

5、类图,E-R 图(订单、订单项)
编程题
1、 实体类(不用写setter/getter 方法)
例如:一对多:部门/员工 Department(id, dname)
Department.java
public Class Department {
private Integer id;
private String dname;
//一个部门有多个员工
private Set<Employee> emps = new HashSet<Employee>();
... ...
}
2、映射文件编写(关联部分配置)Department.java
Department.hbm.xml
Emp.java
Emp.hbm.xml
3、代码测试(部门/员工的保存)
@Test
public void save() {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try{
Department dept = new Department();
dept.setDname("市场部");
Employee emp1 = new Employee();
emp1.setName("张三");
emp1.setAge(20);
Employee emp2 = new Employee();
emp2.setName("李四");
emp2.setAge(30);
//互相建立关系
emp1.setDept(dept);
emp2.setDept(dept);
dept.getEmps().add(emp1);
dept.getEmps().add(emp2);
//应该先保存
session.save(dept);
session.save(emp1);
session.save(emp2);
mit();
}catch(Exception e){
if(tx!=null){
tx.rollback();
}
}finally{
HibernateUtil.closeSession();
}
}。

相关文档
最新文档