偶遇Spring MVC

  個人認爲Spring其核心是其IOC和AOP方面,對其SpirngMVC框架並不關注,我看好的是JSF,簡單易懂。但最近由於工作上需要,所以有需要對SpringMVC做個瞭解學習,因此,本次對SpirngMVC的相遇純屬偶遇....下面對其做見識性瞭解說明:

    SpingMVC的架構其實也很簡單,它通過一個共通的入門DispatcherServlet來接收所有的request,接下來根據request要求的頁面通過handler轉送給Controller處理,處理結果返回View給用戶,因此對SpringMVC來說,其核心爲DispatcherServlet。
    DispatcherServlet作爲一扇門,我們要使用這個門,首先得安裝上這個門,安裝在哪呢?沒錯,就安裝在web.xml這個大屋子,象其他servlet一樣,描述servlet的名字和類,再給他一個mapping描述對應映射的網頁。在下例中,我們給DispatcherServlet的起名爲SpringMVCDemo,並讓container知道所有.do結尾的request都丟給dispatcher。

     < servlet > 
         < servlet-name > SpringMVCDemo </ servlet-name > 
         < servlet-class > 
            org.springframework.web.servlet.DispatcherServlet
         </ servlet-class > 
         < load-on-startup > 1 </ load-on-startup > 
     </ servlet > 

     < servlet-mapping > 
         < servlet-name > SpringMVCDemo </ servlet-name > 
         < url-pattern > *.do </ url-pattern > 
     </ servlet-mapping >

    門安裝好了之後,我們需要定義門能打開的範圍,在哪定義呢?就在門的上面貼上一張“入門指導”,介紹從哪方面(hello.do)進門需要使用何種交通方式(springmvcController)進去,並定義該交通方式。 

     < bean  id ="urlMapping" 
        class
 ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > 
         < property  name ="mappings" > 
             < props > 
                 < prop  key ="/hello.do" > springmvcController </ prop > 
             </ props > 
         </ property > 
     </ bean > 

     <!--  SpringmvcController  --> 
     < bean  id ="springmvcController" 
        class
 ="org.improviser.webapp.controller.SpringmvcController" > 
     </ bean >

    接下來該渲染一下頁面了,下面爲渲染所有以 WEB-INF/pages/ 開頭並以.jsp結尾的頁面。 

     <!--  ViewSolver  --> 
     < bean  id ="viewResolver" 
        class
 ="org.springframework.web.servlet.view.InternalResourceViewResolver" > 
         < property  name ="viewClass" > 
             < value > org.springframework.web.servlet.view.JstlView </ value > 
         </ property > 
         < property  name ="prefix" > 
             < value > /WEB-INF/pages/ </ value > 
         </ property > 
         < property  name ="suffix" > 
             < value > .jsp </ value > 
         </ property > 
     </ bean >
   上面提到的SpringmvcController,現在該作個定義了,該類需要實現Controller接口。
public class SpringmvcController implements Controller {
    /** Logger for this class and subclasses */
    protected final Log logger = LogFactory.getLog(getClass());

    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        Map model = new HashMap();

        String str = "即興詩人";
        logger.info("returning hello view with " + currTime);
        model.put("coldice", str);

        return new ModelAndView("hello", "message", model);
    }
   編寫jsp測試頁面。
<html>
    <head>
        <title>Spring Application</title>
    </head>
    <body>
        <h1>
            <br />
            Hello 
            <c:out value="${message.coldice}" /></br>
            Spring MVC 測試成功!
        </h1>
    </body>
</html>

    現在對以上內容作個總結,正如上面所敘述,SpringMVC框架的處理過程機制如下圖所示,接收請求頁面,通過DispatcherServlet映射到相應規則處理,並找到相應的控制器,結果控制器處理後返回相應的頁面最後返回給用戶。
138199405_8b54d56b71_o.png

 

轉自http://www.blogjava.net/improviser/archive/2007/11/04/158025.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章