zoukankan      html  css  js  c++  java
  • 初始Spring mvc

    转自:http://elf8848.iteye.com/blog/875830很棒的一篇博客,想了解SpringMvc的入门选手可以去看看。

    一,核心类与接口:

    DispatcherServlet - 前端控制器

    HandlerMapping接口 - 处理请求的映射

    HandleMapping接口的实现类:

    SimpleUrlHandlerMapping通过配置文件将一个URL映射到Controller

    DefaultAnnotationHandleMapping通过注解,将一个URL映射到Controller类上

    HandlerAdapter接口 - 处理请求的映射

    AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

    Controller接口 - 控制器

    由于使用了@controller注解,添加了@Controller注解的类就可以担任控制器(Action)的职责

    HandlerInterceptor 接口 - 拦截器

    ViewResolver接口的实现类

    UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来处理

    InternalResourceViewResolver类,比上面的类,加入了JSTL的支持。

    View接口

    JstlView类

    LocalResolver接口

    HandlerExceptionResolver接口 - 异常处理

    SimpleMappingExceptionResolver实现类

    ModelAndView类

    二,核心流程

    三,DispacherServlet说明

    使用SpringMvc配置Dispatch而Servlet是第一步。

    DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet

    DispatcherServlet是前置控制器,配置在web.xml中。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依靠某某规则分发到目标Controller我们写的(Action)来处理。

     分发到Controller的某某规则根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

    如:
    1. <web-app>  
    2.     <servlet>  
    3.         <servlet-name>example</servlet-name>  
    4.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    5.         <load-on-startup>1</load-on-startup>  //是启动顺序,让这个Servlet随Servlettp容器一起启动
    6.     </servlet>  
    7.     <servlet-mapping>  
    8.         <servlet-name>example</servlet-name>  //servlet的名字,可以有多个DispatcherServlet,是通过名字来区分的,每个DispatcherServlet都有自己的WebAppliContext上下文对象。同时保存在ServletContext中和Request对象中。
    9.         <url-pattern>*.form</url-pattern>  //拦截所有以.form结尾的请求。
    10.     </servlet-mapping>  
    11. </web-app>  

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

    1. <servlet>  
    2.     <servlet-name>springMVC</servlet-name>  
    3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    4.     <init-param>  
    5.         <param-name>contextConfigLocation</param-name>  
    6.         <param-value>classpath*:/springMVC.xml</param-value>  
    7.     </init-param>  
    8.     <load-on-startup>1</load-on-startup>  
    9. </servlet>  
    10. <servlet-mapping>  
    11.     <servlet-name>springMVC</servlet-name>  
    12.     <url-pattern>/</url-pattern>  
    13. </servlet-mapping

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

    其中<param-value>**.xml</param-value>这里可以使用多种写法

    1,不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml   比如说你的servlet-name是example那么找的那个文件就是example-servlet.xml

    2,<param-value>/WEB-INF/classes/springMvc.xml<param-value>

    3,<param-vlue>classpath*.springMvc-mvc.xml</param-value>

    4,多个值用都好分隔。

  • 相关阅读:
    349. Intersection of Two Arrays
    1342. Reduce Array Size to The Half
    Telegram 汉化教程【转】
    jQuery 事件
    jQuery 事件
    jQuery 遍历
    jQuery 遍历
    CocosCreator教程(入门篇)【转】
    JavaScript shift() 方法使用【转】
    jQuery中动画函数animate的用法详解【转】
  • 原文地址:https://www.cnblogs.com/pianruijie/p/7642932.html
Copyright © 2011-2022 走看看