初始Spring mvc

來源:互聯網
上載者:User

標籤:contex   targe   config   上下文   dap   ada   work   說明   app   

轉自: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,多個值用都好分隔。

 

初始Spring mvc

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.