1 MVC 盖帘:

MVC 是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计编写 Web 应用程序表现层的模式。

MVC 设计模式的三大角色:

Model(模型):模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。

View(视图):通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。通常视图是依据数据模型创建的。

Controller(控制器):是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑

2 SpringMVC是什么:

Spring MVC 全名叫 Spring Web MVC ,它是 Spring家族Web模块 的一个重要成员。
SpringMVC 是一种基于MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建Web 应用程序的全功能 MVC 模块。
使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。
SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越Struts2,成为最优秀的 MVC 框架。
它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

3 spring mvc六大组件说明:

1. 在 springmvc 的各个组件中,前端控制器(C)、处理器(M)、视图(V)称为 springmvc 的MVC组件
2. 在 springmvc 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 springmvc的三大组件
3. 需要开发的组件有:处理器、视图

DispatcherServlet:前端控制器

用户请求到达前端控制器,它就相当于mvc模式中的C,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

Handler:处理器

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
View:视图

springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。
HandlerMapping:处理器映射器

HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式

HandlAdapter:处理器适配器

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行

View Resolver:视图解析器

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

Spring MVC 调用过程:

4 拦截器

SpringMVC 的拦截器主要是针对特定处理器进行拦截的。springMvc 拦截器( Interceptor )实现对每一个请求处理前后进行相关的业务处理,类似与servlet 中的Filter。

SpringMVC 中的 Interceptor 拦截请求是通过 HandlerInterceptor 接口来实现的。
在 SpringMVC 中定义一个 Interceptor 非常简单,主要有4种方式:
1. 实现 SpringMVC 的 HandlerInterceptor 接口;
2. 继承实现了 HandlerInterceptor 接口的类,比如 SpringMVC 已经提供的实现了HandlerInterceptor 接口的抽象类 HandlerInterceptorAdapter ;
3. 实现 SpringMVC 的 WebRequestInterceptor 接口;
4. 继承实现了 WebRequestInterceptor 的类;配置拦截器

SpringMVC 拦截器是绑定在HandlerMapping 中的,即:如果某个 HandlerMapping 中配置拦截,则该 HandlerMapping 映射成功的 Handler 会使用该拦截器。SpringMVC 的全局拦截器配置,其实是把配置的拦截器注入到每个已初始化的 HandlerMapping 中了。

5 CORS跨域解决方案

什么是跨域
浏览器因为安全考虑,所以设置了同源策略。同源策略简单理解就是DNS域名,端口号,协议完全相同就称为同源。同源下的页面之间才能进行js的dom操作,如果不在同一个源下任何跨文档dom访问都是被阻止的。不同源下的访问可以称之为跨域访问。

最新文章

  1. Flume_企业中日志处理
  2. yum clean all 是什么意思
  3. git之create local reposition(创建本地仓库)
  4. Linux Kernel File IO Syscall Kernel-Source-Code Analysis(undone)
  5. mybatis + postgresql 遇到的问题
  6. [Javascript] How to use JavaScript's String.replace
  7. Tomcat Server处理一个http请求过程
  8. A计划(双层bfs)
  9. Java filter中的chain
  10. ThreadLocal的一些总结
  11. (转)Jmeter基础之编写HTTP接口用例
  12. git tag用法
  13. 数据库相关--mysql8.0设置root登录密码
  14. 洛谷P1064 金明的预算方案
  15. uva 699 The Falling Leaves(建二叉树同一时候求和)
  16. 【转】Linux下的文本dos格式转Unix格式,去除^M符号
  17. 试用一下markdown
  18. Swift-7-闭包
  19. boost库的配置——Linux篇
  20. win上配置nginx

热门文章

  1. GBDT初识
  2. mysql主从故障跳过错误
  3. .Netframework下WebAPI发布在IIS方法
  4. PDF.JS 预览pdf文件,中文不显示问题
  5. iframe 父子页面调用vue函数,并解决跨域问题,宽度自适应
  6. git修改远程分支
  7. 前端实现电子签名(web、移动端)通用组件
  8. keepalived+nginx+应用
  9. rabbitmq的Exchange类型案例
  10. 关于ie浏览器query ajax提交单个操作无效