Java.docx
《Java.docx》由会员分享,可在线阅读,更多相关《Java.docx(22页珍藏版)》请在冰豆网上搜索。
Java
第一章
小结:
ØJavaEE应用通常分为5层:
数据持久层(POJO)、数据访问层(DAO)、业务逻辑层、控制层和表示层
ØModel1模式的实现比较简单,适用快速开发小规模项目
ØModel2是基于MVC思想的架构
ØMVC思想将一个应用分成三个部分:
Model(模型)、View(视图)和Controller(控制器)
Ø模型、视图和控制器三部分松耦合协同工作,从而提高应用的可扩展性和可维护性
ØJSP、Servlet和EJB3.0是JavaEE平台的标准规范
ØStruts2、Spring和Hibernate是稳定的、成熟的开源框架,具有广泛的项目应用
1:
下列不属于常见JavaEE分层模型中的层次是D
A:
数据访问层B:
业务逻辑层C:
表示层D:
应用层
2:
下列关于Model1和Model2的说法中正确的是A,D
A:
Model1适用于快速开发小型规模的项目B:
Model提供了代码的可重用性
C:
Model2适用于快速开发小型规模的项目B:
Mode2提供了代码的可重
3:
MVC模型包括的三个层是A,B,D
A:
模型图B:
视图层C:
业务逻辑层D:
控制层
4:
不属于MVC模型特点的是B,D
A:
数据的获取与显示分离B:
各层紧密耦合
C:
提高了代码的可重用性D;MVC模式只有在JavaWeb项目中才能够使用
5:
下列关于Struts1和Struts2框架的说法中正确的是C
A:
Struts1是最早的MVC框架B:
Struts2与Struts1非常相似只是简单的升级
C:
Struts2是Struts1与WebWork结合的产物D:
以上都不正确
6:
下列关于Hibernate框架的说法中正确的是A
A:
Hibernate是ORM框架B:
Hibernate已经完全取代了JDBC的作用
C:
Hibernate只有在JavaWeb项目中才能够使用D:
以上都不正确
7:
下列关于Spring框架的说法中正确的是A,B,C,D
A:
Spring提供了MVC框架B:
Spring可以与Struts2和Hibernate方便地整合
C:
Spring提供了依赖注入功能D:
Spring提供了面向方面编程的功能
问答题1、JavaEE应用通常可以分为几层,各个层次完成什么功能?
答案参照教材P4。
2、什么是MVC,MVC有什么优点?
答案参照教材P6。
3、Struts2、Hibernate、Spring框架分别完成什么功能?
答:
Struts2是MVC框架,Hibernate是ORM框架,Spring框架主要用来实现依赖注入、面向切面的编程(AOP)、声明式事务以及对持久层支持和简化等功能。
第二章
小结:
ØStruts2在Struts1基础上发展起来的,但实质上以WebWork为核心
Ø所有MVC框架都以控制器为核心,其中Struts2控制器由FilterDispatcher和业务控制器Action组成
ØFilterDispatcher包含了框架内部的控制流程和处理机制,是Struts2框架的基础
Ø配置文件将FilterDispatcher、Action和视图组件等联系在一起,起到了调度作用,也是降低各类组件耦合程度的一种手段
ØStruts2使用拦截器来处理用户请求,将用户业务逻辑同ServletAPI分离开
ØAction需要用户自定义实现,是应用的核心,包含了对用户请求的处理逻辑
1:
Struts2控件的核心控制器时C
A:
ActionB:
ActionServletC:
FilterDispatcherD:
HttpServlet
2:
下列关于Struts2中Action的说法中正确的是A,B,C,D
A:
Action无需实现任何接口或继承任何父类
B:
Acyion中无需访问ServletAPI,便于脱离容器测试
C:
Action中的execute()方法需要返回一个代表带转向资源的字符串
D:
Action需要在Struts2的配置文件中配置
3:
下列关于Struts2配置文件的说法中正确的是A,B,C,D
A:
Struts2的配置文件包括struts.xml和struts.propertiesB:
Struts.xml主要用来配置Action
C:
struts.properties主要用来配置全局参数
D:
struts.xml与struts.properties都可以配置全局参数
4:
下列关于struts2处理流程的说法中正确的是A,B,C,D
A:
客户端请求会经过FilterDispatcher过滤器
B:
FilterDispatcher过滤器负责根据请求查找相应的Action
C:
Struts2会创建对应的Action的实例并调用其execute()方法
D:
Struts2根据execute()方法返回值跳转到对应的页面
问答题1、简述Struts2框架的控制器组件。
答:
Struts2框架的控制器由两部分组成:
FilterDispatcher和业务控制器Action。
2、简述Struts2框架的处理流程。
答案参见教材P23。
第三章
小结:
ØStruts2框架以配置文件的方式来管理核心组件,允许方便的扩展组件
Ø在struts.xml文件中通过配置常量来改变框架的默认行为
ØStruts2的包就是若干个Action、拦截器、拦截器引用组成的集合
Ø通过命名空间的配置,可以在Struts2配置Action的过程中避免重名的问题
Ø通过元素在struts.xml文件中包含其他配置文件
ØStruts2中的Action是一个普通的Java类,该类通常包含一个execute()方法,该方法没有任何参数,只返回一个字符串类型值
ØStruts2中的Action可以通过ActionContext类访问ServletAPI
Ø配置Action就是让Struts2容器知道该Action的存在,并且能够调用该Action来处理用户请求
ØAction处理完请求后通常会返回逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才能让系统跳转到实际的视图资源
Ødispatcher、redirect和redirectAction是常用的结果类型,配置result时,如果没有指定result的name和type属性,name属性值默认为success,而type属性值默认为dispatcher。
ØStruts2的异常处理机制是通过在struts.xml文件中配置元素来完成的,配置该元素时,需要指定exception和result两个属性
1:
Struts2常量可以在A,B,C中配置
A.:
struts.propertiesB:
struts.xmlC:
web.xmlD:
struts-config.xml
2:
Struts2中Action的实现方式是A,B,C
A:
POJO方式B:
实现action接口C:
继承ActionSupport类D:
继承Action类
3:
关于Action接口和ActionSupport类的说法正确的是A,B,C,D
A:
实现action接口后可以方便的使用一些常量,以规范execute()方法的返回值
B:
ActionSupport类实现了Action接口
C:
ActionSupport类提供了很多方法,方便子类实现常见的功能
D:
ActionSupport类是Struts2的默认Action处理类
4:
下列做法中能够访问ServletAPI的是A,B,C
A:
使用ActionContext方法可以访问request,session,application等Servlet作用域
B:
实现ServletRequestAware接口后,可以得到HttpServletRequest的引用
C:
使用ServletActionContext类的方法可以得到HttpServletRequest等对象的引用
D:
为execute()方法添加HttpServletRequest和HttpServletresponse参数,即可得到他们的引用
5:
下列做法中能够调用MyAction的test()方法的是A,B,D
A:
在struts.xml中配置如下:
通过my!
test.action访问
B:
通过mytest.action访问
C:
通过my_test.action访问
D:
通过My_test.action访问
问答题1、简述Struts2配置文件的作用?
答案参见教材P33第一段。
2、Action有几种实现方式?
答案参见教材P39。
3、Action中如何访问Servlet的API?
答:
可以通过ActionContext类间接访问,也可以通过实现ServletContextAware等接口或使用ServletActionContext类直接访问。
第四章
小结:
ØStruts2标签库可以简单的分为UI标签、非UI标签和Ajax标签
ØStruts2标签库不依赖于任何表现层技术。
Struts2提供的大部分标签都可以在各种表现层技术下使用,如JSP、Velocity或FreeMarker等模板技术
Ø对象图导航语言OGNL是一种功能强大且语法简单的表达式语言,可以存取对象的任意属性,调用对象的方法等
ØOGNL是Struts2框架视图默认的表达式语言,是Struts2框架的特点之一
Ø数据标签主要用来提供各种数据访问功能,包含action、bean、date等
Ø控制标签主要完成流程控制,例如分支、循环等操作,其中分支使用if、elseif、else标签,循环使用iterator标签
Ø模板就是一个标签在页面上的显示风格,对于相同的标签,如果使用不同的模板,那么在页面上就会显示出不同的风格特征
Ø主题就是把一组模板打包在一起,从而提供通用的功能。
如果为所有的UI标签指定了模板,那么这些模板就形成了一个主题
ØStruts2表单标签可分为:
form标签本身和表单元素标签两种
Ø表单标签可以进行用户数据的输入和用户交互等操作
Ø非表单标签用来在页面中生成非表单的可视化元素,如Tab页面、树形结构等
1:
使用自定义标签的优势:
A,B,C
A:
使用简单B:
可维护性强C:
复用性高D:
开发简单
2:
下列哪个选项在默认状况下不在值栈内D
A:
临时对象B:
模型对象C:
action对象D:
request对象
3:
有两个对象customer与user,其中user对象位于ValueStack中,那么OGNL访问这两个对象的name属性的方式如下A,D
A:
user.nameB:
customer.nameC:
#user.nameD#customer.name
4:
struts2标签的分类及功能
问答题:
1、JSP自定义标签有什么作用?
答案参见教材P714.1.1第2段,第4段。
2、Struts2提供了几类标签库?
答案参见教材P71-P72。
第五章
小结:
ØHibernate应用的开发方式可以分为三种:
自底向上、自顶向下、中间开始
ØConfiguration对象用于配置并启动Hibernate,其主要作用是解析Hibernate的配置文件和映射文件中的信息,然后创建SesssionFactory实例
Ø通过SessionFactory对象可以获取Session对象,一个SessionFactory实例对应一个数据库对象,同时它是线程安全的,可以被应用中的多个线程共享
ØSession是Hibernate框架的核心类,提供了和持久化相关的操作,如添加、更新、删除、加载和查询对象等,它不是线程安全的
ØTransaction接口是Hibernate数据库事务接口,它对底层的事务做了封装
ØQuery和Criteria接口都是Hibernate的查询接口,用于向数据库查询对象
Ø通过配置文件对Hibernate的选项进行配置,使得Hibernate在底层上可以适应不同的数据库及应用开发环境
Øhibernate.cfg.xml和hibernate.properties文件需要放置在当前项目类文件的根目录(src目录),项目编译后该文件将放在CLASSPATH路径中
Øhibernate.cfg.xml中可以直接配置映射文件,文件结构性强、易读和配置灵活,hibernate.properties中,不能配置映射文件,两者可结合使用
Ø持久化对象状态包括临时状态、持久化状态和脱管状态,这些状态在特定条件下可以相互转化
1:
ORM框架的优点A,B,C,D
A:
贯彻面向对象的编程思想B:
减少代码的编写量,提高工作效率
C:
提高访问数据库的性能,降低访问数据库的频率
D:
具有相对独立性,发生变化时不会影响上层的实现
2:
下列面对接口或类描述错误的是D
A:
Configuration类用于配置,启动Hibernatte,创建SessionFactory实例对象
B:
SessionFactory接口用于初始化Hibernate,创建Session实例,充当数据源代理
C:
Session接口用于保存,更新,删除,加载和查询持久化对象,充当持久化管理器
D:
Query接口和Criteria接口都可以充当Hibernate查询器,其中Criteria用于执行HQL查询语句
3:
虽然Hibernate对POJO没有太多要求,但应遵守如下规则A,B,C
A:
提供一个无参数的构造方法(默认构造方法)
B:
提供一个标识属性,通常映射到数据库表中的主键
C:
每个属性提供setter()和getter()方法
D:
持久类必须实现Serizlizable接口,使持久化对象可序列化
4:
下列对持久化对象的状态描述错误的一项是B
A:
对象由new关键字创建,且尚未与HibernateSession关联,这时对象的状态瞬时状态
B:
持久化状态(Persistent)的对象与数据库中表的一条记录对应,并拥有一个持久化标识,这时该对象可以不与Session对象进行关联
C:
曾经处于持久化状态,但顺之与之关联的Session被关闭,这时对象的状态为托管状态
D:
处于托管状态下的对象和瞬时状态的对象的区别是,托管状态的对象居于一个持久化标志
5:
简述在应用中使用Hibernate进行开发的3种方式
问答题1、什么是ORM,为什么需要ORM?
答案参见教材P111第1段。
2、Hibernate应用程序的开发一般经过哪几个步骤?
答案参见教材P115。
3、使用Hibernate进行持久化操作一般经过哪几个步骤?
答案参见教材P121。
第六章
小结:
Ø关联关系可以分为单向关系和双向关系两类,单向关系是只能通过一方对象访问另一方对象,而双向关系则是通过任何一方对象都可以访问到另一方
ØHQL是一种完全面向对象的查询语言,其操作的对象是类、实例和属性等,此外HQL可以支持继承和多态等特征
ØHQL支持多种查询方式,例如分页查询、查询排序、根据条件查询、连接查询和子查询等
ØHQL语句的关键字和函数不区分大小写,但HQL语句中所使用的包名、类名、实例名和属性名都区分大小写
ØHQL查询依赖于Query接口,该接口是Hibernate提供的专门的HQL查询接口,能够执行各种复杂的HQL查询语句
ØCriteria查询是更具面向对象特色的数据查询方式,可以通过Criteria、Criterion和Restrictions三个类完成查询过程
ØQBE查询就是检索与指定样本对象具有相同属性值的对象,其中样本对象的创建是关键,样本对象中不为空的属性值作为查询条件
ØDetachedCriteria可以实现离线查询,通常在表现层中使用该对象保存用户选择的查询条件,然后将该对象再传递到业务逻辑层
ØHibernate是对JDBC的封装,本身不具备事务的处理能力,它将事务处理交给底层的JDBC或者JTA的处理
1:
下列选项中哪种关联关系和关系数据库中的外键参照关系最为相似的B
A:
单向1-N关联B:
单项N-1关联C:
N-N关联D:
1-1关联
2:
Criteria查询主要依靠下面的哪几个类来完成A,B,D
A:
CriteriaB:
CriterionC:
QueryD:
Restrictions
3:
对于QBC查询的优缺点,下述正确的是A,B,C,,D
A:
封装了基于字符串形式的查询,提供了更加面向对象的查询
B:
QBC在编译期会做检查,因此更加容易排错
C:
适合于生成动态查询语句
D:
QBC把查询语句分解成一组Criterion实例,可读性较差
4:
对于HQL查询的优缺点,下列错误的选项是C
A:
和SQL查询语句比较接近,较容易读懂
B:
功能强大,支持各种查询
C:
HQL查询语句只有在编译时才被解析
D:
应用程序必须提供基于字符串形式的查询
问答题:
1、Hibernate持久化对象之间有哪几种关联关系?
答案参照教材P140。
2、简述使用HQL查询的步骤。
答案参照教材P167。
3、简述数据库事务的四个重要性质。
答案参照教材P200。
第七章
小结:
ØSpring框架主要包括IoC、AOP、MVC以及对其他框架的支持等几大部分
Ø控制反转(IoC)是Spring框架的技术基础,其他功能都是在IoC之上完成的
Ø通过BeanFactory和ApplicationContext得到Spring上下文中声明的bean
Ø使用Spring的配置文件完成bean的声明
Ø使用set方法和构造方法两种方式来完成依赖注入
Ø在Spring配置文件中完成注入时,简单类型、引用其他bean、集合类型的声明方式
Øbean的作用域包括singleton、prototype等五种类型,理解其含义
ØSpring框架还提供了自动装配功能,包括根据属性名和属性类型两种方式,通过在配置文件中声明autowire的值为byName和byType来指定
1,Spring有如下优点A,C,D
A:
低浸入式设计,代码无污染。
B:
使用该框架时可以不用其他的ORM框架,因为该框架提供了自己的ORM框架。
C:
独立与各种应用服务器,真正实现一次编写、随处运行的承诺。
D:
Spring的高度开放性,并不强制开发者完全依赖与Spring,可自由选用Spring框架的部分或全部功能。
2,下述选项描述正确的一项是C
A:
IoC容器降低了业务对象替换的复杂性,增强了组件之间的耦合,降低了组件之间的内聚性
B:
AppplicationContext在初始化应用上下文时,默认会实例化所有的singletonBean(单例Bean);因此使用ApplicationContext时性能很低,不建议使用
C:
通过BeanFactory启动IoC容器时,并不会初始配置文件中定义的Bean,初始化动作发生在第一个调用时,IoC容器会缓存Bean实例。
D:
Spring提供了针对Web开发的集成特性,而且提供了一个完整的类似于Struts的MVC框架,并没有提供对其他MVC框架的支持。
3,下列关于依赖注入方式描述错误的一项是B
A:
设值注入要求Bean提供一个默认的无参构造方法,并为需要注入的属性提供对应的setter方法
B:
构造注入是通过使用构造器来注入Bean的属性或依赖对象。
这种方式可以确保一些必要的属性在Bean实例时就得到设置,从而使Bean在实例化后就可以使用,因此比设置注入要常用
C:
对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读,这时可以设置注入,则能避免这些问题。
D:
构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。
例如,Web开发时使用的数据库,可以优先注入数据库连接的信息
4,简述Bean的集中作用域及功能。
Ø问答题:
Ø1、什么是IOC?
Ø答案参照教材P2157.3.3第一段。
Ø2、设值注入和构造方法注入各有什么优缺点?
Ø答案参照教材P219。
Ø
Ø第八章
Ø小结:
ØAOP也就是面向切面编程,AOP将分散在各个业务逻辑中的相同代码,通过横向切割的方式抽取成一个独立的模块,使得业务逻辑类更加简洁明了
ØAdvice是AOP框架在特定的连接点上执行的动作,包括around、before、throws等类型
ØAOP代理就是由AOP框架动态生成的一个对象,该对象可作为目标对象使用,AOP代理包含了目标对象的全部方法
ØSpring提供了自动代理机制,由容器自动生成代理
ØSpring的AOP可以采用XML文件配置和Annotation两种方式
ØSpring事务策略是通过PlatformTransactionManager接口实现的,该接口是Spring事务的核心
Ø在应用中通常选择声明式事务管理的功能,这种方式对代码的侵入性最小,可以让事务管理代码完全从业务代码中移除,符合非侵入式轻量级容器概念
Ø配置声明式事务可以采用XML文件配置和Annotation两种方式
Ø1、下面选项对AOP术语描述错误的一项是_B_____。
ØA.连接点就是程序执行的某个特定位置,SpringAOP仅支持对方法的连接点
ØB.织入是将增强添加到目标类具体连接点上的过程,Spring仅采用编译期织入的方式
ØC.AOP通过“切入点”定位到特定的连接点,当某个连接点满足指定的条件时,该连接点将被添加增强(Advice)
ØD.增强时织入到目标类特定的连接点上的一段程序代码
Ø2、无论在何种那个情况下都要执行的增强是____B___.
ØA.前置增强B.后置增强C.返回后增强D.环绕增强
Ø3、下面用于配置环绕增强的标签元素是__D______。
ØAbefo