题目
01.下面关于AOP的说法错误的是()。
A.AOP将散落在系统中的“方面"代码集中实现
B.AOP有助于提高系统的可维护性
C.AOP已经表现出了将要代替面向对象的趋势
D.AOP是一种设计模式Spring提供了一种实现
02.下面关于Spring的说法中,错误的是( )。
A.Spring是一个轻量级的框架
B.Spring中包含一个“依赖注入"模式的实现
C.使用Spring可以实现声明式事务
D.Spring提供了AOP方式的日志系统
03.关于声明事务的说法,下面说法错误的是( )。
A.Spring采取AOP的方式实现声明式事务
B.声明式事务是非侵人式的,可以不修改原来代码就给系统增加事务
C.配置声明式事务需要tx和aop两个命名空间的支持
D.配置声明式事务主要关注在哪儿”和“采取什么样的事务策略"
04.下列哪个选项()不是依赖注人的方式。
A.构造器
B.Setter
C.接口
D.AOP
05.Spring的IoC容器默认Bean的作用域是()。
A.singleton
B.prototype
C.request
D.session
06.下面有关Spring MVC的说法错误的是()
A.Spring MVC是MVC模式的一种实现
B.Spring MVC是Spring的一个模块
C.Spring MVC支持多种视图,如JSP等
D.Spring MVC也是一种设计模式
07.Spring MVC的核心控制器是一个()。
A.Filter
B.Servlet
C.Listener
D.Controller
08.有关@RequestMapping注解的作用。正确的说法是()。
A.这个注解只能作用于类上
B.这个注解的作用是用于映射处理请求的类或方法
C.这个注解只能作用于方法上
D.这个注解只能处理GET请求
09.有关Spring MVC中@Controller注解的说法,错误的是()。
A.可以标注一个类
B.这个注解可以与@RequestMapping结合使用
C.可以标注一个方法
D.可以通过包扫描机制加载@Controller标注的类
10.在控制器的请求处理方法中,如果返回结果中既包含数据,也包含视图,则可以考虑使用返回类型()
A.Model
B.ModelAndView
C.String
D.ResponseBody
11.定义拦截器时,如果想在控制器方法被调用前执行一段代码,应该将代码写在如下的()方法中。
A.postHandle
B.afterCompletion()
C.preHandle()
D.handler()
12.在Spring MVC中实现文件的上传,在JSP页面中()不是必需的。
A.form表单的method属性设置为post
B.form表单的enctype属性设置为multipart/form-data
C 设置<input>标签的type="file"
D 设置<input>标签的type="text"
13.@RequestHeader注解的作用是获取请求头文件的信息,如果想获取浏览器的类型信息,选项()是正确的。
A.@RequestHeader("Accept-Language")
B.@RequestHeader("Content-Length")
C.@RequestHeader("Authorization")
D.@RequestHeader("User-Agent")
14.在JSP页面中使用Spring MVC标签checkboxes时,在控制器的请求处理方法中接收选中的标签选项变量的类型是()
A.String
B.String[]
C.List<String>
D.char[]
15.在Spring MVC中用于数据类型转换的接口有3个,其中( )不 属于类型转换接口。
A.GenericConverter
B.ConverterFactory
C.Converter
D.DataConverter
16.SpingMVC中的控制器的注解一般用哪个?
A.@NULL
B.@RequestMapping
C.@Controller
D.@RequestBody
17.下列哪一个不是HandlerInterceptor接口中定义了三个方法.
A.preHandle()
B.postHandle()
C.afterCompletion()
D.afterHandle()
18.Spring MVC框架中的拦截器不可以
A.进行权限验证
B.防止SQL注入
C.记录请求信息的日志
D.判断用户是否登录
19.下列不属于MyBatis内置日志工厂代理工具的是
A.Log4j
B.SLF4J
C.JDK logging
D.Commons Logging
20.Spring MVC中的( )类似于Servlet中的过滤器,主要用于拦截用户请求并作相应的处理
21.@DateTimeFormat注解可以对( )类型的属性进行标注
22.MyBatis框架是( )的一种实现。
23.在映射文件中,( )是映射文件的根元素。
24.MyBatis的强大特性之一是它的( )
25.( )(DI)与IOC的含义相同, 只不过这两个称呼是从两个角度描述同一个概念。
26.依赖注入包括( )( )( )3种方式。
27.Bean的作用域一共有6种,最常用的两种为( )( )。
28.Spring IOC容器中支持的3种Bean装配方式非别为( )( )( )
29.MVC设计模式的任务是将包含业务数据的模块与显示模块的视图进行( )
30.Spring MVC基于注解的开发主要是@Controller和@RequestMapping,其中( )主要用于类上,( )可以用在类上也可以用在方法上。
31.@Controller注解用于标注类的实例是一个( )
32.控制器在请求处理方法中在返回的参数类型中,如果只封装数据可以用( )进行封装,如果是数据和视图同时存在可以用( )进行封装。
33.Spring提供了一组全面的可绑定数据的( )用于处理表单元素。
34.( )是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式存储和表示数据。
35.MyBatis的关键对象( ),是执行持久化操作的对象,类似于JDBC中的Connection
36.什么是MyBatis?
什么是MyBatis?
MyBatis是一个可以自定义SQL存储过程和高级映射的持久层框架
37.MyBatis框架适用于哪些场合?
MyBatis框架适用于哪些场合?
对性能的要求很高,或者需求变化较多的项目专注于SQL本身,是一个足够灵活的DAO层解决方案
38.#{}和${}的区别是什么?
#{}和${}的区别是什么?
#{}在预编译的时候处理,用?来代替#{},调用preparedstatement的set方法来赋值,防止SQL注入
${}是直接字符串替换,有些无法用预编译处理的场景可以用,比如要传递SQL的列名,根据某些列进行排序。
39.什么时候需要使用《resultMap》标签?
什么时候需要使用<resultMap>标签?
一般我们在Mybatis中使用查询语句的时候,如果查询到的结果不能使用resultType反应出来的时候,可以采用resultMap标签来解决数据查询不到的困难问题。
40.动态SQL包括哪些标签?
动态SQL包括哪些标签?
<if> <where> <foreach> <sql>
41.什么是MVC模式?
什么是MVC模式?
软件架构模式,是一种三层架构模式,主要有模型(Model)、视图(View)、控制器(Controller)
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
42.SpringMVC的执行流程?
SpringMVC的执行流程?
用户发送请求至前端控制器
收到请求后调用处理器,映射器请求获取Handle
处理器,映射器根据请求url找到具体的处理器
前端控制器,调用处理器映射器
处理器应是起经过适配调用具体处理器
43.Spring MVC的主要组件?
Spring MVC的主要组件?
前端控制器
处理器映射器
处理器适配器
视图解析器
视图渲染
44.SpringMVC怎么样设定重定向和转发的?
SpringMVC怎么样设定重定向和转发的?
请求转发在服务器端完成的;重定向是在客户端完成的。
请求转发的速度快;重定向速度慢。
请求转发的是同一次请求;重定向是两次不同请求。
请求转发不会执行转发后的代码;重定向会执行重定向之后的代码。
请求转发地址栏没有变化;重定向地址栏有变化。
请求转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成。
45.SpringMVC中可配置多个拦截器,每个拦截器中都有三个方法,请分别写出三个方法以及用法。
SpringMVC中可配置多个拦截器,每个拦截器中都有三个方法,请分别写出三个方法以及用法。
1、preHandle(): 在Controller处理请求之前被调用,一个请求中可以同时存在多个Interceptor,调用会依据它的声明顺序依次执行。最先执行的是Interceptor中的preHandle方法。
2、postHandle(): 这个方法在Controller方法处理当前请求之后执行,在DispatcherServlet进行视图返回渲染之前被调用,可以对Controller处理之后的ModelAndView对象进行操作
3、afterCompletion(): 这个方法需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行。该方法在DispatcherServlet渲染了对应的视图之后执行。这个方法的主要作用是进行资源清理。
46.使用Spring框架的好处是什么?
使用Spring框架的好处是什么?
它可以使应用程序代码对框架的依赖最小化可以将所有对象的创建和依赖关系的维护工作都交给spring容器管理,大大降低了组件之间的耦合性他允许将一些通用任务如安全事务日志等进行集中式处理,从而提高了程序的复用性
47.什么是Spring的依赖注入?
什么是Spring的依赖注入?
依赖注入,是IOC的一个方面,通俗解释是不用创建对象,而只需要描述它如何被创建。你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把它们组装起来。
48.有哪些不同类型的IOC (依赖注入)方式?
有哪些不同类型的IOC (依赖注入)方式?
构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表-个对其他类的依赖。
Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。
49.Mybatis有哪些优缺点
Mybatis有哪些优缺点
优点:
1、与JDBC相比,减少了大量的代码量
2、简单的持久化框架,易于, 上手.
3、灵活,SQL写在XML里面,从程序代码中分离,降低耦合度,便于管理
4、提供XML标签,支持动态编写SQL语句(if,else)
5、提供映射标签,支持对象与数据库字段的映射
缺点
1.要写大量的SQL语句
2.不能随意更换数据库
50.请写出用动态SQL完成单表的修改和查询操作的实现思路和步骤。
请写出用动态SQL完成单表的修改和查询操作的实现思路和步骤。
新建报表添加报表参数
添加内嵌数据集
使用静态SQl语句获取字段列表
将静态语句修改为动态语句
51.要使用Spring MVC中拦截器,需要对拦截器类进行定义和配置请按照提示补充完善下列拦截器类
代码:
package com.interceptor;
import ..
public interface Handlerlnterceptor{
//该方法在控制器方法被调用前执行
default boolean__1_ (httpServletRequet request, HttpServletResponse response,Object handler) throws Exception {
return true;
}
//该方法在控制器方法被调用后执行
default void__2_ (HttpServletRequest request,HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {}
//该方法在视图渲染结束后执行
default void__3_ (HttpServletRequest request,HttpServlet-Response response, Object handler, Nullable Exception ex) throws Exception{
}
}
请按照提示补充完善下列控制器类代码:
import ...
@__4_ //设置为控制类注解
public class HelloController {
@RequestMapping("/hello")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//创建ModelAndView对象
__5_mv=new ModelAndView();
//将信息保存在ModelAndView对象,这个对象中
的值可从传递到JSP页面
}
}
(1) preHandle
(2) postHandle
(3) afterCompletion
(4) @Controller
(5) ModelAndView
52.基于组件扫描注解装配Bean (按照步骤完善程序内容)
1.创建一个服务接口CustomerService;
2.创建CustomerService接口的实现类
CustomerServicelmpl;
public class CustomerServicelmpl implements (1)____{
}
3.创建控制器类CustomerController;
package com.ssm.service;
public class CustomerController ...
4.创建Spring配置文件;
<beans xmlns="http//www.springframework.org/schema/beans"
<!--此处customerController相当于创建-个控制器对象-->
<bean (2)____="CustomerService" class="(3)____"/></beans>
5.创建测试类;
public class TestAnnotationConfig {
public static void main(String[] args) {
//读取配置文件的信息
(4)____context = new ClassPathXmlApplicationContext("springAnnotationConfig.xml");
//获取第一个CustomerController实例
CustomerController cus = context.(5)____("customerController".CustomerController.class);
//打印Customer的信息
cus.save();
]
}
(1) CustomerService
(2) id
(3) com.ssm.service.CustomerController
(4) ApplicationContext
(5) getBean
53.基于注解开发的示例(补充完善程序)
基于注解开发的示例(补充完善程序)
基于Spring MVCzhujie的方式完成一个用户注册和登录:
创建项目,添加JAR包;
配置web.xml配置文件;
创建Controller控制器类;
package com.controller;
@Controller
//响应所有user路径下的处理请求
@(1)____(value="/user")
@SessionAttributes(names= {"regDate","user"})
public class UserController {
@PostMappinglvalue="/reg")/这是处理用户注册的方法,响应user/reg.do的处理请求
public String reg(User user ,Model model){ //user为响应请求的参数,接收用户的信息
model.(2)____("user',user/;//将user信 息保存到Model对象中
return "forward:toLogin.do"//方法处理结束转发到toLogin方法
}...
创建Spring MVC的配置文件
<beans xmlns"http://www.springframework.org/schema/beans" ...
<!--指定需要扫描的包为控制器类所在包-->
<context:component-scan base-package="(3)____"/>
<!--定义视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--设置前缀-->
<property name="(4)____"value="/WEB-INF/jsp/"/>
<!--设置后缀-->
<property name="(5)____"value=".jsp"/>
</bean>
</beans>
(1) RequestMapping
(2) addAttribute
(3) com.controller
(4) prefix
(5) suffix
答案
选择
01-05:C D C D A
06-10:D B B C B
11-15:C D D C D
16-19:C D B D
填空
20.拦截器
21.时间
22. ORM
23.《Mapper》
24.动态SQL
25.依赖注入
26.构造器注入,Setter注入,接口注入
27.singleton, prototype
28.基于XML装配Bean , 基于注解装配Bean , 基于组件扫描注解装配Bean
29.解耦
30.@Controller , @RequestMapping
31.控制器
32.Model , ModelAndView
33.标签库
34.JSON
35.SqlSession
版权归原作者 麟跃幽岩 所有, 如有侵权,请联系我们删除。