MVC 设计思想
M:Model 模型
V:View 视图
C:Controller 控制器
模型就是封装业务逻辑和数据的一个一个的模块,控制器就是调用这些模块的(java 中通常是用 Servlet 来实现,
框架的话很多是用 Struts2 来实现这一层),视图就主要是你看到的,比如 JSP 等.
当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和要选择的数据,再返回去把结果输出到视图层,
这里可能是进行重定向或转发等
Spring的核心就是控制反转(IOC)和面向切面(AOP)
SpringMVC运行原理
SpringMVC工作流程
1、 用户发送请求至前端控制器 DispatcherServlet
2、 DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。
3、 处理器映射器找到具体的处理器, 生成处理器对象及处理器拦截器(如果有则
生成)一并返回给 DispatcherServlet。
4、 DispatcherServlet 调用 HandlerAdapter 处理器适配器
5、 HandlerAdapter 经过适配调用具体的处理器(Controller, 也叫后端控制器)。
6、 Controller 执行完成返回 ModelAndView
7 、 HandlerAdapter 将 controller 执 行 结 果 ModelAndView 返 回 给
DispatcherServlet
8、 DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器
9、 ViewReslover 解析后返回具体 View
10、DispatcherServlet 根据 View 进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet 响应用户
SpringMVC和Struts2区别
a) 入口不同:SpringMVC的入口为Servlet(DispatcherServlet);
Struts2入口为Filter(StrutsPrepareAndExecuteFilter),这就导致他们的机制不同。
b) 性能不同:SpringMVC效率较高;mvc不用每次都构造控制器,struts每次都要创建Action
c) 设计理念:SpringMVC是基于方法的,而Struts2是基于类的;
d) 接受参数上:Struts2通过Action中的成员数据接受参数(属性驱动和模型驱动);
而SpringMVC通过方法的入参接受(使用@RequestParam、@PathVariable等接受)
e) 返回数据:Struts2使用的是值栈,通过OGNL表达式取值;MVC通过参数绑定把数据放置到Request中(Map,Model,Request)。
总体上Struts2漏洞相对较多,SpringMVC也越来越流行。
SpringMVC中怎么重定向?怎么转发?
重定向:return “redirect:/user/list”;
转发:return “forward:/user/list”;
Mybatis 的理解
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。
MyBatis 使 用 简 单 的 XML 或 注 解 来 配 置 和 映 射 基 本 体 , 将 接 口
和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中
的记录。
springboot是什么
SpringBoot是为了解决Spring大量的配置文件导致程序员开发速度低下而产生的一个框架。
什么是springcloud
微服务架构是一种架构模式或者是一种架构风格,它提倡将单一应用程序根据业务功能划分成一组小的服务,
每个服务运行在自己独立的进程中,服务之间互相协调、互相配合、为用户提供最终价值。
mvvm是什么?
mvvm是一个model+view+viewModel框架,视图view,数据模型model,viewModel连接两个,
视图上的数据改变可以同时改变model的数据,反过来,model的数据变化也会直接渲染到页面。











网友评论