SpringMVC深入总结
spring MVC原理及配置
spring MVC原理及配置
springmvc原理及配置
springmvc原理及配置
1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,
通过spring的倚赖转化成功能,这些bean被转化成至控制器中。
springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图
解析器:选择结果应该如何渲染
通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入
之间的松耦合。
2.springmvc运行原理这里写图片描述
(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找
出处置命令的controller。
(3)调用处理器:dispatcherservlet将请求提交到controller。
(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。
3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。
SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门
SpringMVC源码总结(⼀)HandlerMapping和HandlerAdapter⼊门
刚接触SpringMVC,对它的xml⽂件配置⼀直⽐较模模糊糊,最近花了⼀点时间稍微看了下源代码,再加上调试,开始逐渐理解它,⽹上的类似的内容有很多,写本⽂主要是⾃⼰加深⼀下理解。本⽂适合⽤过SpringMVC的开发者,⾔归正传,⾸先搭建⼀个最简单的⼯程体验⼀下。
该⼯程是基于maven的,pom配置不再说明,所使⽤的spring版本4.0.5。
⾸先是web.xml⽂件配置,最简单的配置
Java代码
1. <!DOCTYPE web-app PUBLIC
2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3. "/dtd/web-app_2_3.dtd" >
4.
5. <web-app>
6. <display-name>Archetype Created Web Application</display-name>
7. <servlet>
8. <servlet-name>mvc</servlet-name>
9. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
10. <load-on-startup>1</load-on-startup>
springMVC三层框架
springMVC三层框架
我们的开发架构⼀般都是基于两种形式,⼀种是 C/S 架构,也就是客户端/服务器,另⼀种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,⼏乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。
服务器端通常分为三层架构
表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使⽤http协议请求 web 层,web 需要接收 http 请求,完成 http 响应。
表现层包括展⽰层和控制层:控制层负责接收请求,展⽰层负责结果的展⽰。
表现层依赖业务层,接收到客户端请求⼀般会调⽤业务层进⾏业务处理,并将处理结果响应给客户端。
表现层的设计⼀般都使⽤ MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)
业务层:
也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项⽬的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务⼀致性。(也就是我们说的,事务应该放到业务层来控制)
持久层:
也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进⾏持久化的载体,数据访问层是业务层和持久层交互的接⼝,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进⾏曾删改查的。
表现层:SpringMVC
业务层:Spring
持久层:Mybatis
什么是SpringMVC?
什么是SpringMVC?
⼀、什么是SpringMVC?
1.SpringMVC 是⼀种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 中。
2.SpringMVC = Spring +MVC
spring mvc类似于struts的⼀个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为⽀撑才能跑起来.
spring是⼀个⼀站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(springdata)的全套解决⽅案;spring的两⼤核⼼IOC(控制反转)和AOP(⾯向切⾯编程)更是给我们的程序解耦和代码的简介提供了⽀持。
Spring框架图:
从Spring的结构图可以看出,springMVC位于spring web端的⼀个框架,是⼀种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使⽤了MVC架构模式的思想,将web层进⾏职责解耦。附:基于请求驱动指的就是使⽤请求-响应模型。
从名字上就可以窥探出,Spring>SpringMVC,那么事实上,spring和SpringMVC是⼀种⽗⼦关系。SpringMVC是spring扩展出的⼀个应⽤于web端的框架。在这⾥需要注意的⼀点,就是到底什么是⽗⼦容器关系:
spring主要的作⽤是黏合其他模块组件,进⾏统⼀管理,springmvc则主要是负责web端。那么,我们都知道,我们在应⽤spring的时候,可以使⽤注⼊。这个时候,如果我们的web端是⽤的SpringMVC,这个时候,controller理论上是通过SpringMVC去注⼊,但是,使⽤spring注⼊,同样是可⾏的。同理,service等层,使⽤SpringMVC配置的统⼀扫描装配也是可以的。所以,如果说只是为了使⽤spring的依赖注⼊,是⼤可不必将springMVC和spring同时使⽤的。他们完全可以分开!
ssm框架知识点总结
ssm框架知识点总结
一、Spring框架
1. IoC(Inversion of Control):IoC是Spring框架的核心思想,它通过控制反转实现了对
象的解耦。Spring通过容器来管理对象的创建、组装和生命周期,开发者只需要关注对象
的业务逻辑即可。在Spring中,IoC容器负责管理JavaBean的生命周期,并通过依赖注
入实现对象之间的关系。
2. AOP(Aspect Oriented Programming):AOP是Spring框架的另一个核心特性,它能
够在程序运行期间动态地将功能交叉切入到已有的程序中。Spring AOP基于代理模式和动态代理技术实现了面向切面编程,比如日志记录、性能监控、事务管理等都可以通过AOP
实现。
3. Spring Bean管理:Spring框架提供了多种类型的Bean管理方式,包括XML方式、注
解方式和Java配置方式。通过这些方式可以创建、配置和管理Bean,实现业务逻辑的组
装和控制。
4. Spring事务管理:Spring框架为事务管理提供了多种方式,包括编程式事务管理和声明式事务管理。开发者可以根据实际需求选择合适的事务管理方式,并通过简单的配置即可
实现事务的管理。
5. Spring MVC:Spring MVC是Spring框架的Web模块,它基于MVC设计模式实现了一
个轻量级的Web框架。Spring MVC提供了请求映射、控制器、视图解析器等功能,可以
很方便地开发Web应用程序。
6. Spring Security:Spring框架提供了一套完善的安全认证和授权机制,通过Spring Security可以实现用户认证、权限管理、访问控制等功能。
spring、spring-mvc学习总结
Spring资料总结
目录--------------------
1.什么是spring
2.Spring有什么特点?
3.Spring的有哪些模块?各个模块的作用?
4.控制反转(IOC)和依赖注入(DI)的区别?
5.BeanFacotry对象的作用(IOC容器的作用)?
6.使用FileSystemXmlApplicationContext,ClassPathXmlApplicationContext加载ApplicationContext.xml文件代码?
7.BeanFactory跟ApplicationContext区别?
8.依赖注入的四种方式(set,构造器,接口,注解)?
9.Bean组件的作用域范围(singleton,prototype,request,session,globalsession)?
10.Bean组件装配方式(byName,bType,constructor,default)?
11.Bean组件的生命周期?
12.在Web环境中怎么加载applicationContext.xml文件(Servlet监听器)?在web如何获取应用上下文WebApplicationContext?
13.Spring对DAO模块支持?有什么优点?
14.Spring的DAO模板增删查改数据代码?
15.Spring对ORM模块的支持?有什么优点?
16.Spring整合Hibernate模块的增删查改数据代码?
17.Spring整合Ibatis模块的增删查改数据代码?
18.Spring整合Mybatis模块的增删查改数据代码?
SpringMVC学习总结
SpringMVC学习总结
Spring MVC 学习总结
本例是做一个Login登录,输入username和password提交后,跳到login.html页面,并在login.html页面显示输入的username和password内容。如下图:
一、IntelliJ idea(14.1.7)创建Maven项目
File –> New –> Project –> Maven –>勾上Create from archetype –>选择maven-archetype-webapp–> Next
输入GroupId和AtifactId -> Next
下一步,直接点Next
输入Project Name -> Finish
输入完成后,点击右上角的【Enable Auto-Import】
选择右边红框的Enable-Auto-Import,可以在每次修改pom.xml后,自动的下载并导入jar包,这一点在后面详述。
到这里为止,基本的框加已经搭建完成。搭建完成后的目录
二、导入相关的Jar包
我建的是Maven项目,所以可以在pom.xml里配置,Maven就会自动导入相应的jar 包
需要以下的jar包,不是每一个都用到,可以先全部导入
org.springframework
spring-core
4.2.6.RELEASE
SpringMVC学习总结
Spring MVC 学习总结
本例是做一个Login登录,输入username和password提交后,跳到login.html页面,并在login.html页面显示输入的username和password内容。如下图:
一、IntelliJ idea(14.1.7)创建Maven项目
File –> New –> Project –> Maven –>勾上Create from archetype –>选择maven-archetype-webapp–> Next
输入GroupId和AtifactId -> Next
下一步,直接点Next
输入Project Name -> Finish
输入完成后,点击右上角的【Enable Auto-Import】
选择右边红框的Enable-Auto-Import,可以在每次修改pom.xml后,自动的下载并导入jar包,这一点在后面详述。
到这里为止,基本的框加已经搭建完成。搭建完成后的目录
二、导入相关的Jar包
我建的是Maven项目,所以可以在pom.xml里配置,Maven就会自动导入相应的jar 包
需要以下的jar包,不是每一个都用到,可以先全部导入
org.springframework
spring-core
4.2.6.RELEASE
org.springframework
spring-web
4.2.6.RELEASE
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.1
provided
org.springframework
ssm框架总结
ssm框架总结
SSM框架总结
SSM框架是目前Java开发中使用最广泛的三大主流框架之一,它由Spring、SpringMVC和MyBatis三个独立的框架组成,各自承担不同的职责和功能。在这篇文章中,我将对SSM框架进行总结和分析。
一、Spring框架
Spring是一个轻量级的Java企业级应用开发框架,它提供了一站式的解决方案,能够简化开发过程并提高开发效率。Spring框架的核心是控制反转(IoC)和面向切面编程(AOP)。
控制反转是指将对象的创建和依赖关系的管理交给Spring容器来完成,开发者只需要通过配置文件或注解来定义所需的Bean,然后从容器中获取即可。这样的设计思想可以降低代码的耦合度,提高代码的可维护性。
面向切面编程是Spring框架的另一个重要特性,它通过在主业务逻辑上方插入横切关注点(如日志、事务管理等),实现了代码的模块化和重用性。开发者可以通过定义切面来对代码进行横向扩展,而不必修改原有的业务逻辑代码。
二、SpringMVC框架
SpringMVC是一种典型的MVC(Model-View-Controller)设计模式的实现框架,它基于Servlet容器并与Spring框架无缝集成,用于开发Web应用程序。
在SpringMVC框架中,Controller负责接收和处理用户请求,然后将处理结果封装成Model对象,最后通过View来展示给用户。通过
这种模式的划分,能够有效地分离前端与后端的责任,并提高开发效率。
SpringMVC框架提供了丰富的注解和标签库,开发者可以通过这
SpringMVC框架知识点详解
SpringMVC框架知识点详解
官⽅的下载⽹址是:
⼀、Spring MVC简介
1.1Spring MVC⼯作流程
映射器:主要是根据浏览器上输⼊的url来映射所有满⾜要求的Handle(控制器类)
适配器:主要是决定调⽤哪个Handler来实现具体的业务逻辑
1.2Spring MVC VS Struts2
1)springmvc的⼊⼝是⼀个servlet,即前端控制器;
struts2⼊⼝是⼀个filter过虑器,即前端过滤器,
2)springmvc是基于⽅法开发(控制器类是单例的,不可能维护实体变量),传递参数是通过⽅法形参,可以设计为单例;
struts2是基于类开发(维护⼀个实体变量),传递参数是通过类的属性,只能设计为多例
3)springmvc通过参数解析器是将request对象内容进⾏解析成⽅法形参,将响应数据和页⾯封装成ModelAndView对象,最后⼜将模型数据通过request对象传输到页⾯;
struts采⽤值栈存储请求和响应的数据,通过OGNL存取数据
4)springmvc开发运⾏速度快于struts2
⼆、Spring MVC⼯程搭建(xml)
2.1导⼊springioc,springweb , springmvc相关的jar包
2.2在/WEB-INF/ web.xml⽂件配置SpringMVC的前端控制器DispatcherServlet(前端控制器)
<!-- 注册springmvc核⼼控制器 -->
<servlet>
<!-- servlet-name名字随便写 -->
spring常用知识点总结
spring常用知识点总结
Spring框架是一个轻量级的、基于Java的企业级应用开发框架,它提供了一种综合的基
础设施,以便开发大型企业应用。它是一个开源的框架,可以用于构建简单的Java SE应
用程序,也可以构建复杂的企业级Java EE应用程序。Spring框架通过依赖注入和面向切
面编程,可以使得应用开发变得更加简单、灵活和高效。本文将总结Spring框架的一些
常用知识点,以便于开发者更好地理解和使用Spring框架。
1. Spring IoC容器
IoC(Inversion of Control,控制反转)是Spring框架的核心,它负责管理各个组件之间
的依赖关系,将对象的创建、销毁和依赖注入的工作交给容器来处理。Spring IoC容器有
两种实现方式:BeanFactory和ApplicationContext。BeanFactory是IoC容器的基础接口,它提供了对Spring bean的基本功能支持。ApplicationContext是BeanFactory的子接口,
它提供了更多的实用功能,如事件传播、国际化、资源管理等。开发者可以根据实际需要
选择适合自己的IoC容器实现。
2. Spring Bean
在Spring框架中,Bean是指由IoC容器管理的对象。在Spring中,Bean是通过一个配
置文件来描述的,这个配置文件可以是XML格式的,也可以是Java配置类。Bean的配
置信息包括Bean的id、class、作用域、依赖关系等。Spring框架提供了一系列注解和标
SpringMVC工作原理及注解说明
SpringMVC⼯作原理及注解说明SpringMVC框架介绍
1) MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow⾥⾯。
Spring 框架提供了构建 Web 应⽤程序的全功能 MVC 模块。使⽤ Spring 可插⼊的 MVC ,可以选择是使⽤内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接⼝,Spring 框架是⾼度可配置的,⽽且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使⽤的视图,所以不会强迫您只使⽤ JSP 技术。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的⾓⾊,这种分离让它们更容易进⾏定制。
2) Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。SpringMVC原理图
SpringMVC接⼝解释
DispatcherServlet接⼝:
Spring提供的前端控制器,所有的请求都有经过它来统⼀分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
HandlerMapping接⼝:
能够完成客户请求到Controller映射。
Controller接⼝:
需要为并发⽤户处理上述请求,因此实现Controller接⼝时,必须保证线程安全并且可重⽤。
SpringMVC知识点总结
SpringMVC知识点总结
1. .Springmvc是spring的web框架围绕DispatcherServlet
设计的。DispatchServlet的作用是将恳求分发到不同的处理器。Spring的web框架可以包括可配置的处理器(Handlder)映射,视图(view)解析,本地化(local)解析,主题(theme)解析以及对文件上传的支持等
2. springmvc的恳求模式:
3. 其实,每个MVC 框架的执行过程都是大同小异的;
①当一个request过来时,它通过一个servelet来响应request;
②再依据request的路径名和配置将这个request dispatch 给一个controller执行;
③最末将之返回配置文件里对应的页面。
在springmvc中,这个servelet的名字叫:Dispatchservlet。
4. Spring
的Controller是singleton的,或者是线程担心全的说明。
分析:和Struts一样,Spring的Controller是singleton的!这意味着每个request过来,系统都会用原来的instance去处理,这样就导致了两个结果:①我们不用每次创建Controller,减削了对象创建和垃圾回收的时间。②由于只有一个Controller的instance,当多个线程调用它的时候,它里面的'instance变量不是线程安全的。
这也是webworks吹嘘的地方,它的每个Action都是线程安全的。由于每过来一个request,它就会创建一个Action对象。由于现代JDK垃圾收集动能的效率已经不成问题了,所以这种创建完一个对象就扔掉的模式也得到许多人的认可。
Spring框架的MVC设计模式是什么
Spring框架的MVC(Model-View-Controller)设计模式是一种软件设计模式,用于将应用程序的业务逻辑、数据处理和用户界面分离,使得代码更加清晰、可维护和可扩展。在Spring MVC中,应用程序被分为三个核心组件:Model(模型)、View(视图)和Controller(控制器)。
1.Model(模型):模型是应用程序的数据和业务逻辑的表示。它负责处理
数据的读取、存储和操作,以及业务规则的处理。在Spring MVC中,模型通常是一个Java对象(JavaBean),它包含了应用程序的数据和业务逻
辑。模型对象可以被多个视图和控制器共享和重用。
2.View(视图):视图是用户界面的呈现部分,负责展示数据给用户,并接
收用户的输入。在Spring MVC中,视图通常是一个JSP(JavaServer
Pages)页面或Thymeleaf模板等,它根据模型的数据进行渲染和展示。视图不直接处理业务逻辑或数据访问,而是依赖于模型和控制器来提供数据
和交互逻辑。
3.Controller(控制器):控制器是模型和视图之间的协调者,负责接收用户
的输入并根据输入调用相应的模型逻辑。在Spring MVC中,控制器通常是一个Java类,它使用注解(如@Controller、@RequestMapping等)来映射
URL请求到特定的处理方法。控制器将用户的请求转发给模型进行处理,
并将处理结果传递给视图进行展示。
Spring MVC的设计模式使得应用程序的组件之间解耦,每个组件只关注自己的职责,从而提高了代码的可读性、可维护性和可扩展性。同时,Spring框架提供了丰富的支持,包括自动配置、依赖注入、异常处理等功能,使得开发者能够更快速地构建健壮的Web应用程序。
mvc三大框架的原理
mvc三大框架的原理
MVC是一种软件设计模式,它将应用程序分为三个部分:模型、视图和控制器。这三部分分别负责处理应用程序的数据、展示和逻辑。目前在web开发中常用的MVC框架主要有三个:SpringMVC、Struts2和 MVC。
SpringMVC是一个基于Spring框架的MVC框架。它提供了一个DispatcherServlet来拦截请求,并根据请求中的信息决定交给哪个控制器处理。控制器处理完后,将返回一个ModelAndView对象给DispatcherServlet,该对象包含数据和View的名称。DispatcherServlet通过ViewResolver来找到对应的View并返回给客户端。
Struts2是一个基于Struts1的MVC框架。它采用拦截器机制来处理请求,每个请求都被封装成一个Action对象。Action对象负责处理请求并返回结果,结果包含数据和View的名称。Struts2通过Result来找到对应的View并返回给客户端。
MVC是一个基于.NET框架的MVC框架。它通过Routing 来映射请求到相应的Action。Action负责处理请求并返回结果,结果包含数据和View的名称。 MVC通过ViewEngine来找到对应的View并返回给客户端。
总的来说,这三个框架都采用了MVC模式,但实现方式略有不同。SpringMVC和Struts2都是基于Java的,而 MVC则是基于.NET 的。同时,它们都提供了一套完整的开发框架,包括处理请求的路由、
springmvc工作原理和源码分析
springmvc⼯作原理和源码分析
springmvc⼯作原理以及源码分析(基于spring3.1.0)
springmvc是⼀个基于spring的web框架.本篇⽂章对它的⼯作原理以及源码进⾏深⼊分析.
⼀、springmvc请求处理流程
⼆、springmvc的⼯作机制
三、springmvc核⼼源码分析
四、谈谈springmvc的优化
⼀、springmvc请求处理流程
引⽤spring in action上的⼀张图来说明了springmvc的核⼼组件和请求处理流程:
①:DispatcherServlet是springmvc中的前端控制器(front controller),负责接收request并将request转发给对应的处理组件.
②:HanlerMapping是springmvc中完成url到controller映射的组件.DispatcherServlet接收request,然后从HandlerMapping查找处理request的controller.
③:Cntroller处理request,并返回ModelAndView对象,Controller是springmvc中负责处理request的组件(类似于struts2中的Action),ModelAndView是封装结果视图的组件.
④⑤⑥:视图解析器解析ModelAndView对象并返回对应的视图给客户端.
⼆、springmvc的⼯作机制
在容器初始化时会建⽴所有url和controller的对应关系,保存到Map<url,controller>中.tomcat启动时会通知spring初始化容器(加载bean的定义信息和初始化所有单例bean),然后springmvc会遍历容器中的bean,获取每⼀个controller中的所有⽅法访问的url,然后将url和controller保存到⼀个Map中;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、前言:
大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。
官方的下载网址是:/download(本文使用是的Spring 3.0.5版本)
Struts2也是比较优秀的MVC构架,优点非常多比如良好的结构。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降。Struts2的多层拦截器、多实例action性能都很好。可以参考我写的一篇关于Spring MVC与Struts2与Servlet比较的文章/admin/blogs/698217
Spring3 MVC的优点:
1、Spring3 MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。
2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)
3、Spring3 MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。
Struts2的众多优点:略... (呵呵,是不是不公平?)
众多文章开篇时总要吹些牛,吸引一下读者的眼球,把读者的胃口调起来,这样大家才有兴趣接着往后看。本文也没能例外。不过保证你看了之后不会后悔定有收获。
二、核心类与接口:
先来了解一下,几个重要的接口与类。现在不知道他们是干什么的没关系,先混个脸熟,为以后认识他们打个基础。
DispatcherServlet -- 前置控制器
HandlerMapping接口-- 处理请求的映射
HandlerMapping接口的实现类:
SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上
HandlerAdapter接口-- 处理请求的映射
AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上
Controller接口-- 控制器
由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,
所以我们并没有用到这个接口。
HandlerInterceptor 接口--拦截器
无图,我们自己实现这个接口,来完成拦截的器的工作。
ViewResolver接口的实现类
UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来处理InternalResourceViewResolver类,比上面的类,加入了JSTL的支持
View接口JstlView类
LocalResolver接口
HandlerExceptionResolver接口--异常处理SimpleMappingExceptionResolver实现类
ModelAndView类
无图。
三、核心流程图:
本图是我个人画的,有不严谨的地方,大家对付看吧。总比没的看强。
四、DispatcherServlet说明:
使用Spring MVC,配置DispatcherServlet是第一步。
DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理。
“某某规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。
先来看第一个例子:
Xml代码
1.
2.
3.
4. rvlet-class> 5. 6. 7. 8. 9. 10. 11. 在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。 第二个例子: Xml代码 1. 2. 3. t-class> 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 指明了配置文件的文件名,不使用默认配置文件名,而使用springMVC.xml配置文件。