zoukankan      html  css  js  c++  java
  • 前置控制器一DispatcherServlet

    org.springframework.web.servlet.DispatcherServlet

    前言

    DispatcherServlet是SpringMVC的核心控制器,就像是SpringMVC的心脏,几乎所有的请求都会经过这个控制器,通过它,大大的降低了模块之间的耦合度。

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

      1. DispatcherServlet会查询一个或多个处理器映射(handler mapping)并根据请求所携带的URL信息进行决策,将请求发送给哪个SpringMVC控制器 (controller);
      2. 控制器做两件事:一是将数据打包,二是定义逻辑视图名,然后返回给DispatcherServlet;
      3. DispatcherServlet通过视图解析器(view resolver)来将逻辑视图名匹配为一个特定的视图实现,它可能是也可能不是JSP;
    • DispatcherServlet初始化主要做了如下两件事情:

      1. 初始化SpringMVC使用的Web上下文,并且可能指定父容器为(ContextLoaderListener加载了根上下文);
      2. 初始化DispatcherServlet使用的策略,如HandlerMapping、HandlerAdapter等。

    1.配置DispatcherServlet(web.xml)

    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springconfig.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    2.路径配置

    1. /*之类的不能写,访问啥都出错
    2. /的形式全部拦截,访问静态资源会出错
      3.*.do拦截Action请求

    3.过滤静态资源(springmvc.xml)

    方法1

    <mvc:default-servlet-handler/>
    

    方法2

    <mvc:resources location="/images/" mapping="/images/**"></mvc:resources>
    
    • location表示静态资源所在的目录,包含WEB-INF目录及其子目录。
    • mapping表示对该资源的请求。后面是两个星号*
  • 相关阅读:
    Django【进阶篇-缓存类型】
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    Istio技术与实践03:最佳实践之sidecar自动注入
    原来你是这样的PaaS!
    5分钟APIG实战: 使用Rust语言快速构建API能力开放
    Log4J日志配置详解
    cookie是如何保存到客户端,又是如何发送到服务端
    session cookie
  • 原文地址:https://www.cnblogs.com/loveer/p/11311137.html
Copyright © 2011-2022 走看看