使用SqlSessionTemplate映射接口实现数据库操作,下列说法正确的是()

  A.使用SqlSessionTemplate的selectOne()方法获取映射器实例;

  B.使用SqlSessionTemplate的getInstance()方法获取映射器实例;

  C.使用SqlSessionTemplate的getMapper方法获取映射器实例;

  D.必须提供实现DAO接口的实现类;

正确答案:C  

试题解析:使用SqlSessionTemplate的getMapper方法可以完成映射接口的实现,可以没有DAO实现的类,这种方式不容易产生错误,并且在编译期就能识别错误。而且命名空间发生变化,也不会导致很多地方需要修改,易于维护。故选c

 

关于Spring的声明式事务管理,下面说法正确的是()

  A.声明式事务是侵入式的,需要修改程序代码;

  B.使用声明式事务时,我们主要关注“在哪儿”和“采取什么样的事务策略”;

  C.配置声明式事务需要tx和aop两个命名空间的支持;

  D.事务管理器的实现由负责数据库操作的Hibernate框架提供;

正确答案:BC

试题解析:

   声明式事务:在Spring配置文件中对事务进行配置,无须在程序中写代码;(建议使用)

        我对”声明式“的理解是这样的:Spring配置文件中定义好了这样一个规则,
      这个规则可以指定对哪些类的哪些方法在执行的时候添加事务控制,并配置好了事务的相关执行属性,
      就是在这些类的这些方法执行的时候隐式地添加事务开始、执行、提交或回滚的代码(当然我们看不到)
      声明式事务又分了两种写法:
        2.1、xml配置文件
        2.2、注解
 
 

在springMVC中,下面那个选项能正确使用springmvc表单标签()

  

正确答案:ABCD 

试题解析:此题主要考查SpringMVC表单标签的设置。taglib指令的prefix属性是可以任意定义的,但SpringMVC表单标签的prefix属性值通常是form。因此ABCD是正确的选项

 

对于java的mvc模式Model 1与Model 2模式下的比较下列说法错误的是()

  A.Model 1的中心是JSP页面,JSP页面转给你结合业务逻辑,服务端处理过程和HTML等,这样就JSP页面中同时实现了业务逻辑和流程控制。从而快速开发;

  B.Model 1的优点:简单,快速开发,使用小规模开发;结构比Model 2更优秀合理;

  C.Model 2表示的是基于MVC模式的框架,

   “Model”代表的是应用的业务逻辑,

   “View”是应用的表示层,

   “Controller”是提供应用的处理过程控制;

  D.Model 2优点:具有组件的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰;

正确答案:B

试题解析:

  model 1:      

    Model1虽然实现了MVC,但是实现的并不彻底。MVC模式中,分为View层、Controller层和Model层,而在Model1中,View层和Controller层合二为一了,也就是JSP,JavaBean则作为Model层单独存在。这样的话,JSP既要做显示,又要处理一定的业务逻辑,对于单一职责的原则来说,这显然不符合。JSP的职责太重,就显得中间部分有些臃肿。
    

    虽然Model1模式没有很符合单一职责原则,但是Model1实现比较简单,对程序员的要求也不高。但是JSP页面兼具View和Controller两种角色,将控制逻辑和表现逻辑混合在一起,导致代码的重用性比较低,增加了扩展性和可维护的难度,所以适合小型项目的开发。

  model 2:  

    Model2可以说完全实现了MVC模式,在Model1的基础上,Model2扩展了Servlet,将控制逻辑放在Servlet中,让它来做Controller的工作,从而减少了JSP的负担。在Model2模式中,JSP只负责显示页面,生成动态网页;Servlet负责流程的控制,处理各种请求;JavaBeans则负责业务逻辑,以及对数据库的操作。

    

    在Model2模式中,JSP相当于View的角色,Servlet做的Controller的工作,JavaBeans做的Model层的工作。但是相对于Model1,Model2对程序员的要求要高,各层之间分工明确,各司其职。分层的结果是开发的粒度较细,代码的复用性提高了,后期维护也容易了,所以Model2模式比较适合大型项目的开发。

 

使用Spring2整合mybatis时,mybatis-spring-1.2.0.jar中提供了()类实现数据库操作,该类中包含增删改查等常用方法。

  A.SqlTemplate

  B.SqlSessionTemplate

  C.JdbcTmplate

  D.HibernateTemplate

正确答案:B

试题解析:

  在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
          <constructor-arg index="0" ref="sqlSessionFactory" />
    </bean>

  SqlSessionTemplate 实现了SqlSession接口,也就是说我们可以使用SqlSessionTemplate 来代理以往的DefailtSqlSession完成对数据库的操作,但是DefailtSqlSession这个类不是线程安全的,所以这个类不可以被设置成单例模式的。

 

在springMVC配置文件中,有如下配置:

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:perfix="/" p:suffix=".jsp">,以下代码有可能从controller跳转到welcome.jsp并能够在jsp中显示出username数据的是()

    

正确答案:AD

试题解析:此题目主要考查的是SpringMVC参数的传递。用Map传参,必须要给出key值,而Model模式若没有赋key值,默认使用对象的类型作为key,所以选项D中传参是正确的,方法的参数顺序是无关的,但是Map和Model必须以参数形式传递进来,所以B是错的,根据配置信息,返回值不需要带后缀名,所以C是错的,因此AD是正确的选项

 

关于SpringMVC的异常处理,下列说法错误的是()

  A.SpringMVC通过HandlerExceptionResolver处理程序的异常,HandlerExceptionResolver只有一个接口方法resolveException();

  B.HandlerExceptionResolver有4个实现类,默认装配的是SimpleMappingExceptionResolver,它会将异常转换成对应的响应状态码(500,404等);

  C.使用SimpleMappingExceptionResolver可以对异常进行统一处理,发生异常时使用对应的视图报告异常;

  D.若在SpringMVC中同时设置了全局异常处理和局部异常处理,针对同一异常的全局异常处理会被局部异常处理覆盖;

正确答案:B

试题解析:B选项说法错误,HandlerExceptionResolver有4个实现类,默认装配的是DefaultHandlerExceptionResolver,他会将异常转换为相应的响应状态码

 

下列关于@RequestParam绑定请求参数值的说法正确的是()

  A.Controller方法入参时,必须使用@RequestParam指定的请求参数;

  B.@RequestParam的参数required,默认值为false;

  C.若非有必须的参数,必须使用@RequestParam注解标注并设置required=false;

  D.使用@RequestParam指定对应的请求参数,并且required=true,那么请求中若不加此参数,则会报请求错误;

正确答案:D

试题解析:Controller方法入参时,@RequestParam不是必需的,不加@RequestParam也可实现入参,故A错。@RequestParam的参数required默认值为true,故B错。不使用@RequestParam注解标注参数,则对入参没有强制,不传参也不会报错,故C错。

 

对于REST风格的URL请求,要获取路径中参数id,横线处应填入()

  @RequestMapping(value="/view/{id}",method=RequestMoethod.GET)

     public String view(___,Model model){

      //根据参数id,获取相应的数据对象并放入到model中

      model.addAttribute(userList.get(id));

      return "user/view";

     }

  A.String id

  B.@PathVariable String id

  C.@RequestParam(value="id",required=false) String id

  D.@RequestParam(value="id")String id

正确答案:B

试题解析: 

   REST是一种软件架构风格,或者说是一种规范,其强调HTTP应当以资源为中心,并且规范了URI的风格;规范了HTTP请求动作(GET/PUT/POST/DELETE/HEAD/OPTIONS)的使用,具有对应的语义。 
   在REST中,资源可以简单的理解为URI,表示一个网络实体。比如,/users/1/name,对应id=1的用户的属性name。既然资源是URI,就会具有以下特征:名词,代表一个资源;它对应唯一的一个资源,是资源的地址。
  /*{id}表示占位符*/
   @RequestMapping("/getid/{id}")
   @ResponseBody
   public Object getid(@PathVariable("id") Integer id){
       List<Accounts> name = accountService.getName(id);
       return name;
   }

 

在springMVC中,有以下方法描述

  @RequestMapping(value="/{id}/test/{name}")

  public String index(@PathVariable String id,@PathVariable String name){

    System.out.println("id="+id+"\t"+"name="+name);

    return "index";

  }  应用部署上下文是testmvc,则在当前应用根目录下以下能够正确访问index()方法的路径描述是()

  A.<a href="5/test/jim">test</a>

  B.<a href="/5/test/jim">test</a>

  C.<a href="5/index/jim">test</a>

  D.<a href="/5/index/jim">test</a>

正确答案:A

 

Spring MVC局部异常处理,自定义两个异常:UserException.java和BaseException.java,下面异常处理方法handlerException()要处理这两个异常,请补全关键代码()

  

正确答案:AB

试题解析:@ExceptionHandler注解,value是一个数组

 

在spring中,配置Hibernate事务管理器(Hibernate TransactionManager)时,需要注入的属性名称是()

  A.dataSource

  B.sessionFactory

  C.baseHibernateDao

  D.transactionProxyFactoryBean

正确答案:A

 

下列关于ModelAndView的说法错误的是()

  A.控制器处理方法的返回值若为:ModelAndView,则即可以包含视图信息,也可以包含模型数据信息;

  B.控制器处理方法的返回值若为:ModelAndView,在处理方法的方法体内,除了通过serViewName()或者setView()设置视图,还必须通过addObject()添加模型数据;

  C.ModelAndView的addObject()方法根addAllObjects()方法区别:前者添加一个对象到model中,后者是添加一个map对象;

  D.ModelAndView.setViewName("welcome"),中的welcome是逻辑视图名,并非真正的视图对象;

正确答案:B

试题解析:选项B错误,控制器处理方法的返回值若为:ModelAndView,在处理方法的方法体内,除了通过setViewName或者setView设置视图,不一定要添加模型数据,根据具体需求,若不需要模型数据的话,只返回一个逻辑视图名即可。

 

关于model I开发模式和Model II开发模式的对比,下列说法错误的是()

  A.Model II的结果更加清晰;

  B.Model I更利于小组分工合作;

  C.Model I的组件更难于重用;

  D.Model I开发出来的项目更难以维护

正确答案:B

试题解析:Model I是不利于小组分工的,它只适用于小型项目。因为Model I把所有业务、界面都整合在一起,所以不是很方便小组的分工。

 

在使用Spring表单标签之前,需要在jsp页面上先引入标签库:

  <%@ taglib perfix="fm" uri="http"//www.springframework.org/tags/form" %>那么在此页面上使用spring标签正确的是()

  A.<form:form action="">...</form:form>

  B.<fm:input text=""/>

  C.<fm:errors path="*"/>

  D.<form:password>

正确答案:C

 

以下关于spring自动装配与依赖检查的说法中错误的是()

  A.可以通过bean元素的dependency-check属性设置依赖检查

  B.可以通过笨啊元素的autowire属性设置自动装配;

  C.也可以通过beans元素的autowire属性设置全局自动装配;

  D.自动装配减少了配置的工作量,但也降低了依赖关系的清晰性和透明性;

正确答案:C

试题解析:此题考查的是Spring-自动装配与依赖检查,abd说法正确,Spring自动装配与依赖检查也可以通过beans元素的default-autowire属性设置全局自动装配,不是autowire,c的说法不对,所以正确答案是c。

 

使用InternalResourceViewResolver作为视图解析器,需要进行配置:

  

  若一个控制类的处理方法返回一个字符串:return "user/userList",那么通过已配置号的这个视图解析器,解析成真正的视图对象应该是()

  A./user/userlist.jsp

  B./WEB-INF/jsp/user/userlist.jsp

  C./jsp/user/userlist.jsp

  D./WEB-INF/jsp/user/userlist.jsp

正确答案:B

 

关于spring框架说法错误的是()

  A.spring是一个轻量级的企业级开发框架;

  B.spring框架的核心是一个AOP容器;

  C.spring有2个主要目标 一是让现有技术更易于使用,二是促进良好的编程习惯;

  D.spring坚持一个原则:对于已有较好解决方案的领域,spring绝不重复实现,只对现有方案提供支持;

正确答案:B

 

在springmvc中,以下描述错误的是()

  A.SpringMVC中必须是实现了Handler接口的JavaBean才能成为请求处理器;

  B.DisPatcherServlet是springMVC的前端servlet,和任何的servlet一样,必须在web.xml中配置后,才能起作用;

  C.在web.xml中,根据servlet-mapping的url不同,可以配置多个DisPatcherServlet

  D.ModelAndView中的view逻辑视图名,而非真正的视图对象;

正确答案:A

试题解析:A选项说法错误,SpringMVC中并没有定义一个Handler接口,实际上任何一个JavaBean都可以成为请求处理器。

  

在sprign应用中,由于项目规模变大,Spring配置文件的规模也会相应增长,这就造成配置文件的可读性和可维护性变差,此时就需要对其进行拆分,下面选项不能实现spring配置文件拆分的是()

  

 

 

 正确答案:D

 
 
 
 posted on 2019-11-15 18:46  wnwn  阅读(2691)  评论(0编辑  收藏  举报