复习题 2.docx
- 文档编号:10131928
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:25.77KB
复习题 2.docx
《复习题 2.docx》由会员分享,可在线阅读,更多相关《复习题 2.docx(26页珍藏版)》请在冰点文库上搜索。
复习题2
编程题:
1.Struts2编程:
在input.jsp页面中,输入两个正整数,在result.jsp页面中输出两个正整数之间的所有偶数。
(1)编写ExamAction0010,计算两个整数之间的所有偶数,并将结果存入request中;
(2)在validate()方法中对数据校验,要求第一个数大于0,第二个数大于第一个数,如果出错,添加出错信息,并返回input.jsp;
(3)编写result.jsp页面(核心代码),用
- 罗列所有偶数。
(4)对action进行配置(package,action,result)。
input.jsp
……
FirtNumber:
fieldErrorname="firstNumber"/>
SecondNumber:
fieldErrorname="secondNumber"/>
……
//仅供参考
//ExamAction0010
publicclassExamAction0010extendsActionSupportimplementsrequestAwre{
privateintfirstNumber;
privateintsecondNumber;
privateMap
request; @Override
publicvoidsetRequest(Map
request){ this.request=request;
}
publicStringexecute(){
Listlist=newArrayList();
for(inti=firstNumber;i<=secondNumber;i++){
if(i%2==0){
list.add(i);
}
}
request.add(“list”,list);
return“success”;
}
publicvoidvalidate(){
//super.validate();
if(firstNumber<0){
this.addFieldError(“firstNumber”,“firstNumbercannotlt0.”);
}
if(secondNumber
this.addFieldError(“secondNumber”,“secondNumbercannotltfirstNumber.”);
}
}
}
//result.jsp主要代码
…..
iteratorvalue="#request.list">
property/>
iterator>
…..
//配置
2.Hibernate编程
论坛有板块Category,板块下有多个话题Topic,每个话题下有多个帖子Message。
三个实体类的核心代码如下所示。
请基于Hibernate编写TopicDaoHibernateImpl,实现TopicDao。
获取HibernateSession请直接使用HibernateUitl.getSession();
@Entity
publicclassCategory{
@Id
@GeneratedValue
privateIntegerid;
privateStringname;
@OneToMany(mappedBy="category")
privateList
/*省略get,set方法*/
}
@Entity
publicclassTopic{
@Id
@GeneratedValue
privateIntegerid;
privateStringtitle;
@ManyToOne
@JoinColumn
privateCategorycategory;
@OneToMany(mappedBy="topic")
privateList
/*省略get和set方法*/
}
@Entity
publicclassMessage{
@Id
@GeneratedValue
privateIntegerid;
privateStringtitle;
privateStringuserName;
@ManyToOne
@JoinColumn
privateTopictopic;
/*省略get和set方法*/
}
publicinterfaceTopicDao{
publicvoidlistByCategory(Categoryc)throwsException;
publicvoiddeleteById(intid)throwsException;
}
//仅供参考
publicclassTopicDaoHibernateImplimplementsTopicDao{
publicvoidlistByCategory(Categoryc)throwsException{
Sessionsession=HibernateUitl.getSession();
session.beginTransaction();
ListlistTopic=newArrayList();
for(inti=0;i Topict=c.getTopics().get(i); listTopic.add(t); } session.getTransaction().commit(); } publicvoiddeleteById(intid)throwsException{ Sessionsession=HibernateUitl.getSession(); session.beginTransaction(); Topict=(Topic)session.get(Topic.class,id); Session.delete(t); session.getTransaction().commit(); } } 3.Hibernate编程 Hibernate编程: 员工Employee(姓名,出生日期(年月日),电话);部门Department(名称,地址,电话)。 一个员工只属于一个部门,一个部门可以有多个员工。 (1)建立实体类Employee和Department,并通过注解将其映射为t_employee和t_department两个表,两个表主键自动增长;(请省略get和set方法,将注解直接加在字段上) (2)通过注解,为Employee和Department建立双向关联关系,外键名称为dpt_id; (3)假设在Spring容器中已经配置了一个SessionFacotry,id为sessionFactory。 通过SpringIoC注解注入需要的资源,编写EmployeeDaoImpl,实现EmployeeDao。 /*EmployeeDao.java*/ publicinterfaceEmployeeDao{ publicList } //仅供参考 @Entity @Table(name=”t_employee”) publicclassEmployee{ @Id @GeneratedValue privateintid; privateStringname; privateDatedate; privateStringtelephone; @ManyToOne @JoinColumn(name=”dpt_id”) privateDepartmentdept; …… } @Entity @Table(name=”t_department”) publicclassDepartment{ @Id @GeneratedValue privateintid; privateStringname; privateStringAddress; privateStringtelephone; @OneToMany @JoinColumn(name=”dpt_id”) privateList …… } //EmployeeDaoImpl.java @Repository publicclassEmployeeDaoImplimplementsEmployeeDao{ privateSessionFacotrysessionFacotry; publicList Sessionsession=getSessionFactory.openSession(); session.beginTransaction(); Stringhql=”fromEmployeeewheree.dept=: dept”; Queryquery=session.createQuery(hql); query.setString(“dept”,dptName); List session.getTransaction().commit(); session.close(); returnemps; } @Resource publicvoidsetSessionFacotry(SessionFacotrysessionFacotry){ this.sessionFacotry=sessionFacotry; } publicSessionFactorygetSessionFactory(){ returnsessionFactory; } } 4.SpringAOP编程 使用注解方式,定义一个切面,在该切面中定义一个Around环绕增强(Advice),当suse.j2ee2016.exam.service包及其子包下所有public方法执行时,该增强处理输出当前执行方法的方法名、执行的起始和截止时间。 //仅供参考 @Aspect publicclassTxAspect{ //匹配suse.j2ee2016.exam.service包下所有类的 //所有方法的执行作为切入点 @Around("execution(public*suse.j2ee2016.exam.service.*.*(..))") publicObjectprocessTx(ProceedingJoinPointjp)throwsjava.lang.Throwable{ System.out.println("执行目标方法起始时间: "+newDate()); //获取目标方法的名称 Stringname=jp.getSignature().getName(); System.out.println("目标方法名称: "+name); //获取目标方法的参数 Object[]args=jp.getArgs(); //去执行目标方法,并保存目标方法执行后的返回值 Objectrvt=jp.proceed(args); System.out.println("执行目标方法结束时间: "+newDate()); returnrvt; } } 选择题 下面关于Spring的说话正确的是()(选择两项) A.Spring是一个重量级的框架 B.Spring是一个轻量级的框架 C.Spring是一个IOC和AOP容器 D.Spring是一个入侵式的框架 下面关于IOC的理解,正确的是()(选择两项) A.控制反转 B.对象被动的接受依赖类 C.对象主动的去找依赖类 D.一定要用接口 Spring核心模块的作用() A.做AOP的 B.做IOC的,用来管理Bean的 C.是用来支持Hibernete D.是用来支持Struts的 对Hibernate的支持主要用到Spring的那个模块() A.SpringDAO模块 B.SpringORM模块 C.SpringMVC模块 D.SpringWeb模块 对Struts的支持主要用到Spring的那个模块() A.SpringDAO模块 B.SpringORM模块 C.SpringMVC模块 D.SpringWeb模块 Spring包装Hibernate之后的Hibernate的DAO应该继承那个类() A.HibernateDAO B.SessionFactory C.HibernateDAOSuport D.Session Spring中around通知的目标对象要实现的接口中invoke中方法的参数是() A.方法 B.目标对象 C.方法执行参数 D.Exception 下面是Spring依赖注入方式的是()(选择两项) A.set方法注入 B.构造方法的注入 C.get方法的注入 D.接口的注入 下面关于在Spring中配置Bean的init-method的说法正确的是() A.init-method是在最前面执行的 B.init-method在构造方法后,依赖注入前执行 C.init-method在依赖注入之后执行 D.init-method在依赖注入之后,构造函数之前执行 下面关于Spring配置文件说话正确的是()(选择两项) A.Spring配置文件必须叫applicationContext.xml B.Spring配置文件可以不叫applicationContext.xml C.Spring配置文件可以有多个 D.Spring配置文件只能有一个 看下面的代码,说法正确的是() A.其中 B.其中 C.其中 D.其中 可以通过Web容器来启动Spring框架的类是() A.ContextLoaderListener B.ServletLoaderListner C.ContextLoaderFilter D.ActionServlet 在web.xml文件中配置Spring框架,下面配置正确的是() A. B. C. D. 下面关于SpringBeanFactory接口说法正确的是() A.BeanFactory是单例模式的实现,负责创建和管理bean B.BeanFactory是工厂模式的实现,负责创建和管理bean C.ApplicationContext类是它的实现类 D.以上说法都不对 下面关于Spring管理Bean的说法正确的是() A.Bean在Spring容器中有两种管理方式,工厂模式和单例模式 B.Bean在Spring容器中有两种管理方式,原型模式和单例模式 C.Spring默认的利用工厂模式管理Bean D.Spring默认利用原型模式管理Bean 下面关于设置注入优点说法正确的是() A.构造期即创建一个完整、合法的对象 B.需要写繁琐的setter方法的 C.对于复杂的依赖关系,设置注入更简洁,直观 D.以上说法都不对 下面关于构造注入优点说法错误的是() A.构造期即创建一个完整、合法的对象 B.不需要写繁琐的setter方法的 C.对于复杂的依赖关系,构造注入更简洁,直观 D.在构造函数中决定依赖关系的注入顺序 下面关于AOP的理解正确的是()(选择两项) A.能够降低组件之间的依赖关系 B.将项目中的公共的问题集中解决,减少代码量,提高系统的可维护性 C.AOP是面向对象的代替品 D.AOP不是面向对象的代替品,是面向对象很好的补充 一般情况下,以下哪个选项不是关系数据模型与对象模型之间的匹配关系: () A表对应类 B记录对应对象 C表的字段对应类的属性 D表之间的参考关系对应类之间的依赖关系 以下关于SessionFactory的说法哪些正确? () A对于每个数据库事务,应该创建一个SessionFactory对象 B一个SessionFactory对象对应多个数据库存储源。 CSessionFactory是重量级的对象,不应该随意创建。 如果系统中只有一个数据库存储源,只需要创建一个。 DSessionFactory的load()方法用于加载持久化对象 以下程序的打印结果是什么? () tx=session.beginTransaction(); Customerc1=(Customer)session.load(Customer.class,newLong (1)); Customerc2=(Customer)session.load(Customer.class,newLong (1)); System.out.println(c1==c2); mit(); session.close(); A运行出错,抛出异常 B打印false C打印true D运行通过,但什么都不显示 以下哪个不属于Session的方法? () Asave() Bdelete() Cupdate() Dopen() 以下哪个选项不是持久化层的对象状态? () A临时状态 B独立状态 C游离状态 D持久化状态 对于以下程序,Customer对象在第几行变为游离状态? () Customercustomer=newCustomer();//line1 customer.setName(\"Tom\");//line2 Sessionsession1=sessionFactory.openSession();//line3 Transactiontx1=session1.beginTransaction(); session1.save(customer);//line4 mit();//line5 session1.close();//line6 Aline1 Bline3 Cline5 Dline6 以下哪一种检索策略利用了外连结查询? () A立即检索 B延迟检索 C迫切左外连结检索 D迫切右外连结检索 下面关于hibernate核心接口说明错误的是? () AConfiguration接口: 配置Hibernate,根据其启动hibernate,创建SessionFactory对象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题