j2ee框架Struts2HibernateSpring考试复习题库
Struts2+Hibernate机试试卷

内部测试-机试试卷
一、功能要求
采用Struts 2 +Hibernate开发基于WEB的学员管理系统。
具体要求如下:
(1)学员列表页面:要求显示所有学员的编号,姓名,年龄,所在班级4项和相关操作按钮,如图-1所示。
(2)学员详情页面:需显示编号,姓名,年龄,所在班级。
如图-2所示。
(3)删除学员页面:点击删除按钮,删除掉对应的学员。
(4)修改学员页面:需有编号,姓名,年龄,所在班级。
其中编号和所在班级不可更改。
点击“更新”按钮则提交更新,然后返回列表页面。
点击“返回”按钮则直接返回列表页面。
如图-3所示。
图-1 列表页面
图-2 详情页面
图-3 修改页面
(5)点击“增加学生”超链接,进入增加学生页面,其中所属班级是从班级表中查询出来的
注:图上的“查询学生”不需要做!
二、数据库设计
三、具体要求及推荐实现步骤
1、数据库使用Mysql,使用Struts2+Hibernate集成开发
2、时间:100分钟以内
3、将Mysql数据库文件及整个程序放到一个文件夹下,文件夹命名格式为”学号+姓名”,将文件夹打包后提交到学习委员处!。
Hibernate考试试题(题库)

Hibernate考试试题(题库)Hibernate考试试题(题库)1、 在Hibernate中,下列说法正确的有( )。
【选三项】A.Hibernate是⼀个开放源代码的对象关系映射框架B.Hibernate对JDBC进⾏了轻量级的对象封装C.Hibernate可以⼤⼤减少操作数据库的⼯作量D.Hibernate提供了数据查询机制,但没有提供恢复机制2、 关于Hibernate,下列说法错误的是( )。
A.Hibernate是⼀个对象-关系映射⼯具B.在MVC模式中,Hibernate属于控制层C.Hibernate在JDBC的⽅式上进⾏封装,以简化JDBC⽅式繁琐的编码⼯作D.在Hibernate中,可以通过xml格式的配置⽂件保存对象-关系的映射信息3、 在Hibernate中,下列关于SessionFactory说法正确的有( )。
【选两项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.⼀个SessionFactory实例对应⼀个数据存储源4、 在Hibernate中,下列关于Session说法正确的有( )。
【选三项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.Session也被称为持久化管理器,它提供了和持久化相关的操作5、 在Hibernate中,下列关于Transaction说法正确的有( )。
【选三项】A.事务Transaction为应⽤程序指定以原⼦操作单元为范围的对象B.在对数据库进⾏增加、修改和删除操作时⼀定要加上TransactionC.在对数据库进⾏查询操作时⼀定要加上TransactionD.获得Transaction的⽅法:Transaction tr = session.beginTransaction();6、 在Hibernate中,如果数据库是MySql或者SQLServer,则generator属性值不可以使⽤( )。
A.hiloB.nativeC.sequenceD.indentity7、 在Hibernate中,如果数据库是Oracle或者DB2,则generator属性值不可以使⽤( )。
j2ee考试题及答案

J2EE考试题及答案
一、概述
本文档收集了一些J2EE考试题与相应的答案。
这些问题涵盖了
J2EE的不同方面,包括Servlet、JSP、EJB、Web服务等。
下面依次列出各个部分的考试题目及答案。
二、Servlet
1. Servlet的生命周期是什么?
答案:
Servlet的生命周期包括以下4个阶段:
1.实例化:当容器接收到对Servlet的请求时,会创建Servlet的实例。
2.初始化:在创建完实例后,容器会调用init方法对Servlet进行初始化。
这个方法只会在Servlet的生命周期中被调用一次。
3.服务处理:一旦初始化完成,Servlet就可以处理来自客户端的请求。
容器会多次调用Servlet的service方法来处理不同的请求。
4.销毁:当容器关闭或发生其他终止条件时,容器会调用destroy 方法销毁Servlet实例。
在销毁之前,容器会先调用Servlet的destroy方法进行一些清理工作。
2. Servlet的线程模型是什么?答案:
Servlet的线程模型是。
Java高级框架应用开发案例教程——Struts 2+Spring+Hibernate课后习题

第三章P74 1-81.什么是MVC模式?模型(Model)视图(View)控制器(controller) 2106162.Struts2的工作原理?1)浏览器发送请求2)核心控制器FilterDispatcher根据请求决定调用合适的Action。
3)WebWork的拦截器链自动对请求应用通用功能,例如验证等功能。
4)回调Action的execute方法。
实际上,因为Action只是一个控制器,它会调用业务逻辑组件(Model)来处理用户的请求。
5)输出结果到页面3.Struts2的核心控制器FilterDispaer如何配置?<filter><!--配置struts2核心Filter的名字--><filter-name>struts</ filter-name><!--配置struts2核心Filter的实现类--><filter-class>org.apache. struts2.dispatcher.Filter Dispatcher </filter-class><init-param><!--配置struts2框架默认加载的Action包结构--><param-name>actionpackages</param-name><param-value> org.apache.struts2.showcase.person</param-value></init-param><!--配置struts2框架的配置提供者类--><init-param>< param- name>configProviders< /param- name><param-value>com.ascent.MyConfigurationProvider</param-value></init-param></filter>4.Struts2的Action类如何开发?对于Struts 2应用而言,Action是应用系统的核心,我们也称Action为业务控制器。
J2EE期末考试深刻复知识题(88份)

J2EE期末考试试题(笔试)A卷姓名:学号:注意事项:(考试时间90分钟)1)整个试卷中不得做任何形式的书写或标记,是否试卷成绩做废;2)认真准确填写并核对答题卡中的各项内容,因填涂错误造成的任何后果,由考生自负;3)考试完毕,不得将所有考卷.答题卡.草稿纸带离考场,否则试卷成绩作废;4)作弊,雷同答卷,成绩一律为0分答题结束后,必须经监考老师确认考卷,答题卡,草稿纸已经提交后,方可离开考场一、选择题(单项选择,每题2分,共50题)1、下面对Web应用开发中Servlet组件说法错误的是。
A)Servlet是按照接受请求/返回响应的模式工作的B)运行于Servlet容器中,是被动态加载的C)在Struts框架中,Servlet充当模型组件D)在Struts框架中,Servlet充当控制器组件2、在Struts应用中,能在下列哪几种范围内共享数据说法错误的是。
A)只有request与sessionB)requestC)sessionD)application3、下面那个选项不属于MVC三个核心模块。
A)模型B)视图C)数据库连接D)控制器4、下列关于Struts框架的说法中,正确的是。
A)Struts实质是在JSP Model2的基础上实现的一个MVC框架B)在Struts框架中,模型是由实现业务逻辑的JavaBean与EJB组件构成C)在Struts框架中,视图是由一组JSP文件组成D)以上都是5、关于在web.xml文件中配置欢迎文件清单说法错误的是。
A)使用<welcome-file-list>元素配置欢迎清单B)只能配置一个欢迎文件C)可以配置多个欢迎文件D)Web容器调用会依次寻找欢迎文件,直到找到为止6、下列哪个元素可以配置数据源。
A)<formbean>元素B)<data-sources>元素C)<global-forward>元素D)<message-resources>元素7、下列对<action-mappings>元素属性描述正确的有。
struts2理论考试题目

struts2理论考试题目第一篇:struts2理论考试题目1.MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是Model-View-Controller的简写。
Model 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
2.说说struts1与struts2的区别"""""""都是MVC的WEB框架;struts1的前端控制器是一个Servlet,名称为ActionServlet,struts1的action需要继承Action类,struts2的action可以不继承任何类;Struts1依赖与servlet的API struts1对同一个路径的所有请求共享一个Action实例,struts2对同一个路径的每个请求分别使用一个独立Action实例对象,所有对于struts2的Action不用考虑线程安全问题;在struts1中使用formbean封装请求参数,在struts2中直接使用action的属性来封装请求参数;struts1中的多个业务方法放在一个Action中时(即继承DispatchAction时),要么都校验,要么都不校验;对于struts2,可以指定只对某个方法进行校验,当一个Action继承了ActionSupport且在这个类中只编写了validateXxx()方法,那么则只对xxx()方法进行校验;3.转发和重定向的区别? ""4.Struts2执行流程"""""客户端发出一个指向servlet容器的请求(tomcat)这个请求经过一系列的过滤器(Filter),最后达到StrutsPrepareAndExecuteFilter 过滤器是struts2框架的心脏,询问ActionMapper类来查找请求中需要用到的Action,如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。
(完整word版)J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕)

一、填空:1.Struts 2框架由__webWork______和___xWork_框架发展而来。
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。
其特点是:1、基于一个简单的接口就可以进行灵活且可自定义的配置;2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;3、整个框架通过类型转换和使用OGNL的action属性验证来构建;4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
Xwork和WebWork的关系WebWork2 被构建在XWork之上,以XWork为基础。
通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
xwork和Webwork的交互图2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。
4.Struts 2中的控制器类是一个普通的_POJO_。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___ <taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location></taglib> ________。
Spring,hibernate,struts的面试笔试题

Spring,hibernate,struts的面试笔试题一、H ibernate工作原理及为什么要用?原理:1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 持久化操作6. 提交事务7. 关闭Session8. 关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
二、H ibernate是如何延迟加载?1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection)2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
三、H ibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、四、说下Hibernate的缓存机制1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事务级缓存2. 二级缓存:a) 应用及缓存b) 分布式缓存条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据c) 第三方缓存的实现五、H ibernate的查询方式Sql、Criteria, Object comptositionHql:1. 属性查询2. 参数查询、命名参数查询3. 关联查询4. 分页查询5. 统计函数六、如何优化Hibernate?1. 使用双向一对多关联,不使用单向一对多2. 灵活使用单向一对多关联3. 不用一对一,用多对一取代4. 配置对象缓存,不使用集合缓存5. 一对多集合使用Bag,多对多集合使用Set6. 继承类使用显式多态7. 表字段要少,表关联不要怕多,有二级缓存撑腰七、S truts工作机制?为什么要使用Struts?工作机制:Struts的工作流程:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.1. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;2. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;3. 根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;4. 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;5. ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; 6. Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;7. ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用:JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.Eclipse是IMB公司向开放源代码社区捐献的Java程序开发平台,是一个成熟的、可扩展的体系结构。
2.Eclipse主要包含3个子项目:平台子项目,Java开发工具子项目,插件开发环境子项目。
3.MVC是Model(模型)业务逻辑层,View(试图)表述层,Controller(控制)控制层。
4.Struts是Apache Jakarta项目于2001年推出的一个开元的Java Web框架,通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,提高了应用程序的可维护性和扩展性。
5. Struts框架有两种发行包:源代码(source)和二进制(binary)。
6. Struts框架大约由300个Java类组成,可分为8个核心包:config,action,actions,tiles,upload,taglib,util,validator。
7. Struts的核心API包括ActionServlet,ActionForm,Action,ActionMapping及ActionForward,它们构成了Struts框架中的控制器组件,视图组件,模型组件8.Hibernate是对象/关系映射(ORM)的解决方案,就是将Java对象与对象关系映射成关系数据库中表格与表格之间的关系。
9. Cache就是缓存,它往往是提高系统性能的在最重要手段,对数据起到一个蓄水池和缓冲的作用。
10. Session实现了第一级Cache,它属于事务级数据缓冲,二级Cache是SessionFactory范围内的缓冲,所有的Session共享同一个二级Cache。
11.设置Hibernate的二级Cache需要分两部进行:首先确认使用什么数据并发策略,然后设置缓存过期时间和设置Cache提供器。
12.Spring是指一个用于构造Java应用程序的轻量级框架。
13.IoC是一种将组件依赖关系的创建和管理置于程序外部的技术。
1.MVC设计模式的J SP Model1和JSPModel2的区别?答:对Model1而言,JSP页面会完成请求的所有处理事项,负责向客户显示输出,整个流程并没有Servlet的参与,客户请求直接送往JSP页面,JSP页调用JavaBean组件或其他业务组件处理请求,并把结果在另一个页面显示出来。
对Model2而言,客户请求不是直接送给JSP页面,而是送给一个Servlet 进行前端处理。
一旦请求处理完毕,Servlet会把请求重定向到适当的JSP页面。
2. Struts 的基本原理?答:首先从struts-config.xml文件中读取信息,根据这些信息,它的控制器ActionServlet知道把视图中的请求转发给哪个业务逻辑组件处理。
视图组件、控制器与业务逻辑组件之间没有代码上的联系,它们之间的关系在struts-config.xml中声明,这样大大提高了Web应用程序的可移植性和可维护性。
3. S truts的核心组件?答:ActionServlet的类扩展了javax.servlet.http.HttpServlet类,其职责是把HTTP消息打包起来并路由传送到框架中合适的处理器。
Struts框架中的org.apache.struts.action.Action类是控制器组件的一个扩展。
struts-config.xml是整个Struts 应用程序的枢纽。
ActionMapping,控制器要通过查看请求信息并使用一组动作映射对象来作出决定。
ActionForward,在Action完成之后,控制器要转交控制权的地方。
ActionForm 对象可用来在用户和业务层之间传输客户的输入数据。
4. Struts框架如何处理每个请求相应的ActionForm对象?答:①检查该项动作的相应映射,查看是否已经有某个ActionForm得到配置②如果对应这个动作配置了某个ActionForm,则使用action元素中的name属性来查找FormBean的配置信息③查看是否已经创建了ActionForm的一个实例④如果在适当的作用域内已经存在一个ActionForm实例,而且这个实例的类型正是这个新请求所需要的类型,则重用这个实例⑤否则,创建所需ActionForm 的一个新实例,并存储在适当的作用域。
⑥调用ActionForm实例的reset()方法⑦反复处理请求参数,如果参数名在ActionForm实例中具有对应的设置方法,就为它填上请求参数的值⑧如果validate属性的值设置为true,则调用ActionForm实例的validate()方法,并返回所出现的任何错误。
5.当ActionServlet接受到一个用户请求时,将执行如下流程?答:①检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的错误信息②如果为ActionMapping配置了FormBean,则获取相应范围内的ActionForm实例。
如果ActionForm 实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
③根据ActionMapping配置信息决定是否需要验证表单。
如果需要验证,就调用ActionForm的validate()方法。
④如果ActionForm的validate()方法返回null,或者返回一个不包含任何ActionMessage的ActionErrors对象,就表明表单验证成功,继续执行下一步;否则,返回input属性指定的页面,并向用户显示ActionErrors集合中的错误信息。
⑤ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给那个Action,如果相应的Action实例不存在,则先创建这个实例,然后调用Action的execute()方法。
⑥Action 的execute()方法返回一个ActionForward对象,ActionServlet将请求转发到这个ActionForward对象指向的组件,通常是一个JSP组件或其它Action。
⑦如果ActionForward 对象指向一个JSP组件,则将该JSP组件生成的动态页面返回给用户,如果ActionForward 对想指向的仍然是一个Action,则重新开始执行。
6.表单验证是ActionForm的主要功能之一。
需要4个功能?答:①重写validate()方法②在资源文件ApplicationResources.properties中设置可能的验证错误的标识③要在配置文件struct-config.xml中把<action>元素的validate属性设置为true,并添加<message-resources>元素以指定资源文件的存放路径。
④在相应的输入页面的相应位置加入错误标记<html:errors>,以输出可能的验证错误。
7. Hibernate的特点?答:①目标是成为Java中管理持续性数据问题的一种完整的解决方案②是一种非强迫性的解决方案③是一个开房源代码的对象关系映射框架。
8. Hibernate软件包简介?答:①hibernate3.jar:包含Hibernate3.1的基础框架的核心API 类库,必须使用的jar包②cglib-2.1.2.jar:CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包。
③dom4j-1.6.1.jar包:dom4j是一个Java的XML API,类似于jdom,用来读写XML文件,必须使用的jar包。
④commons-collections.jar:Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大,必须使用的jar包。
⑤commons-logging.jar:Apache Commons包中的一个,包含了日志功能,必须使用的jar包。
⑥ant-1.6.5.jar:Ant编译工具的jar包,用来编译Hibernate源代码。
⑦c3p0-0.9.0.jar:C3P0是一个数据库连接池,Hibernate可以配置为使用C3P0连接池。
9. Hibernate核心组件?答:①Configuration类:用来读取Hibernate配置文件,并生成SessionFactory对象②SessionFactory接口:生成Session实例的工厂。
③Session接口:用来操作PO④Query接口:用来对PO进行查询操作⑤Transaction接口:用来管理Hibernate事务,它的主要方法有commit()和rollback(),可从Session的beginTransaction()方法生成。
⑥Hibernate配置文件主要用来配置数据库连接参数⑦映射文件用来把PO与数据库中的数据表、PO之间的关系与数据表之间的关系、以及PO的属性与表字段一一映射起来,是Hibernate 的核心文件⑧持久化对象可以是不同的JavaBeans,唯一特殊的是它们正与Session相关联。
10.Session-cache的4个重要的性能?答:①保证在一个Session中两次请求同一个对象时,取得的对象是同一个Java实例,有事它可以避免不必要的数据冲突②在对一个对象循环引用时,不至于产生堆栈移出③在数据库事务结束时,对于同一数据库行,不会产生数据冲突,因为对于数据库中的一行,至多有一个对象来表示它④一个事务中可能会有很多个处理单元,在一个处理单元中做的操作都会立即别另外的处理单元得知。
11. Spring的主要功能?答:Spring的核心是个轻量级的容器,它是实现控制反转容器(IoC),并提供面向对象编程(AOP)概念的实现方式,提供对持久层、事务的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API提供一致的模型封装,是一个全方位的应用程序框架。
12.IoC的工作原理?答:IOC是一种新的设计模式,即IOC模式,系统中通过引入实现了IOC模式的IOC容器,即可由IOC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分开。
其中一个特点就是通过文本的配件文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的Java代码。
13.IoC 的3中依赖注入类型?答:①通过接口注射,这种方式要求我们的类必须实现容器给定的一个接口,然后容器会利用这个接口给我们这个类注射它所依赖的类。
②通过setter方法注射,这种方式也是Spring推荐的方式③通过构造方法注射类,这种方式Spring同样给予了实现,它和通过setter方式一样,都在类里无任何侵入性,但是,不是没有侵入性,只是把侵入性转移了。