SSH项目机试笔试小案例.docx
《SSH项目机试笔试小案例.docx》由会员分享,可在线阅读,更多相关《SSH项目机试笔试小案例.docx(14页珍藏版)》请在冰豆网上搜索。
![SSH项目机试笔试小案例.docx](https://file1.bdocx.com/fileroot1/2023-8/4/fc3c5dc6-b8b1-49c0-a850-4e432f259b45/fc3c5dc6-b8b1-49c0-a850-4e432f259b451.gif)
SSH项目机试笔试小案例
================================机试================================
一、功能要求
公司计划使用SSH(Struts2+Spring+Hibernate)框架开发一套顺风搬家预约登记系统。
具体要求如下:
(1)预约登记功能如图-1所示,用户可以选择起始地区,所用车型,搬家日期,联系人,联系电话。
起始地区包括:
海淀区、朝阳区、西城区、东城区、丰台区、大兴区及石景山。
所用车型包括:
金杯、皮卡、厢式小货及1041货车。
“厢式小货”为默认值。
图-1预约登记页
(2)管理人员登录系统功能:
页面显示登录用户名及登录密码。
如图-2所示。
图-2管理员登录页面
(3)预约信息查询功能如图-3所示,查询出所有的搬家预约信息,按照提交次序倒序排序,状态显示为易读的文本(显示为“未处理”、“已派车”或“已结束”,而非0、1、2),显示相关操作按钮(处理,详情)。
图-3预约搬家登记列表
(4)修改预约登记信息功能:
对预约信息进行修改,只对其状态(1-已派车,2-已结束,0-未处理)进行修改。
如图-4所示。
图-4修改状态
(5)查看预约登记信息功能:
显示预约基本信息及处理状态。
如图-5所示。
图-5查看登记信息
二、数据库设计
表名
move_booking
中文表名称
搬家预约登记表
主键
id
序号
字段名称
字段说明
类型
属性
备注
1
id
编号
number
自增
主键
2
area
起始地区
varchar2(50)
非空
3
cartype
所用车型
varchar2(20)
非空
4
movedate
搬家日期
date
非空
5
contact
联系人
varchar2(20)
非空
6
phone
联系电话
varchar2(20)
非空
7
status
订单状态
Char
(1)
1-未处理
2-已派车
3-已结束
表名
users
中文表名称
管理员信息表
主键
id
序号
字段名称
字段说明
类型
属性
备注
1
id
编号
number
自增
主键
2
name
用户名
varchar2(20)
非空
3
password
密码
varchar2(32)
非空
三、具体要求及推荐实现步骤
1、建立数据库和数据表,并且添加测试数据(至少3条)。
2、打开MyEclipse,创建Web工程,命名为movebooking,并创建相应包。
3、为工程添加Struts2、Spring、Hibernate支持。
4、在工程中创建实体类和对应的Hibernate映射文件。
5、创建DAO类、业务类:
在DAO类中使用HQL语句实现查询操作,按编号倒序排序。
6、创建Action类,正确处理默认状态。
并正确配置Struts、Hibernate、Spring的配置文件。
7、创建如图-1、图-2、图-3、图-4及图-5所示的页面。
8、测试程序,调试运行成功后,分离数据库文件与代码文件一同提交。
8、测试程序,调试运行成功后,分离数据库文件与代码文件一同提交。
================================笔试================================
笔试试卷
一、选择题(共25题,每题4分,满分100分)
1)下列关于Spring特性中IoC描述错误的是()。
A.IoC就是指程序之间的关系由程序代码直接操控
B.所谓“IoC:
控制反转”是指控制权由应用代码转到外部容器,即控制权的转移
C.IoC将控制创建的职责搬进了框架中,从应用代码脱离开来
D.使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它
2)在Spring中,数据连接是通过数据源获得的,下列关于Spring数据源描述错误的是()。
A.Spring提供了一个简单的数据源实现类DriverManagerDataSource,它位于org.springframework.jdbc.datasource包中,并且这个类提供池化连接的机制
B.Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是C3P0
C.Spring提供引用JNDI资源的类是JndiObjectFactoryBean
D.DriverManagerDataSource比较适合在单元测试或简单的独立应用中使用
3)下列关于Spring配置文件的说法不正确的是()。
A.Spring默认是读取/WEB-INF/applicationContext.xml配置文件
B.Spring的配置文件可以配置在类路径下,并可以重命名,但是需要在web.xml文件中指定
C.把applicationContext.xml文件放到src目录下,Spring也可以读到
D.可以通过在web.xml中的和进行指定Spring配置文件
4)下面关于Spring中的bean的作用域,描述错误的是()。
A.Spring中的bean的作用域可以通过scope属性进行配置
B.Spring中的bean的作用域默认是prototype
C.当一个bean的scope设为“singleton”时,可以被多个线程同时访问
D.一个bean的scope只对它自己起作用,与其它bean无关
5)下列关于Spring的装配模式(default-autowire)描述不正确的是()。
A.Spring中,至少有两种装配模式,按“类型”和“名字”
B.Spring中默认是按名字进行装配的
C.可以用default-autowire=”byType”配置按类型装配
D.一旦在一个Spring配置文件中配置了default-autowire=”byType”,其它的配置文件也是按此种装配方式进行装配
6)某业务方法taskApply(Useruser,Listtasks)需要对其进行事务控制,下面的声明方式不能起到效果的是()。
A.将查询方法声明为只读事务,其他方法声明为REQUIRED
B.声明do开头的方法为REQUIRED,并修改方法名为doTaskApply
C.methodname="*Apply"propagation="REQUIRED"/>
D.事务的propagation属性声明为SUPPORTS
7)下列关于Spring与Hibernate的集成,说法错误的是()。
A.Spring与Hibernate的集成后,Hibernate的SessionFactory可以让Spring进行管理
B.Hibernate中的配置文件也可以移到Spring的配置文件中配置
C.使用Spring的事务管理,会让Hibernate事务处理变得简单
D.Hibernate的映射文件的路径(如:
cn/jbit/project/model/User.hbm.xml),不能在Spring中定义
8)下列关于Spring配置数据连接池的描述,错误的是()。
A.Spring可以用mons.dbcp.BasicDataSource类配置数据源
B.在mons.dbcp.BasicDataSource类中有driver,url,username,password属性
C.配置Spring数据源时,必须引入Hibernate的SessionFactory
D.在用dbcp时,需要拷贝commons-dbcp的jar包到类路径下
9)下列选项关于Spring的核心机制——依赖注入的描述正确的是()。
A.所谓依赖注入就是明确地定义组件接口,独立开发各个组件,然后根据组件间的依赖关系组装运行的设计开发模式
B.Spring不负责管理bean之间的关系
C.节点有可选的子节点,用于注入bean的属性
D.在Spring的配置文件中,使用来创建Bean的实例
10)Spring配置文件中关于事务的配置代码如下:
…
adviceid="txAdvice"transaction-manager="txManager">
attributes>
methodname="get*"propagation="REQUIRED"
read-only="true"/>
methodname="add*"propagation="REQUIRED"/>
methodname="*"propagation="REQUIRED"read-only="true"/>
attributes>
advice>
config>
pointcutid="serviceMethod"
expression="execution(*cn.jbit.ch09.service.*.*(..))"/>
advisoradvice-ref="①________"pointcut-ref="②_________"/>
config>
…
在横线处应填入()。
A.①txAdvice
②txManager
B.①serviceMethod
②txManager
C.①txAdvice
②serviceMethod
D.①serviceMethod
②txAdvice
11)下面关于Struts2、Hibernate以及Spring整合说法正确是()。
A.当我们将Hiberntae和Spring集成后,Hibernate的程序就交给Spring容器进行管理,所以我们不需要在将操作Hibernate的DAO配置在Spring容器中
B.将Struts2、Hibernate与Spring集成后,更方便系统开发
C.所有Spring中的配置信息必须放到applicationContext.xml中
D.当我们将Struts、Hibernate以及Spring整合在一起时,Spring只能管理Hibernate操作数据库的事务,并不能管理Struts中关于业务操作的事务
12)关于Spring对Hibernate的支持,下列说法正确的是()。
A.Spring也提供了一个持久化解决方案,可以替代Hibernate,也可以和Hibernate集成使用
B.使用Spring对Hibernate的支持,我们将无需创建SessionFactory
C.可以在Spring配置文件中配置Hibernate,因此Spring的配置文件和Hibernate的配置文件无法同时使用
D.Spring提供的HibernateDaoSupport类提供了SessionFactory的setter方法
13)分析下面的Spring配置代码,可以推断下列Java语句的运行结果是()。
Java语句如下:
ApplicationContextcontext=newClassPathXmlApplicationContext("di.xml");
System.out.println(((B)context.getBean("b")).getM());
Spring配置代码如下:
A.编译错误
B.什么也不输出
C.输出:
1
D.输出:
2
14)在Spring配置文件di.xml中包含如下的代码
由此可以推断出()。
A.可以通过如下代码获取Test的实例
ApplicationContextcontext=newClassPathXmlApplicationContext("di.xml");
Testtest=(Test)content.getBean("test");
B.可以通过如下代码获取i的值
ApplicationContextcontext=newClassPathXmlApplicationContext("di.xml");
inti=(int)content.getBean("i");
C.Test肯定实现了一个接口
D.Test中一定存在getI()方法
15)在Spring中,关于依赖注入,下面说法错误的是()。
A.依赖注入提倡面向接口编程
B.依赖注入可降低系统的各个组件之间的依赖程度
C.依赖注入的组件对外提供接口时,使得可以随意更换接口的实现
D.依赖注入使得在实现组件时,必须考虑各个组件中的依赖关系
16)在Spring中,可以通过()方式实现了依赖注入。
A.getter方法
B.setter方法
C.自定义赋值方法
D.静态方法
17)分析如下所示的Spring配置文件中的代码,则选项中的说法正确的是()。
config>
pointcutid="bizMethods"
expression="execution(*cn.jbit.jboa.biz.*.*(..))"/>
advisoradvice-ref="txAdvice"pointcut-ref="bizMethods"/>
config>(选择二项)
A.这是Spring2.0风格的配置
B.该配置不对任何方法起作用
C.将对cn.jbit.jboa.biz包下的所有类的所有方法进行事务控制
D.advisor>节点还应该配置transaction-manager属性
18)下列选项关于Spring依赖检查说法不正确的是()。
A.在某些情况下,并不需要为Bean的每个属性都设置值,或者某些属性已有默认值,此时可以使用依赖检查进行检查
B.Spring通过元素的dependency-check属性来设置依赖检查或者通过元素的default-dependency-check属性来设置全局依赖检查
C.object——检查和BeanFactory中其他Bean的依赖
D.simple——检查原始类型和String类型是否正常装配
19)下列选项中关于Spring拆分配置文件的说法不正确的是()。
A.在web.xml文件中使用元素来装入多个配置文件,文件名之间以逗号分隔
B.在web.xml文件中以通配符“*”来配置多个具有一定命名规则的配置文件
C.Spring配置文件本身也可以通过import子元素导入其他配置文件,将多个配置文件整合成一个完整的Spring配置文件
D.拆分Spring配置文件会影响速度,实际项目应用中不建议拆分Spring配置文件
20)下列选项关于Spring配置DataSource的说法正确的是()。
(选择二项)
A.Spring数据源配置方式比较单一,可配性低
B.Spring默认的数据源实现是DriverManagerDataSource
C.Spring使用PropertyPlaceholderConfigurer可以引入属性文件,在配置文件中采用${…}的方式引用属性值
D.Spring通过JndiObjectFactoryBean类引用JNDI资源,在Spring配置文件中jndiName值与服务器上配置的JNDI数据源名字一样
21)关于Struts2+Spring+Hibernate集成框架,下列说法正确的是()。
A.使用SSH框架开发项目,由于增加了大量配置工作,从而会降低开发的效率
B.三个框架可以用多种方式进行集成
C.使用SSH框架开发不利于实现复杂的业务逻辑
D.使用SSH框架开发不利于构造复杂的页面和交互流程
22)在Spring的配置文件中,包含如下所示的配置代码,则下面说法正确的是()。
(选择二项)
A.可以通过下列代码获取对象实例:
ApplicationContextcontext=newClassPathXmlApplicationContext("di.xml");
TestBeant=(TestBean)context.getBean("test.TestBean");
B.TestBean中一定有如下语句:
privateStringdp="";
C.TestBean中可能有方法:
publicvoidsetSp(Stringvalue)
D.属性dp的类型可能是int也可能是String
23)对下面使用Spring依赖注入的代码,下面说法错误的是()。
ApplicationContextcontext=
newClassPathXmlApplicationContext("di.xml");
Printerprinter=(Printer)context.getBean("printer");(选择二项)
A.配置文件di.xml位于classpath目录下
B.在di.xml中定义了一个id或name为printer的bean
C.context.getBean()返回的是printer类型的对象,不需要强制转换类型
D.di.xml被修改后,context会自动重新加载
24)Spring是一个功能丰富而易用的集成框架,它的核心是()。
(选择二项)
A.依赖注入(DI)
B.面向方面编程(AOP)
C.分层架构
D.丰富的标签库
25)在Spring中,配置Hibernate事务管理器(HibernateTransactionManager)时,需要注入的属性名称是()。
A.session
B.sessionFactory
C.baseHibernateDao
D.transactionProxyFactoryBean