复习题 2.docx

上传人:b****8 文档编号:24053675 上传时间:2023-05-23 格式:DOCX 页数:26 大小:25.77KB
下载 相关 举报
复习题 2.docx_第1页
第1页 / 共26页
复习题 2.docx_第2页
第2页 / 共26页
复习题 2.docx_第3页
第3页 / 共26页
复习题 2.docx_第4页
第4页 / 共26页
复习题 2.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

复习题 2.docx

《复习题 2.docx》由会员分享,可在线阅读,更多相关《复习题 2.docx(26页珍藏版)》请在冰豆网上搜索。

复习题 2.docx

复习题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;

    privateMaprequest;

    @Override

    publicvoidsetRequest(Maprequest){

    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>

    …..

    //配置

    /result.jsp

    /input.jsp

    2.Hibernate编程

    论坛有板块Category,板块下有多个话题Topic,每个话题下有多个帖子Message。

    三个实体类的核心代码如下所示。

    请基于Hibernate编写TopicDaoHibernateImpl,实现TopicDao。

    获取HibernateSession请直接使用HibernateUitl.getSession();

    @Entity

    publicclassCategory{

    @Id

    @GeneratedValue

    privateIntegerid;

    privateStringname;

    @OneToMany(mappedBy="category")

    privateListtopics=newArrayList(0);

    /*省略get,set方法*/

    }

    @Entity

    publicclassTopic{

    @Id

    @GeneratedValue

    privateIntegerid;

    privateStringtitle;

    @ManyToOne

    @JoinColumn

    privateCategorycategory;

    @OneToMany(mappedBy="topic")

    privateListmessage=newArrayList(0);

    /*省略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{

    publicListlistAllByDepartmentName(StringdptName)throwsException;

    }

    //仅供参考

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

    privateListemps=newArrayList();

    ……

    }

    //EmployeeDaoImpl.java

    @Repository

    publicclassEmployeeDaoImplimplementsEmployeeDao{

    privateSessionFacotrysessionFacotry;

    publicListlistAllByDepartmentName(StringdptName)throwsException{

    Sessionsession=getSessionFactory.openSession();

    session.beginTransaction();

    Stringhql=”fromEmployeeewheree.dept=:

    dept”;

    Queryquery=session.createQuery(hql);

    query.setString(“dept”,dptName);

    Listemps=query.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配置文件只能有一个

    看下面的代码,说法正确的是()

    ACCP

    A.其中的userName是UserTable中的属性,可以不要get、set方法。

    B.其中的userName是UserTable中的属性,可以不要get方法,但是一定要有set方法

    C.其中的userName是UserTable中的属性,可以不要set方法,但是一定要有get方法

    D.其中的userName是UserTable中的属性,一定要有get和set方法

    可以通过Web容器来启动Spring框架的类是()

    A.ContextLoaderListener

    B.ServletLoaderListner

    C.ContextLoaderFilter

    D.ActionServlet

    在web.xml文件中配置Spring框架,下面配置正确的是()

    A.

    config

    /WEB-INF/classes/applicationContext.xml

    B.

    servletConfig

    /WEB-INF/classes/applicationContext.xml

    C.

    contextconfig

    /WEB-INF/classes/applicationContext.xml

    D.

    contextConfigLocation

    /WEB-INF/classes/applicationContext.xml

    下面关于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对象。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1