SpringMVC习题

SpringMVC入门

1、请简述Spring MVC框架的优点。

(1)是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。
(2)灵活性强,易于与其他框架集成。
(3)提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。
(4)可自动绑定用户输入,并能正确的转换数据类型。
(5)内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。
(6)支持国际化。可以根据用户区域显示多国语言。
(7)支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。
(8)使用基于XML的配置文件,在编辑后,不需要重新编译应用程序。

2、请简述Spring MVC框架的工作执行流程。

Spring MVC框架的工作流程如下:
(1)用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器DispatcherServlet所拦截。
(2)DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
(4)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)。
(5)HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)。
(9)ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)。
(10)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
(11)视图渲染结果会返回给客户端浏览器显示。

SpringMVC的核心类和注解

1、请简述@Controller注解的使用步骤。

(1)在相应的类上标注@Controller注解。
(2)在Spring MVC的配置文件中添加相应的扫描配置信息。首先需要在配置文件中引入context名称空间的配置,然后使用context:component-scan元素指定需要扫描的类包。

2、请列举请求处理方法的参数类型和返回类型(至少5个)。

请求处理方法的参数类型主要有:HttpServletRequest、HttpServletResponse、HttpSession、Model、HttpMethod等;
请求处理方法的返回类型主要有:ModelAndView、Map、String、void、HttpEntity<?>、View等。

数据绑定

1、请简述简单数据类型中的@RequestParam注解及其属性作用。

@RequestParam注解主要用于对请求中的参数进行定义,多用于在请求参数名与方法形参名不一致时的参数间接绑定。在使用时可以指定他的4个属性,具体如下:
(1)value:name属性的别名,这里指参数的名字,即入参的请求参数名字,如果只使用vaule属性,则可以省略value属性名。
(2)name:用于指定请求头绑定的名称。
(3)required :用于指定参数是否必须,默认是true,表示请求中一定要有相应的参数。
(4)defaultValue:默认值,表示如果请求中没有同名参数时的默认值。

2、请简述包装POJO类型绑定时的注意事项。

(1)如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名,如上面代码中的ordersId;
(2)如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.属性”,其中“对象”要和包装POJO中的对象属性名称一致,“属性”要和包装POJO中的对象子属性一致。

JSON数据交互和RESTful支持

1、请简述JSON数据交互两个注解的作用。

JSON数据交互时,主要使用了两个注解@RequestBody和@ResponseBody。其中@RequestBody用于将请求体中的数据绑定到方法的形参中,在使用时标准在在方法的形参上。@ResponseBody用于直接返回return对象,在使用时标准在方法上。

2、请简述静态资源访问的几种配置方式。

静态资源访问的配置有3种方式,分别如下:
1)使用<mvc:resources… />元素用于配置静态资源的访问路径。
2)使用mvc:default-servlet-handler标签,可以访问所有静态资源。
3)激活Tomcat默认的Servlet来处理静态文件访问。

拦截器

1、请简述Spring MVC拦截器的定义方式。

通常拦截器类可以通过两种方式来定义。一种是通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义;另一种是通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。

2、请简述单个拦截器和多个拦截器的执行流程。

单个拦截器在执行时,程序首先会执行拦截器类中的preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行;在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,然后会通过DispatcherServlet向客户端返回响应;在DispatcherServlet处理完请求后,才会执行afterCompletion()方法。
当有多个拦截器同时工作时,它们的preHandle()方法会按照配置文件中拦截器的配置顺序执行,而它们的postHandle()方法和afterCompletion()方法则会按照配置顺序的反序执行。

文件上传下载

1、请简述上传表单需要满足的3个条件。

文件上传表单需要满足的3个条件如下:
(1)form表单的method属性设置为post;
(2)form表单的enctype属性设置为multipart/form-data;
(3)提供的文件上传输入框。

2、请简述如何解决中文文件名称下载时的乱码问题。

解决中文文件名称下载时的乱码问题,需要从前端页面发送请求前先对中文名进行统一编码,然后在后台控制器类中对文件名称进行相应的转码。在具体实现时可分为如下两步:
(1)在下载页面中对中文文件名编码。可以使用Servlet API中提供的URLEncoder类中的encoder(String s, String enc)方法将中文转为UTF-8编码。
(2)在后台控制器类中对文件名根据不同的浏览器进行相应的转码。

SSM框架整合

1、请简述SSM框架整合思路。

由于Spring MVC是Spring框架中的一个模块,所以Spring MVC与Spring之间不存在整合的问题,只要引入相应JAR包就可以直接使用。因此SSM框架的整合就只涉及到了Spring与MyBatis的整合,以及Spring MVC与MyBatis的整合。Spring与MyBatis框架的整合时,通过Spring实例化Bean,然后调用实例对象中的查询方法来执行MyBatis映射文件中的SQL语句的,如果能够正确查询出数据库中的数据,那么就可以认为Spring与MyBatis框架整合成功。加入Spring MVC后,如果可以通过前台页面来执行查询方法,并且查询出的数据能够在页面中正确显示,那么就可以认为三大框架整合成功。

2、请简述SSM框架整合时,Spring配置文件中的配置信息。

(1)读取数据库常量配置文件db.properties的配置信息;
(2)数据源的配置信息;
(3)事务管理器的配置信息;
(4)开启事务注解的配置;
(5)MyBatis工厂SqlSessionFactory的配置信息;
(6)mapper文件扫描器的配置;
(7)扫描Service层的配置。

结束

1、请简述系统中各个层次的组成和作用。

BOOT客户管理系统根据功能的不同,将项目结构主要划分为以下几个层次:
(1)持久对象层(也称持久层或持久化层):该层由若干持久化类(实体类)组成。
(2)数据访问层(DAO层):该层由若干DAO接口和MyBatis映射文件组成。接口的名称统一以Dao结尾,且MyBatis的映射文件名称要与接口的名称相同。
(3)业务逻辑层(Service层):该层由若干Service接口和实现类组成。在本系统中,业务逻辑层的接口统一使用Service结尾,其实现类名称统一在接口名后加Impl。该层主要用于实现系统的业务逻辑。
(4)Web表现层:该层主要包括Spring MVC中的Controller类和JSP页面。Controller类主要负责拦截用户请求,并调用业务逻辑层中相应组件的业务逻辑方法来处理用户请求,然后将相应的结果返回给JSP页面。

2、请简述引入SQL文件的过程。

(1)创建数据库;
(2)选择所创建的数据库;
(3)使用source命令导入数据库文件

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值