Spring MVC

Spring MVC 的运行原理
Spring MVC的执行流程就是一次请求和响应的过程:
1、首先,用户向服务器发送请求,请求被前端控制器 DispatherServlet 截获, DispatherServlet  对 url 进行解析,
2、并获得Controller中的 配置信息,根据请求的地址和Controller中的配置信息找到对应的Controller中的方法,
3、调用方法前,会自动将参数填充进来,如果需要的话也会做必要和格式转换,例如将json转换成对象,将表单键值对转换成对象,
4、接着开始执行控制层的对应的方法。
5、控制层的方法执行完成后,Controller 向 DispatcherServlet 返回一个 ModelAndView 对象。 ModelAndView中包含视图名称和模型数据
6、然后SpringMVC 会根据配置文件中的视图解析器找到相应的视图,并结合Model进行渲染。
7、将视图渲染的结果返回给客户端。

Spring MVC 的 Controller 是单例的吗?
是单例的。

Spring MVC 的 Controller 是线程安全的吗? 
是线程安全的。
原因:Spring MVC 虽然是单例的, 但是 Spring MVC 是方法级别的,数据传输是通过方法的参数传递的,因此在类中没有共享属性,不存在线程不安全的问题。

Spring 和 springMVC的区别?
Spring是一个 Java EE 框架, 支持IOC、DI 和 AOP 。Spring 框架有很多模块组成,每个模块可以独立运行。
Spring MVC 是 Spring的一个模块,实现MVC设计思想。

Spring MVC 和 Struts2的区别、优缺点?
1、 Spring MVC 开发效率和性能要优于Struts2。
2、Spring MVC继承了 Ajax,使用 @ResponseBody    可以获取json数据,使用 @RequestBody可以在请求中发送json数据。
3、Struts中使用Ajax 比较麻烦。
4、Spring MVC 通过前端控制器 DispatcherServlet 完成请求的分发。入口是一个Servlet
5、Struts2 通过  FilterDispatcher(2.1.3以前)或  StrutsPrepareAndExecuteFilter (2.1.3和以后) 完成请求的分发。入口是一个 Filter。
6、Spring MVC 是基于方法级别传递数据。单实例情况下不存在线程安全的问题。因为Spring MVC的参数是在控制器的方法中传递的。
7、Struts2是基于类级别传输数据。 Struts2单实例情况下有线程并发问题,多实例情况下没有线程并发问题,但是效率又很低。也可以在单实例情况下使用ActionContext类传递数据,但是比较麻烦。

SpringMVC中都有哪些配置
视图解析器、放行静态资源、扫描controller、文件上传下载、json类型转换器、自定义拦截器、全局异常处理

SpringMVC视图解析器的作用以及配置:
视图解析器的作用是把逻辑视图的名字解析为真正的视图
配置:在SpringMVC的配置文件中配置一个bean,指向视图解析器,然后配置视图的前缀和后缀。
参考代码如下:
 

简介Spring MVC中的ModelAndView类
ModelAndView是控制器处理方法的返回值,既包含模型数据信息,又包含视图信息

简介Spring MVC中的注解:@RequestMapping,@RequestParam
@RequestMapping:配置请求的url地址,可以用在类上和方法上。
@RequestParam:传递参数

Spring,SpringMVC ,Struts2,hibernate,mybatis  分别是解决什么问题的?
SpringMVC 和 Struts2 是MVC框架,主要是将系统分为视图、模型、控制器三个层次,负责接收请求,调用业务层接口,给视图层返回需要的数据。降低系统的耦合性。
hibernate 和 mybatis 是持久层框架,解决如何存取数据库中的数据的问题,提高数据操作的效率。
Spring 实现 依赖注入的功能,例如将dao对象注入 service 层,同时 spring 面向切面的特性可以实现程序中事物管理的功能,日志记录的功能等。

SpringMVC和hibernate的区别,为什么要一起用?
他们的职责不同。  SpringMVC解决的是系统分层架构的问题, 负责接收请求,调用业务层接口,给视图层返回需要的数据。
hibernate解决的是数据持久化的问题,可以方便的做数据操作。他们整合在一起提高开发效率。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值