码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc之DispatcherServlet

时间:2017-11-06 18:04:33      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:spring   等等   bsp   init   set   模型   解析   加载   tgt   

 

  • 前言

  最近打算利用闲暇的时间从零写个springmvc项目,工作中的项目框架都是搭好的,写业务逻辑多些,所以开始就一路磕磕碰碰。快半个月了项目还没搭起来。对底层和框架了解的太少了,趁此机会把遇到的问题都好好研究一下并记录下来,供以后学习用。希望文中有不对的或是不严谨的地方还请不吝赐教,感谢!!!

  • 正文

  1.什么DispatcherServlet

   与许多其他的web框架一样,SpringMvc是围绕前端控制器模式设计的,在这一模式中DispatcherServlet,为请求处理提供了一种共享的算法,而实际的工作是由可配置的委托组件执行的。这个模型是灵活的,支持不同的工作流。

  DistpatcherServlet和所有的servelet一样需要根据Servlet规范使用Java配置或web.xml来声明和映射。然后,DispatcherServlet使用Spring配置来发现它所需要的委托组件,用于请求映射、视图解析、异常处理等等。

  下面是一个注册和初始化DispatcherServlet的Java配置示例。这个类是由Servlet容器自动检测的。

public class MyWebApplicationInitializer implements WebApplicationInitializer {

  @Override
  public void onStartup(ServletContext servletCxt) {

    // Load Spring web application configuration
    AnnotationConfigWebApplicationContext cxt = new AnnotationConfigWebApplicationContext();
    cxt.register(AppConfig.class);
    cxt.refresh();

    // Create DispatcherServlet
    DispatcherServlet servlet = new DispatcherServlet(cxt);

    // Register and map the Servlet
    ServletRegistration.Dynamic registration = servletCxt.addServlet("app", servlet);
    registration.setLoadOnStartup(1);
    registration.addMapping("/app/*");
  }

}

 

 

  2.DispatcherServlet在web.xml中的配置方法

     (1)通过web.xml中<servlet-name>来配置

      此方法会加载WEB-INF下的xxx-servlet.xml配置文件,此处“xxx”即为web.xml中<servlet-name>配置的名字。

      因此下面代码会加载WEB-INF下的springmvc-servlet.xml。

<servlet>
        <!-- springmvc的核心是dispatcherServlet他负责控制整个页面的请求路径 -->
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- load-on-startup:表示容器启动时初始化该servlet; -->
        <load-on-startup>1</load-on-startup>
</servlet>

    (2)通过web.xml中DispatcherServlet的init-param来配置

<servlet>
  <!-- springmvc的核心是dispatcherServlet他负责控制整个页面的请求路径 -->
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-servlet.xml</param-value>
    </init-param>
  <!-- load-on-startup:表示容器启动时初始化该servlet; -->
  <load-on-startup>1</load-on-startup>
</servlet>

 

  3.DispatcherServlet的作用

 未完待续

 

ps :参考https://docs.spring.io/spring/docs/5.0.1.RELEASE/spring-framework-reference/web.html#mvc-servlet,

   https://docs.spring.io/spring/docs/5.0.1.RELEASE/spring-framework-reference/web.html#mvc-container-config

   http://www.iigrowing.cn/spring_pei_zhi_wen_jian_location_de_ji_zhong_she_zhi_fang_fa.html。

 

springmvc之DispatcherServlet

标签:spring   等等   bsp   init   set   模型   解析   加载   tgt   

原文地址:http://www.cnblogs.com/Y-zhiwei/p/7724730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!