SSH复习题

更新时间:2023-03-08 06:17:41 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

选择题

1、下面哪一个不是框架(D )。

A. Spring B. Struts C. Hibernate D. JSP 2、下面是框架的是(D )。

A. JSP B. Struts标签库 C. Criteria查询 D. Spring 3、在三层结构中,Struts2承担的责任是( D )。

A. 定义实体类 B. 数据的增删改查操作 C. 业务逻辑的描述 D. 页面展示和控制转发 4、在三层结构中,Hibernate承担的任务是(A )。 A.数据的持久化操作 B. 实体类的定义

C. 业务逻辑的描述 D. 页面的显示与控制转发 5、下面信息不在Struts2配置文件中配置的是( B )。 A. Form Bean配置信息 B. Spring声明式事务 C. Action转发路径 D. Struts2引用的资源文件

6、在struts 实现的框架中,(B )类包含了excute方法的控制器类,负责调用模型的方法,控制应用程序的流程。

A.Ajax B.Action C.Form D.Method 7、下面关于Hibernate的说法,错误的是( C )。 A. Hibernate是一个“对象-关系映射”的实现 B. Hibernate是一种数据持久化技术 C. Hibernate是JDBC的替代技术

D. 使用Hibernate可以简化持久化层的编码 8、下列说法中错误的是(C )。

A.使用通配符可以优化action的配置

B.约定优于配置。约定的如果好,可以使action配置非常的简洁

C.如果Action中存在多个方法时,只能使用method属性指定调用方法

D.在struts2中超级链接通常都采用绝对路径,而不使用相对路径,这样便于链接的实现

9、下列说法中错误的是(D )。

A.从值栈中取值用value=“参数名”,参数名是action中的参数

B.从actioncontext中取值用#parameters.参数名,参数名是struts中的参数 C.在客户端跳转时一次request只有一个valueStack D.在客户端跳转时一次request可以有多个valueStack 10、和SQL相比,HQL有哪些优点( C )。

A.HQL能够简单的操作表 B. HQL是简单的sql语言组成 C. HQL是面向对象的检索语言 D. HQL对应的是表和表的字段 11、一个XML文件能被浏览器解析的最小要求是( A )。

A.这个文件是形势良好的 B. 这个文件时结构完整的 C.每个标记都是XML标准定义过得 D.扩展名必须是。XML文件

12、主键生成方式中 native可以代替下面的几个选项,不正确的是( B )。 A.identity B. uuid C. hilo D. sequence 13、下列信息中哪一个概念不是Spring中常用的( C )。 A. IOC B. DI C. ORM D. AOP

14、Struts控制器是根据哪个文件的配置,将请求转发给相应的Action处理(A )。

A. struts.xml B. application.properties C. 通过参数指定 D. 以上都是 15、将中文转码的命令是( C )。

A. java B. javac C. native2ascii D. jar

16、Hibernate的生命周期的三种状态,不包括下列哪一项( B )。 A.Transient B. Contacted C. Persistent D. Detached 17、 Struts2标签中,( B )标签用于迭代输出集合中的元素,包括List、Map等。 A. bean B. iterator C. param D. i18n 18、下面不属于持久化的是( B )。 A.把程序数据保存为文件

B.从XML配置文件中读取文件的信息 C.把程序数据从数据库中读取出来

D.把对象转换为字符串的形式传输,在另一端接收后能把对象还原出来 19、下列关于Hibernate说法正确的时( A )。 A.Hibernate是对JDBC轻量级的封装 B.Hibernate需要服务器的运行环境上运行 C.Hibernate是EJB的扩展

D.Hibernate的主配置文件只能是Hibernate.cfg.xml

20、 Struts是一个开源的Web开发框架,它是由哪个组织进行维护的( C )。 A. BEA B. JBoss C. Apache D. Sybase 21、有如下Hibernate的Query查询代码,如果没有查到任何数据,以下说法正确的是( C )。 Query q=session.createQuery(“from Users”); List list=q.List();

A. list是null B. 抛出SqlException异常

C. list.size=0 D. 抛出NotFoundException异常 22、下面不属于关系-对象映射的映射信息是( A )。

A.程序包名到数据库库名的映射 B.程序类名到数据库表名的映射

C.实体属性名到数据库表字段的映射 D.实体类型到数据库表字段类型的映射

23、 Hibernate的运行核心是( D )类,它负责管理对象的生命周期、事务处理、数据交互等。

A. Configuration B. Transaction C. Query D. Session 24、Spring的事务管理应该在DAO模式的( C )。

A. 实体层 B. 数据访问层 C. 业务层 D. 控制层

25、现需要在使用三层结构搭建的某网上专卖店的网站上增加一个满1000送200的促销方案,如果你是设计人员,你将在三层结构的哪一层中实现这一策略( D )。 A. 模型层 B. 表示层 C. 数据访问层 D. 业务逻辑层 26、在Struts框架中进行应用程序的国际化时,下列资源文件中的内容格式正确的是( A )。 A.Label.title = welcome here B. Label.title :welcome here C. Label.title welcome here D. Label.title “welcome here” 27、在Spring中,通过哪种方式实现了依赖注入( B )。

A. getter方法 B. setter方法 C. 自定义赋值方法 D. 静态方法

28、使用Hibernate技术实现数据持久化时,下面内容不在Hibernate配置文件中配置的是( D )。

A. 数据库连接信息 B. 数据库类型(dialect)

C. show_sql D. 数据库表和实体的映射信息 29、下面关于“依赖注入”的说法,错误的是( D )。

A. 将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中 B. 降低了组件间的耦合,使程序更容易维护和升级 C. 促进了“面向接口”编程,使构建大规模程序更轻松 D. 需要定义大量接口,增加了编码复杂度 30、Spring框架的配置文件默认的是(D )。 A.struts.xml B.hibernate.cfg.xml C.spring.xml D.applicationContext.xml

31、Struts2的Action类中有多个方法时,可以使用标签的(C )属性来指定需要调用的方法。

A.name B.class C.method D.type

32、Hibernate是一个(A )框架,它对JDBC进行了轻量级的封装,通过此框架开发人员能以面向对象的思维方式来操作数据库。

A.ORM B.MVC C.IoC D.AOP 33、下面哪个选项不属于MVC设计模式的三个核心模块(C ) A.模型 B.视图 C.数据库连接 D.控制器

34、在struts 实现的MVC框架中(A )类是包含了excute方法的控制器类,负责调用模型的方法,控制应用程序的流程

A.Action B.ajax C.actionservlet D.JSP

35、如果需要在页面中输出某变量的值,则在Struts中采用(D )标签输出改变量的值。 A.param B.if C.bean D.property

36、Struts2的Action类中有多个方法时,可以使用标签的(C )属性来指定需要调用的方法。

A.name B.class C.method D.type

37、Hibernate是一个(A)框架,它对JDBC进行了轻量级的封装,通过此框架开发人员能以面向对象的思维方式来操作数据库。

A.ORM B.MVC C.IoC D.AOP 38、以下集合中不能直接取第一个元素的是(C )。 A.List B.map C.set D.Array

39、关于web.xml文件中配置欢迎文件清单,说法错误的是(B )。 A.使用元素配置欢迎清单 B.只能配置一个欢迎文件 C.可以配置多个欢迎文件

D.web容器调用会依次寻找欢迎文件,直到找到为止

40、在hibernate主配置文件(hibernate.cfc.xml)中,是通过( D )来配置 映射文件的。

A.元素 B.元素 C.元素 D.元素

41、Transaction接口主要是用于管理事务,它的哪个方法用于事务的提交(C )。 A.wasRollback()方法 B.isactive()方法 C.commit()方法 D.wacommitted()方法

42、如果要实现hibernate删除一个对象时,同时级联删除与其相关联的其他对象,cascade属性的值应该设置为(A )。

A.Delete B.true C.false D.none

43、( A )是Hibernate持久化操作的基础,提供了众多持久化方法,如save、update、delete等。通过这些方法,透明地完成对象的增加、删除、修改、查找等操作。 A.Session B.SessionFactory C.Transaction D.Query

44、在spring容器中如果想在方法执行之前执行某个功能,则使用的通知类型是(A )。 A.Before B.After C.AfterRunning D.AfterThrowing

45、Transaction接口主要是用于管理事务,它的哪个方法用于事务的提交( C)。 A.wasRollback()方法 B.isactive()方法 C.commit()方法 D.wacommitted()方法

46、Hibernate操作数据库时,如果想将后台显示的sql语句进行格式化显示,则要将期中的一个属性设置为True,该属性是(D )。

A.MySQLDialect B.show_sql C.hbm2ddl D.format_sql

47、下列信息中哪一个概念不是Spring中常用的( C )。 A. IOC B. DI C. ORM D. AOP

48、在struts 实现的MVC框架中(A )类是包含了excute方法的控制器类,负责调用模型的方法,控制应用程序的流程。

A.Action B.ajax C.actionservlet D.JSP

49、主键生成方式中 native可以代替下面的几个选项,不正确的是( B )。 A.identity B. uuid C. hilo D. sequence

50、下面哪个选项不属于MVC设计模式的三个核心模块(C )。 A.模型 B.视图 C.数据库连接 D.控制器

51、如果需要在页面中输出某变量的值,则在Struts中采用( D)标签输出该变量的值。 A.param B.if C.bean D.property 52、下程序代码对Stu的name属性修改了两次 tx=session.beginTransaction();

Stu stu =(Stu)session.load(Stu.class,new Long(1)); Stu.setName(“Tom”); Stu.setName(“Mike”) ; tx.commit();

执行以上程序,Hibernate需要向数据库提交几条update语句( B )。 A.0 B. 1 C. 2 D. 3 53、以下集合中不能直接取第一个元素的是( C)。 A.List B.map C.set D.Array

54、使用Hibernate技术实现数据持久化时,下面内容不在Hibernate配置文件中配置的是( D )。

A. 数据库连接信息 B. 数据库方言(dialect) C. show_sql D. 数据库表和实体的映射信息 55、有如下Hibernate的Query查询代码,如果没有查到任何数据,以下说法正确的是( C )。 Query q=session.createQuery(“from Users”); List list=q.List();

A. list是null B. 抛出SqlException异常

C. list.size=0 D. 抛出NotFoundException异常 56、下面代码的执行效果是( A )。

String hql=“from Student s order by s.score desc”; Query query=session.createQuery(); Query.setFirstResult(0); Query.setMaxResult(5); return query.list();

A.返回分数最高的5个学生 B.返回分数最高的6个学生 C.返回分数最低的5个学生 D.返回分数最低的6个学生 57、将中文转码的命令是( C )。

A. java B. javac C. native2ascii D. jar 58、下列接口中,(C )接口可以实现对数据进行持久化操作。 A.Configuration B.SessionFactory C.Session D.Query

59、下程序代码是对Book类的bookName属性进行修改操作 tx=session.beginTransaction();

Book book =(Book)session.load(Book.class,new Long(1)); book.setBookName(\计算机网络\book.setBookName(\数据结构\tx.commit();

执行以上程序,Hibernate需要向数据库提交几条update语句(B )。 A.0 B. 1 C. 2 D. 60、下程序代码对Stu的name属性修改了两次 tx=session.beginTransaction();

Stu stu =(Stu)session.load(Stu.class,new Long(1)); Stu.setName(“Tom”); Stu.setName(“Mike”) ; tx.commit();

执行以上程序,Hibernate需要向数据库提交几条update语句( B )。 A.0 B. 1 C. 2 D. 3

61、在Hibernate关系映射配置中,inverse属性的值为true含义是( B )。 A. 定义在节点上,声明要负责关联的维护 B. 声明在节点上,声明要对方负责关联的维护

C. 定义在节点上,声明对方要负责关联的维护 D. 声明在节点上,声明要负责关联的维护 62、( C )是动态拦截Action调用的对象,它提供了一种机制,使开发者可以定义一段代码在Action执行之前或之后被调用执行,也可以在一个Action执行前阻止其执行。 A. 类型转换器 B. 输入校验 C. 拦截器interceptor D. 文件上传下载 63、SSH中,依次处理的哪一层的实现( D )。

A.Struts-业务逻辑层;Hibernate-表现层;Spring-持久层 B.Struts-表现层;Hibernate-业务逻辑层;Spring-持久层 C.Struts-持久层;Hibernate-表现层;Spring-业务逻辑层 D.Struts-表现层;Hibernate-持久层;Spring-业务逻辑层 64、有如下Hibernate的Query查询代码,如果没有查到任何数据,以下说法正确的是( C )。 Query q=session.createQuery(“from Users”); List list=q.List();

A. list是null B. 抛出SqlException异常

C. list.size=0 D. 抛出NotFoundException异常 65、MVC设计模式的目的是( D )。

A. 使程序结构更清晰 B. 使程序更好维护

C. 保证视图和模型的隔离 D. 在逻辑上将视图、模型和控制器分开

66、Hibernate的运行核心是( D )类,它负责管理对象的生命周期、事务处理、数据交互等。

A. Configuration B. Transaction C. Query D. Session 67、Spring的事务管理应该在DAO模式的( C )。

A. 实体层 B. 数据访问层 C. 业务层 D. 控制层 68、关于Spring的说法错误的是( D )。 A. Spring是一个轻量级JavaEE的框架集合 B.Spring包含一个“依赖注入”模式的实现 C.使用Spring可以事先声明式事务 D.Spring提供了AOP方式的日志系统

69、下面创建Criteria对象的语句中正确的是( D )。 A. Criteria c = query.createCriteria() B. Criteria c = query.addCriteria() C. Criteria c = session.createCriteria()

D. Criteria c = session.createCriteria(User.class)

70、下面关于“依赖注入”的说法,错误的是( D )。

A. 将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中 B. 降低了组件间的耦合,使程序更容易维护和升级 C. 促进了“面向接口”编程,使构建大规模程序更轻松 D. 需要定义大量接口,增加了编码复杂度

71、在Spring中,可以通过下列哪种方式实现属性值的注入(B )。 A. getter方法 B. setter方法 C. 自定义赋值方法 D. 静态方法 72、下面关于“依赖注入”的说法,错误的是(D )。

A. 将组件间的依赖关系采取配置文件的方式管理,而不是在代码中 B. 降低了组件间的耦合,使程序更容易维护和升级 C. 促进了“面向接口”编程,使构建大规模程序更轻松 D. 需要定义大量接口,增加了编码复杂度

填空题

Hibernate是一个基于JDBC的 持久层解决方案,是一个优秀的开源的对象关系映射ORM 框架。

Hibernate实体间通过关系来相互关联,关联关系主要有 一对一 关系、一对多关系和 多对多关系3种关系。

Spring是一个以 IOC和 AOP为核心的轻量级容器框架。

4、在动作类中如果进行数据校验,必须要在Action类中继承Actionsupport 类。

5、在Struts2中如果某个动作使用了自定义拦截器,则必须使用 interceptor拦截器,否者Sturts2的流程不能正确执行下去。

6、Spring为我们引入了组件自动扫描机制,他可以在类路径底下寻找标注了注解的类,并

把这些类纳入进spring容器中管理。 @service用于标注业务层组件、@controller 用于标注控制层组件、 @repository 用于标注数据访问组件,即DAO组件。而@Component泛指组件当组件不好归类的时候,我们可以使用这个注解进行标注。 7、目前流行的数据库连接池有DBCP、C3PO、Proxool等。 8、ORM中的“O”代表对象(Object),“R”代表关系(Relation),“M”代表映(Mapping)。ORM的原理是将 对象与 表、 属性 与字段分别建立映射关系。

9、网页表单中的数据校验总体分为客户端校验,即浏览器校验,如用JavaScript编写的校验代码,另外一种是 服务器校验,如判断用户是否存在等。 10、版本控制是一种软体工程技巧,籍以在开发的过程中确保由不同人所编辑的同一档案都得到更新。目前流行的版本控制软件有CVS、_SVN等。

11、如果想将struts的编码格式设置为\,则需要在struts.xml文件中 对相应的常量进行配置,配置为

在SSH框架中,Hibernate是一个基于JDBC的持久层解决方案,是一个 优秀的开源的对象关系映射ORM 框架。 13、现阶段在JAVA WEB开发中的开源框架很多,其中最主流的当属SSH,即Struts,Spring和 hibernate 。

14、Struts框架中的视图主要由 jsp页面构成。

15、 Validator框架允许为Struts应用灵活的配置验证规则,无需编程。

16、 在Struts2中如果某个动作使用了自定义拦截器,则必须使用 interceptor拦截器,否者Sturts2的流程不能正确执行下去。

17、Struts2的配置文件默认的文件名是 struts.xml,可以在通过 include标签将其他Struts2配置文件导入进来。

18、Hibernate应用通常由四个部分组成,它们是使用Hibernate API的程序【和 查询语言或API 、 映射机制 、实现技术 、】 configuration sessionfactory session Transaction 。 19、版本控制是一种软体工程技巧,籍以在开发的过程中确保由不同人所编辑的同一档案都得到更新。目前流行的版本控制软件有SVN、__CVS________等。

20、实体对象的生命周期有3种状态即:瞬时态、持久态和 托管(detached) 。 21、Hibernate实体间通过关系来相互关联。其关联关系主要有一对一关系、 一对多关系和 关系3种。 22、在实际应用中为了提高struts.xml文件的可读性,可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件,该标记是

23、如果将${}用在配置文件struts.xml中表示从 值栈 中读取数据。

24、假设在工程的SRC目录下存在两个资源文件:第一个用来存放中文编码,文件名为:ssh2012_zh_CN.properties,第二个存放英语(作为默认语言)编码,文件名为:ssh2012_en_US.properties。当使用上面的资源文件时需在struts.xml中配置常量加载全局资源文件:

25、实体对象的生命周期有3种状态即:瞬时态、持久态 和脱管态。

26、Hibernate实体间通过关系来相互关联。其关联关系主要有 一对一关系、 关系和 关系3种。

27、若从Kcb中查询kch为\的详细信息,则执行的命令如下所示,请补充完整(前后

代码略去)。

Query query=session.createQuery(\ query.setParameter( 0 , \

28、在spring中为List类型的对象注入数据时应当采用如下格式: value1 value2 < /list >

29、Spring是一个以 控制反转和面向切面编程为核心的轻量级容器框架。

30、若从Student类中查询学号为\的学生信息,则执行的命令如下所示,请补充完整(前后代码略去)。

Query query=session.createQuery(\ query.setParameter( val , \

31、在spring中为Set类型的变量set注入数据时应当采用如下格式: value1 value2

32、现阶段在JAVA WEB开发中的开源框架很多,其中最主流的当属SSH,即Struts, 和 。

33、在动作类中如果进行数据校验,必须要在Action类中继承 类。 34、ORM中的“O”代表对象(Object),“R”代表关系(Relation),“M”代表映(Mapping),ORM的原理是将对象与 、属性与 分别建立映射关系。

35、若从Kcb中查询kch为\的详细信息,则执行的命令如下所示,请补充完整(前后代码略去)。

Query query=session.createQuery(\ ? \ query.setParameter( , \

37、Struts2的配置文件默认的文件名是 struts.xml ,可以在通过 include 标签将其他Struts2配置文件导入进来。 38、数据库中的数据表user和实体类Users是一一对应的关系,如果出现表的名称和类的名称不一致的时候应该配置Users.hbm.xml文件中标签中的 table 属性,使映射相一致。 39、有下列程序段:

当运行该程序时,显示结果是 AAA|BBB|CCC| 。

40、网页表单中的数据校验总体分为客户端校验,即浏览器校验,如用JavaScript编写的校验代码,另外一种是 服务器校验,如判断用户是否存在等。

简答题

1、什么是框架?在JavaEE开发中为什么要使用框架?

2、Hibernate中openSession()和getCurrentSession()有什么差别? 3、Spring中BeanFactory与ApplicationContext的差别? 4、描述Struts2的工作流程。

5、简述hibernate在持久化操作时的工作步骤。 6、谈谈您对OOP和AOP两种编程思想的认识。 7、简单叙述SSH项目搭建过程。 8、什么是框架?为什么要用框架?

9、在应用hibernate框架操作数据库时,是先建表还是先建类?为什么? 10、关系数据库的表之间不存在继承关系,为了将面向对象中的继承关系映射关系数据库中,可以使用以下三种继承映射策略:每个继承层次一张表;每个具体类一张表;每个类一张表。试请分析三种策略在实际应用中各自的优缺点? 11、什么是ORM?它主要解决什么问题?

12、Struts2 + Hibernate + Spring三个框架集成一起,简称为SSH。您认为这三个框架的主要内容是什么?各应用在什么地方? 13、简单叙述SSH项目搭建过程。

14、Struts2 + Hibernate + Spring,简称SSH。 您认为3个框架主要应用在什么地方,各框架的重点内容是什么?

15、简述使用Hibernate完成持久化操作的步骤。 16、继承映射通常有哪几种方式?各有什么优缺点?

17、Spring中的面向切面编程与面向对象编程方式冲突吗?为什么?

简答题

1、以下是Spring的注解AOP类,请在每个//后面进行注释本行代码的意义或功能。 @Aspect

public class LogPrint { @Pointcut(\ private void anyMethod() {}// 声明一个切入点 @Before(\定义前置通知 public void doAccessCheck(String userName) { } @AfterReturning(pointcut=\定义例外通知 public void doReturnCheck(String revalue) { } @AfterThrowing(pointcut=\ public void doExceptionAction(Exception ex) { } @After(\定义最终通知 public void doReleaseAction() { } @Around(\环绕通知 public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable { return pjp.proceed(); } }

2、所有的WEB项目都有管理员登录功能,一般管理员的登录是用拦截器完成,阅读程序,请说明intercept方法中每行代码的意义或功能。 package interceptor; import java.util.*;

import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.AbstractInterceptor; @SuppressWarnings(\

public class ManagerLoginCheck extends AbstractInterceptor{ public String intercept(ActionInvocation ai) throws Exception { Map session = ai.getInvocationContext().getSession();//获取session对象,拦截所有 String managerName = (String)session.get(\ HttpServletRequest request = ServletActionContext.getRequest(); String currentURL = request.getRequestURI(); if(currentURL.contains(\ if(!(managerName == null || \ return ai.invoke();//转入管理页 }else{ return \ } }else{ return ai.invoke(); } } }

4、SSH框架集成时需要配置web.xml、struts.xml和beans.xml文件,请说明各个配置文件的作用。

// Web.xml文件配置片段

//指定spring配置文件的位置并指以listener方式启动spring contextConfigLocation classpath:beans.xml

org.springframework.web.context.ContextLoaderListener

// struts.xml文件配置片段

//编写一个函数saveUser,实现将一个用户的信息持久化到数据库中,部分代码已经完成。 public void saveUser(User u) { }

//按姓名进行查找功能 public User findByName(String name) { } }

12、请根据文件Book.hbm.xml的内容,写出对应的实体类Book。

13、在struts的标签库中有个if标签,请在代码下方空白处写出带编号的每条语句的功能。 ①成年人!

14、有如下一段程序代码,请在代码下方空白处写出带编号的每条语句的功能。

当前第

15、有如下程序代码,请写出运行Test类后输出的结果。 // beans.xml文件部分配置信息

//类User

package com.cn; public class User { private int userid; private String username; setter方法和getter方法略去 }

//测试类Test package com.cn;

import org.springframework.context.ApplicationContext; import org.springframework.context.support. ClassPathXmlApplicationContext; public class Test { public static void main(String[] args){ ApplicationContext ctx = new

ClassPathXmlApplicationContext(\ User user = (User)ctx.getBean(\ System.out.println(user.getUserid()); System.out.println(user.getUsername()); System.out.println(user.getPassword()); } } 2012 黄淮学院

信息工程学院

16、在类MyInter中有方法intercept,请说明intercept方法中每个行代码作用。 package com.cn;

public class MyInter implements Interceptor {

public String intercept(ActionInvocation invocation) throws Exception {

Object user=ActionContext.getContext().getSession().get(\if(user!=null && user.equals(\ return invocation.invoke(); }

ActionContext.getContext().put(\您还没有登录,请登陆系统\ return \} }

17、请写出struts.xml配置文件中带标号的语句功能。

② 指一个名为book_add的

Action对应的类为BookAction

18、阅读下列程序段,请写出Test类的运行结果。 package cn.hhxy.xxgcxy; public class UserManager { private String loginTitle;

private String loginName;

setter方法、getter方法及具体功能省略 }

spring配置文件bean.xml内容为:

//导入包略去 public class Test { public static void main(String[] args){

ApplicationContext ctx = new ClassPathXmlApplicationContext(\ UserManager um= (UserManager)ctx.getBean(\ System.out.print(um.loginTitle);

System.out.print(um.loginName); } }

19、阅读下面分页显示记录程序,请补充完整下划线处代码。

当前第

value=\ \最后一页

20、下面代码是SSH架构集成环境下的业务层代码,请完成saveuser方法(对象u的添加)和findbyid方法(按id查找)的代码编写。 package com.cn;

import javax.annotation.Resource; import org.hibernate.SessionFactory;

import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @Transactional

public class Serverbean { @Resource private SessionFactory sessionFactory; public void saveuser(Stu u) { Session s=SessionFactory.getcurrentsession();

Transaction tx=s.beginTransaction(); s.save(u); tx.commit(); s.close(); } public Stu findbyid(Integer id) { String hql=””from stu as stu where stu.id=;

Query q=sessionFactory.getcurrentSession().createQuery(hql); List list=q.list; Stu stu=new stu(); Stu=list.get(); return stu;’ } }

21、现有SSH项目,所有各层模块已经编写完成,部分程序需要补充完整。请将代码写在划线处。

// 服务层Serverbean类 package com.cn; import java.util.List;

import javax.annotation.Resource; import org.hibernate.Query;

import org.hibernate.SessionFactory;

import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @Transactional

public class Serverbean {

@Resource private SessionFactory sessionFactory; public List findbyname(String name) { String hql=\ Query q=sessionFactory.getCurrentSession().createQuery(hql); List list=q.list(); ;//返回查询结果 Return list; } }

// 控制层动作类FindbynameAction package com.cn; import java.util.List;

import javax.annotation.Resource; public class FindbynameAction {

;//注入serverbean对象

private String name; private List list;

public String findbyname()

{ list=serverbean.findbyname(name); if (list.size()>0) { return \ } else { return \ } } }

// beans.xml配置片段

// 前台查询页面findbyname.htm

// 查询显示结果页面find.jsp

<%@ page language=\ <%@ taglib url=”/struts-tags” prefix=”s” /> //引入struts标签库

姓名:

生日:

22、为了保护不允许直接访问的JSP资源,开发者将所有JSP页面放入到项目下,/WEB-INF/pages目录中。希望通过struts2通配符的方式可以直接访问项目/WEB-INF/pages/admin/目录下的JSP资源。例如:访问static_index.action 时,相当于访问

/WEB-INF/pages/admin/index.jsp。访问 static_top.action时,相当于访问/WEB-INF/pages/admin/top.jsp。请使用struts2配置文件中,action通配符的技巧完成该能。(只写action result配置即可)。

/*.jsp

23、利用Hiberante操作数据库时,为了方便获取Hiberante的session对象,首先编写数据库助手类,助手类利用Configuration类的buildSessionFactory 的方法获取sessionFactory对象,后通过sessionFactory对象的opensession方法获得session,请补充完整以下助手类static代码块和getSession方法的代码。 public final class HibernateUitl {

private static SessionFactory sessionFactory; private HibernateUitl() { }

static { Configuration configuration; sessionFactory factory; } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession() { configuration=new configuration().configure(); factory=configuration。buildSessionFactory(); session=sessionFactory.open.session(); } }

24、以下是用Struts2实现的登录程序片段,请补充完整程序。 login.jsp程序如下:

<%@ page language=\<%@ taglib prefix=\_/struts-tags____________\

login title here

LoginAction.java程序如下: package com.my.action;

import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String loginName; private String password;

public String execute() throws Exception { return SUCCESS; }

@Override

public void validate() {

if( ! \

_________________(\不允许此登录名!\ } } }

25、阅读下列程序,完成相应的配置与操作。 //接口类

import cn.xxgcxy;

public interface PersonDao { public void add(); } //实现接口类 import cn.xxgcxy;

public class PersonDaoBean { public void add(){ System.out.println(\执行add()方法\ } } //对象类

import cn.xxgcxy;

public class PersonServiceBean { private PersonDao personDao; public PersonDao getPersonDao() {

return personDao.getPersonDao() ; } public void setPersonDao(PersonDao personDao) { this.personDao = personDao; } public void save(){ personDao.add(); } }

//配置beans.xml

\ //测试类Test

public class BookTest {

public static void main(String[] args){ ApplicationContext ctx =

new ClassPathXmlApplicationContext(\PersonServiceBean personService =

(PersonServiceBean)ctx.getBean(\ personService.save(); } }

标号①语句的输出结果为:执行add()方法

26、使用hibernate框架操作数据库非常的方便,现有一个实体类User和对应的配置都已完成。请你编写一个测试类Test,要求:

(1)实现将一个用户名为\,密码为\的对象持久化到数据库中; (2)从数据库中查找用户名为\的用户,并将其信息打印出来。 //hibernate.cfg.xml文件配置片断

name=\ //实体类User

package cn.edu.huanghuai.xxgcxy;

public class User implements java.io.Serializable { private String username; private String password; setter方法和getter方法略去 }

//测试类Test

import java.util.List;

import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction;

import cn.edu.huanghuai.xxgcxy.User; import org.util.HibernateSessionFactory; public class Test { public static void main(String[] args) { Session session = HibernateSessionFactory.getSession(); //添加

Query query=session.createQuery(“from user where) Query.seString(“0”,”zhangsan”);

Username=”?”); List list=query.list(); Iteratort it=list.iterator(); While(list.hasnext()){ User user=(User)it.next();

System.out.println(user.getusername()+“+user.getPassword());} Transaction ts=session.beginTransaction(); User user=new User(); user.setname(“kk”);

user.setPassword(12346); session.save(user); ts.commit();

//查询 HibernateSessionFactory.closeSession(); } }

27、现有一个程序,主要实现将一个用户的信息添加到数据库中,部分功 能已经完成(Success.jsp和Fail.jsp页面省略),请编写程序将空白 处的程序功能补充完整。

//register.jsp文件中的表单信息

//struts.xml文件主要配置信息 name=\ //类User

package com.model;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue; import javax.persistence.Id;

@Entity

public class User { @Id @GeneratedValue private int id; private String username; private String password; //setter方法和getter方法略去 }

//类UserAction package com.action;

import com.opensymphony.xwork2.ActionSupport; import com.model.User;

import com.service.UserManager;

public class UserAction extends ActionSupport { private String username; private String password; private String password2; UserManager um = new UserManager(); //setter方法和getter方法略去 @Override public String execute() throws Exception { User u = new User(); u.setUsername(username); u.setPassword(password); if(um.exists(u)) { return \ } um.add(u); return \ } }

//类UserManager package com.service;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.model.User; public class UserManager {

//实现判断用户是否存在功能,部分代码已经完成。 public boolean exists(User u) throws Exception { Class.forName(\ Connection conn = DriverManager.getConnection

(\ String sq=“select * from user where username=?andpassword?”; Prepared。Statement ps=null; Boolean flag=false;

Ps.conn.preparedStatement(sql); ps.setString(1.u.getUsername()); ps.setString(2.u.getPassword()); Result rs=ps.exectureQuery(); While*rs.next()){ Flag=true;} re.close(); ps.close(); conn.close(); return flag; } //实现将用户信息添加到数据库中的功能,部分代码已经完成。 public void add(User u) throws Exception { Class.forName(\ Connection conn = DriverManager.getConnection (\

String sql=”insert into user(username,password)values(?,?)”; ps.setString().u.getUsername(); ps.setString(2,u.getPassword()); ps.executeupdate(); ps.closed(); conn.close(); } }

本文来源:https://www.bwwdw.com/article/ezm.html

Top