文档库 最新最全的文档下载
当前位置:文档库 › SSH复习题

SSH复习题

选择题

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”) ;

https://www.wendangku.net/doc/da18093917.html,mit();

执行以上程序,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("数据结构") ;

https://www.wendangku.net/doc/da18093917.html,mit();

执行以上程序,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”) ;

https://www.wendangku.net/doc/da18093917.html,mit();

执行以上程序,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的编码格式设置为"gbk",则需要在struts.xml文件中

对相应的常量进行配置,配置为

在SSH框架中,Hibernate是一个基于JDBC的持久层解决方案,是一个

优秀的开源的对象关系映射ORM 框架。

13、现阶段在JA V A 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中配置常量加载全局资源文件:

value=" ssh2012 " />。

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

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

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

代码略去)。

Query query=session.createQuery("from Kcb where kch=?");

query.setParameter( 0 , "001");

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

< list >

value1

value2

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

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

Query query=session.createQuery("from Student where xh=:val");

query.setParameter( val, "1034160011");

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

value1 value2

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

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

34、ORM中的“O”代表对象(Object),“R”代表关系(Relation),“M”代表映(Mapping),ORM的原理是将对象与、属性与分别建立映射关系。

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

Query query=session.createQuery("from Kcb where kch= ?");

query.setParameter( , "001");

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("execution(* cn.itcast.service..*.*(..))")

private void anyMethod() {}// 声明一个切入点

@Before("anyMethod() && args(userName)")// 定义前置通知

public void doAccessCheck(String userName) {

}

@AfterReturning(pointcut="anyMethod()",returning="revalue")// 定义例外通知

public void doReturnCheck(String revalue) {

}

@AfterThrowing(pointcut="anyMethod()", throwing="ex")//

public void doExceptionAction(Exception ex) {

}

@After("anyMethod()")// 定义最终通知

public void doReleaseAction() {

}

@Around("anyMethod()")// 环绕通知

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("serial")

public class ManagerLoginCheck extends AbstractInterceptor{

public String intercept(ActionInvocation ai) throws Exception {

Map session = ai.getInvocationContext().getSession();//获取session对象,拦截所有

String managerName = (String)session.get("managerLoginName");

HttpServletRequest request = ServletActionContext.getRequest();

String currentURL = request.getRequestURI();

if(currentURL.contains("manage")){

if(!(managerName == null || "".equals(managerName.trim()))){

return ai.invoke();//转入管理页

}else{

return "managerLogin";

}

}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文件配置片段

/success.jsp

// beans.xml文件配置片段

//创建serverbean的实例

//创建Myaction实例

//依赖注入数据库访问组件并为其属性myserverbean注入值

请分别说明以上三个配置文件片段的作用:

5、在类MyInter中有方法intercept,请说明intercept方法中每个行代码作用。

package https://www.wendangku.net/doc/da18093917.html,;

public class MyInter implements Interceptor {

public String intercept(ActionInvocation invocation) throws Exception

{

Object user=ActionContext.getContext().getSession().get("user");

if(user!=null && user.equals("admin"))

{

return invocation.invoke();

} ActionContext.getContext().put("tip","您还没有登录,请登陆系统");

return "login";}

6、有下面一段程序代码:

String hql="from Student as s order by s.score asc";

Query query=session.createQuery(hql);

Query.setFirstResult(0);

Query.setMaxResult(5);

return query.list();

当执行后,显示的内容是什么?成绩最低的5个人的信息

7、以下是用Struts2实现的登录程序片段,请补充完整程序。

login.jsp程序如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="___/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( ! "admin".equals(loginName)){

__this.addFieldError_____________("loginName", "不允许此登录名!");

}

}

}

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

// Web.xml文件配置片段

org.springframework.web.context.ContextLoaderListener

// struts.xml文件配置片段

/success.jsp

// beans.xml文件配置片段

web.xml文件配置片段功能是:

web应用程序启动时以listener方式启动spring

struts.xml文件配置片段功能是:

指定名为mystu的Action,其对应的类为myaction,执行结果跳转到success.jsp

beans.xml文件配置片段功能是:

在spring配置文件中创建一个serverbean类型的对象myserverbean

9、有如下程序代码,请补充程序,使其输出"黄淮学院","和谐中国",

"和谐社会"等三个字符串。

// beans.xml文件部分配置信息20130622

//类User

package https://www.wendangku.net/doc/da18093917.html,;

public class User {

private int userid;

private String username;

setter方法和getter方法略去

}

//测试类Test

package https://www.wendangku.net/doc/da18093917.html,;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.

ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args){

ApplicationContext ctx = new

ClassPathXmlApplicationContext("beans.xml");

User user = (User)ctx.getBean("user");

System.out.println( https://www.wendangku.net/doc/da18093917.html,erid );

System.out.println( user.password );

System.out.println( https://www.wendangku.net/doc/da18093917.html,ername );

}

}

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

(1)将用户名为"hhxy"的用户信息更改为用户名为"zhangsan",密码为"xxgcxy";

(2)从数据库中删除用户名为"zhangsan"的用户。

//hibernate.cfg.xml文件配置片断

name="myeclipse.connection.profile">MyConn

//实体类User

package https://www.wendangku.net/doc/da18093917.html,.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 https://www.wendangku.net/doc/da18093917.html,er;

import org.util.HibernateSessionFactory;

public class Test {

public static void main(String[] args) {

Session session = HibernateSessionFactory.getSession();

//将一个用户名为"hhxy"的用户信息更改为用户名为"zhangsan",密码设置为"xxgcxy";

User user=(User)session.gerUser.class.newString(“hhxy”);

user.setusername(“zhangsan”);

user.setPassword(“xxgcxy”);

//删除用户名为"zhangsan"的用户

HibernateSessionFactory.closeSession();

}

}

11、现有一个程序,主要实现将一个用户的信息添加到数据库中,部分功

能已经完成(Success.jsp和Fail.jsp页面省略),请编写方法实现相应的功能。

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

用户名:

密码:

确认密码:

//struts.xml文件主要配置信息

name="user" class="https://www.wendangku.net/doc/da18093917.html,erAction">

/Success.jsp

/Fail.jsp

//类User

package com.model;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

@Entity

public class User { //setter方法和getter方法略去@Id

@GeneratedV alue

private int id;

private String username;

private String password; }

//类UserAction

package com.action;

import com.opensymphony.xwork2.ActionSupport; import https://www.wendangku.net/doc/da18093917.html,er;

import https://www.wendangku.net/doc/da18093917.html,erManager;

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 "fail";

}

um.add(u);

return "success";

}

}

//类UserManager

package com.service;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import https://www.wendangku.net/doc/da18093917.html,er;

public class UserManager {

//编写一个函数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 https://www.wendangku.net/doc/da18093917.html,;

public class User {

private int userid;

private String username;

setter方法和getter方法略去

}

//测试类Test

package https://www.wendangku.net/doc/da18093917.html,;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support. ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args){

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

User user = (User)ctx.getBean("user");

System.out.println(user.getUserid());

System.out.println(user.getUsername());

System.out.println(user.getPassword());

}

}

2012

黄淮学院

信息工程学院

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

package https://www.wendangku.net/doc/da18093917.html,;

public class MyInter implements Interceptor {

public String intercept(ActionInvocation invocation) throws

Exception {

Object user=ActionContext.getContext().getSession().get("user");

if(user!=null && user.equals("admin")){

return invocation.invoke();

}

ActionContext.getContext().put("tip","您还没有登录,请登陆系统");

return "login";

}

}

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

添加开发模式,是不启用服务器就能调试

指一个名为book_add的

Action对应的类为BookAction

show.jsp返回值为add时跳转到show.jsp页面

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("beans.xml");

UserManager um= (UserManager)ctx.getBean("user");

System.out.print(um.loginTitle);

System.out.print(um.loginName);

}

}

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

/

当前第
条记录

第一页

">上一页">下一页

">最后一页

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

package https://www.wendangku.net/doc/da18093917.html,;

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);

https://www.wendangku.net/doc/da18093917.html,mit();

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 https://www.wendangku.net/doc/da18093917.html,;

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="from Stu as stu where stu.xm='"+name+"'";

Query q=sessionFactory.getCurrentSession().createQuery(hql);

List list=q.list(); ;//返回查询结果

Return list;

}

}

// 控制层动作类FindbynameAction

package https://www.wendangku.net/doc/da18093917.html,;

import java.util.List;

import javax.annotation.Resource;

public class FindbynameAction {

;//注入serverbean对象

相关文档