springmvc入門之映射處理器(一)

1.簡析映射處理器前端

在spring mvc中,使用映射處理器能夠把web請求映射到正確的處理器上,spring內置了不少映射處理器,並且咱們也能夠自定義映射處理器。下面的實例展現spring中最經常使用的兩個映射處理器:BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping。在正式開始前有必要了解如下相關要點:java

(1)映射處理器都能把請求傳遞處處理器執行連接(HandlerExecutionChain)上,而且處理器執行連接必須包含能處理該請求的處理器(實質就是處理器鏈上動態添加了了此處理器,能夠結合filter工做原理理解),並且處理器連接也能包含一系列攔截器。web

(2)上面列舉的spring最經常使用的兩種處理器都是繼承自AbstractHandlerMapping類,於是它們具有父類的屬性。spring

2.實例:BeanNameUrlHandlerMapping後端

創建springMVC_03_handlerMappingsweb項目,並導入相關jar包。服務器

步驟一:創建後端控制器MessageController.java,代碼以下:mvc

  1. package com.asm;
    //...省略導入的相關類
    public class MessageController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
    ModelAndView mav = new ModelAndView("message");
    mav.addObject("message", "您好!spring MVC");
    return mav;
    }
    }

     

步驟二:配置web.xml,代碼以下:app

  1. "1.0" encoding="UTF-8"?>
    "2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
    spmvc
    class>
    org.springframework.web.servlet.DispatcherServlet
    
    class>
    1
    
    
    spmvc
    *.do

     

步驟三:配置spmvc-servlet.xml,代碼以下:jsp

  1. "1.0" encoding="UTF-8"?>
    "http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    "viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    "prefix" value="/WEB-INF/page/" />
    "suffix" value=".jsp" />
    
    "/message.do" class="com.asm.MessageController">

     

步驟四:在WEB-INF/page目錄下創建message.jsp,主要代碼以下:測試

  1. <body>
    
    Message:${message}
    
    body>

     

步驟五:啓動服務器,輸入…/message.do訪問測試。

更多資料歡迎球球2042849237  

簡析執行過程

(1)啓動服務器後,當咱們向服務器發送message.do請求時,首先被在web.xml中配置的前端控制器DispatcherServlet攔截到。

(2)前端控制器把此請求轉交給後端控制器,下面分析轉交過程:當在spmvc-servlet.xml中查找能執行message.do請求的映射處理器時,發現沒有能處理此請求的映射處理器,這時便使用默認的映射處理器BeanNameUrlHandlerMapping:This is the default implementation used by the DispatcherServlet, along with DefaultAnnotationHandlerMapping (on Java 5 and higher). 咱們還需注意:這種後端控制器的bean Name必須以「/」開頭,而且要結合DispatcherServlet的映射配置。同時beanName支持通配符配置。好比若是配置: 時,當訪問messasge.do時也能夠成功訪問到MessageController類。

(3)BeanNameUrlHandlerMapping處理器,會查找在spring容器中是否在名爲「message.do」的bean實例。當查找到此實例後,則把此bean做爲處理此請求的後端控制器。同時把自身加到映射處理器鏈上,並向處理器鏈傳遞此請求。

(4)後端控制器進行處理,並返回視圖。

相關文章
相關標籤/搜索