《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题 下载本文

内容发布更新时间 : 2024/3/28 18:32:45星期一 下面是文章的全部内容请认真阅读。

第十章

【思考题】

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)使用元素用于配置静态资源的访问路径。 2)使用标签,可以访问所有静态资源。 3)激活Tomcat默认的Servlet来处理静态文件访问。