内容发布更新时间 : 2024/12/25 2:34:53星期一 下面是文章的全部内容请认真阅读。
第十章
【思考题】
1、 请简述MyBatis与Spring整合所需JAR包的种类。
2、 请简述MapperFactoryBean和MapperScannerConfigurer的作用。
【答案】
1、MyBatis与Spring整合所需JAR包主要包括:Spring框架所需的JAR包、 MyBatis框架所需的JAR包、MyBatis与Spring整合的中间JAR、数据库驱动JAR包,以及数据源所需的JAR包。
2、MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类,通过MapperFactoryBean可以配置接口文件以及注入SqlSessionfactory,从而完成一个Bean的实例化。MapperScannerConfigurer是MyBatis-Spring团队提供的一种用于以自动扫描形式来配置MyBatis中映射器的类,可以通过配置包路径来自动扫描包接口生成映射器,这使得开发人员可以在编写很少代码的情况下,完成对映射器的配置,从而提高开发效率。
第十一章
【思考题】
1、请简述Spring MVC框架的优点。
2、请简述Spring MVC框架的工作执行流程。
【答案】
1、Spring MVC主要有如下优点:
(1)是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。 (2)灵活性强,易于与其他框架集成。
(3)提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。 (4)可自动绑定用户输入,并能正确的转换数据类型。
(5)内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。
(6)支持国际化。可以根据用户区域显示多国语言。
(7)支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。 (8)使用基于XML的配置文件,在编辑后,不需要重新编译应用程序。
2、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)视图渲染结果会返回给客户端浏览器显示。
第十二章
【思考题】
1、请简述@Controller注解的使用步骤。
2、请列举请求处理方法的参数类型和返回类型(至少5个)。
【答案】
1、@Controller注解在使用时可分为如下两步: (1)在相应的类上标注@Controller注解。
(2)在Spring MVC的配置文件中添加相应的扫描配置信息。首先需要在配置文件中引入context名称空间的配置,然后使用
2、请求处理方法的参数类型主要有:HttpServletRequest、HttpServletResponse、HttpSession、Model、HttpMethod等;
请求处理方法的返回类型主要有:ModelAndView、Map、String、void、HttpEntity>、View等。
第十三章
【思考题】
1、请简述简单数据类型中的@RequestParam注解及其属性作用。 2、请简述包装POJO类型绑定时的注意事项。
【答案】
1、@RequestParam注解主要用于对请求中的参数进行定义,多用于在请求参数名与方法形参名不一致时的参数间接绑定。在使用时可以指定他的4个属性,具体如下:
(1)value:name属性的别名,这里指参数的名字,即入参的请求参数名字,如果只使用vaule属性,则可以省略value属性名。
(2)name:用于指定请求头绑定的名称。 (3)required :用于指定参数是否必须,默认是true,表示请求中一定要有相应的参数。 (4)defaultValue:默认值,表示如果请求中没有同名参数时的默认值。
2、在使用包装POJO类型数据绑定时,前端请求的参数名编写必须符合以下两种情况: (1)如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名,如上面代码中的ordersId;
(2)如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.属性”,其中“对象”要和包装POJO中的对象属性名称一致,“属性”要和包装POJO中的对象子属性一致。
第十四章
【思考题】
1、请简述JSON数据交互两个注解的作用。 2、请简述静态资源访问的几种配置方式。
【答案】
1、JSON数据交互时,主要使用了两个注解@RequestBody和@ResponseBody。其中@RequestBody用于将请求体中的数据绑定到方法的形参中,在使用时标准在在方法的形参上。@ResponseBody用于直接返回return对象,在使用时标准在方法上。
2、静态资源访问的配置有3种方式,分别如下:
1)使用