SpringMVC深入总结

合集下载

spring MVC原理及配置

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源码总结(⼀)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三层框架

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?

⼀、什么是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框架知识点总结

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、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学习总结

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学习总结

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框架总结

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框架知识点详解

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常用知识点总结

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⼯作原理及注解说明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知识点总结

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设计模式是什么

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三大框架的原理

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⼯作原理和源码分析

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.example

4.org.springframework.web.servlet.DispatcherServlet

rvlet-class>

5.1

6.

7.

8.example

9.*.form

10.

11.

1是启动顺序,让这个Servlet随Servletp容器一起启动。

*.form会拦截*.form结尾的请求。

example这个Servlet的名字是example,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中,关于key,以后说明。

在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。

第二个例子:

Xml代码

1.

2.springMVC

3.org.springframework.web.servlet.DispatcherServlet

t-class>

4.

5.contextConfigLocation

6.classpath*:/springMVC.xml

7.

8.1

9.

10.

11.springMVC

12./

13.

指明了配置文件的文件名,不使用默认配置文件名,而使用springMVC.xml配置文件。

相关文档
最新文档