springmvc框架中的核心对象DispatcherServlet

SpringMVC是Spring中的模块,它实现了mvc设计模式,
首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handle进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染,并把数据装入到request域,返回给用户。

DispatcherServlet作为SpringMVC的前端控制器,负责接收用户的请求,并根据用户的请求返回相应的视图给用户。实现业务在service层

===============================================================

DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。

DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);

3、通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);

4、通过ViewResolver解析逻辑视图名到具体视图实现;

5、本地化解析;

6、渲染具体的视图等;

7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

摘抄字文章:Spring MVC中的DispatcherServlet作用

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <!--注册springmvc框架的核心对象DispatcherServlet(中央调度器)-->

    <!--
       在服务器启动的时候,会找/WEB-INF/myweb-servlet.xml ,/WEB-INF/springmvc-servlet.xml
       找的文件命名是: 目录是WEB-INF, 文件名称是: <servlet-name>-servlet.xml

       为什么要找这个文件?
         在DispatcherServlet这个Servlet的init()方法中,会创建springmvc的容器对象WebApplicationContext,
         在创建容器对象时,会加载读取springmvc需要的配置文件,默认查找位置就是/WEB-INF/<servlet-name>-servlet.xml
       springmvc需要的配置文件,可以单独指定的,需要配置参数contextConfigLocation.

    -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <!--前端控制器(front controller)-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--指定springmvc配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--在服务器启动的时候,创建Servlet对象-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--
           <url-pattern> : 表示把请求交给指定的Servlet对象。只有把请求交给DispatcherServlet,
           这样的请求才能使用springmvc框架处理。 使用DispatcherServlet接收用户的请求。
           在框架中url-pattern:
           1.扩展名: *.xxxx , xxxx 就是自定义的扩展名。 例如 *.do , *.action,*.mvc等等,不能使用*.jsp
           2.使用斜杠"/"

        -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

以上是一个springmvc示例的xml配置文件。需要在xml文件中注册DispatcherServlet对象

原文地址:https://www.cnblogs.com/Tpf386/p/10871019.html

时间: 2024-10-08 18:32:50

springmvc框架中的核心对象DispatcherServlet的相关文章

(转载)OC学习篇之---Foundation框架中的NSObject对象

前一篇文章讲到了OC中的代理模式,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架. OC中的Foundation框架是系统提供了,他就相当于是系统的一套api,和Java中的一些系统jar很相似,又早起的一批人开发的,内部有很多现有的类和功能提供给我们使用.那么今天首先来介绍一下Foundation框架中的第一个类NSObject. 在之前介绍了类的相关知识,我们看到我们自定义的类都必须实现NSObject类,这个类内部有很多现有的方法可以供我们使用

OC学习篇之---Foundation框架中的NSObject对象

前一篇文章讲到了OC中的代理模式:http://blog.csdn.net/jiangwei0910410003/article/details/41777627,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架. OC中的Foundation框架是系统提供了,他就相当于是系统的一套api,和Java中的一些系统jar很相似,又早起的一批人开发的,内部有很多现有的类和功能提供给我们使用.那么今天首先来介绍一下Foundation框架中的第一个类NSOb

##SpringMVC框架中如果选用EL表达式,那么为什么报错?

在SpringMVC框架中,可能我们会利用El表达式来获取当前工程名,可是竟然报错? <a href="user/testController?username=hehe">请求测试1</a> <a href="/user/testController?username=haha&password=123">请求测试2</a> <a href="${pageContext.request.con

OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

在之前的一篇文章中我们说到了Foundation框架中的NSObject对象: http://blog.csdn.net/jiangwei0910410003/article/details/41788121 那么今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSStr

(转载)OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

在之前的一篇文章中我们说到了Foundation框架中的NSObject对象,那么今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString. 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类,和Java中的St

文件下载(使用springmvc框架中ResponseEntity对象)

package com.atguigu.test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import javax.servlet.http.HttpSession; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.spri

OSGI框架中通过BundleContext对象对服务的注册与引用

BundleActivator 在每个Bundle新建时都会默认生成Activator类,该类实现了BundleActivator类,实现了其start()和stop()两个方法 BundleContext 框架运行时,容器中存有唯一的BundleContext对象,与Spring容器中唯一的ApplicationContext对象同理,再后期随笔中对框架通过引入Spring DM对服务进行管理后,会对两者的关系进行进一步的讲解,在此则只对使用到BundleContext中所提供的registe

springMVC框架中的ajax验证

当然,你在使用springMVC之前需要进行环境的配置,这里就不讲了,直接上代码. 在使用springMVC之前,我在使用ajax验证的时候,需要用到一个解析json的jar包:将数据通过ajax拿到后台servlet,再通过jsonObject对象进行来像前台进行数据的传递.像下面这样: JSONObject j = new JSONObject(); request.setCharacterEncoding("utf-8"); response.setCharacterEncodi

项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存

注明:该文章为以前写的文章,这里只更改了标题,无GitHub源码下载. 一.准备工作 如果已经成功搭建SpringMVC环境,那么就可以进入Ehcache的准备工作了.1.下载jar包    Ehcache 对象.数据缓存:    http://ehcache.org/downloads/destination?name=ehcache-2.9.0-distribution.tar.gz&bucket=tcdistributions&file=ehcache-2.9.0-distribut