重新探索自我

              客觀條件受制于人,并不足懼。重要的是,我們擁有選擇的自由,可以對現(xiàn)實(shí)環(huán)境積極回應(yīng),
              為生命負(fù)責(zé),為自己創(chuàng)造有利的機(jī)會,做一個“真正”操之在我的人!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            3 隨筆 :: 10 文章 :: 5 評論 :: 0 Trackbacks

           

          衡量一個MVC框架模式,主要通過三種web模式,本人認(rèn)為springMVC是一個很好的MVC

          模式,對模式的支持如下:

          1)派遣器模式

          Spring有一個統(tǒng)一集中的派遣器org.springFramework.Web.Servlet.DispatcherServlet,

          一般在web.XML中把所有的頁面請求都發(fā)送到該派遣器:

          <servlet>

            <servlet-name>countries</servlet-name>

            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

            <load-on-startup>2</load-on-startup>

          </servlet>

          <servlet-mapping>

            <servlet-name>countries</servlet-name>

            <url-pattern>*.htm</url-pattern>

          </servlet-mapping>

          2)控制器模式

          派遣器收到請求后,把不同的頁面派遣到不同的控制器進(jìn)行處理:

          <bean  id="urlMapping"

          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

              <property name="mappings">

                       <props>

                              <prop key="/home.htm">countriesController</prop>

                             <prop key="/notfound.htm">errorsController</prop>

          </props>

           </property>

          </bean>

          Spring有兩種MAPPING的機(jī)制,默認(rèn)為BeanNameUrlHandlerMapping,我們這里采用的是

          SimpleUrlHandlerMapping.

          3)攔截器模式

          在控制器處理前,我們可以將其攔截,進(jìn)行一些特殊或通用處理;攔截器可以選用Spring已經(jīng)實(shí)現(xiàn)的或我們自己實(shí)現(xiàn)的:

          <bean  id="urlMapping"

          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

                <property name="interceptors">

                       <list>

                              <ref local="localeChangeInterceptor"/>

                             <ref local="themeChangeInterceptor"/>

                              <ref local="copyInterceptor"/>

                       </list>

           </property>

          </bean>

           

           

           

          詳細(xì)介紹:

          分發(fā)器:Dispatcherservlet

          整個spring應(yīng)用只需要一個分發(fā)器

          <servlet>

                 <servlet-name>springapp</servlet-name>

                 <servlet-class>

                        org.springframework.web.servlet.DispatcherServlet

                 </servlet-class>

                 <load-on-startup>1</load-on-startup>

          </servlet>

          <!-- 映射的類型-->

          <servlet-mapping>

                     <servlet-name>springapp</servlet-name>

                     <url-pattern>*.do</url-pattern>

          </servlet-mapping>

          <servlet-mapping>

                     <servlet-name>springapp</servlet-name>

                     <url-pattern>*.html</url-pattern>

          </servlet-mapping>

           

          處理器映射

          一般對應(yīng)文件 servlet-name-servlet.xml,譬如 springapp-servlet.xml

          BeanNameUrlHandlerMapping

          一般使用SimpleUrlHandlerMapping

          <!--Request Mapping -->

                 <bean id="urlMapping"

                        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">                                         <property name="mappings">

                               <props>

                                      <prop key="login.do">LoginController</prop>   

                                      <prop key="login.html">LoginController</prop>               

                               </props>

                        </property>

                 </bean>

          控制器

          控制器的基礎(chǔ)接口 Controller ,包含方法

                 ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response)

          throws Exception;

          一般使用 return new ModelAndView(“”);也可以使用response.sendRedirect(“”).;

          AbstractController控制器繼承Controller類,增加譬如緩存、minetype等功能,處理多個動作,可以使用MultiActionController

          但如果要表單和數(shù)據(jù)對象的交互,我們就使用命令控制器

          一般使用AbstractCommandController帶參的形式,把相關(guān)的功能放在一個controller

          譬如用戶的添加、修改、刪除,就可以采用 usemanage.do?msg=add/modify/delete的形式

          SimpleFormController更為具體,但繼承它實(shí)現(xiàn)的OnSubmit的方法,不好用,譬如不能后退或者用于超鏈接等方式的地址直接響應(yīng)。

           

          處理器映射攔截器

          攔截器接口定義了三個方法,一個在處理器執(zhí)行前被調(diào)用,一個在處理器執(zhí)行后被調(diào)用,還有一個在整個請求完成后調(diào)用。譬如在在上午9點(diǎn)到下午6點(diǎn)重定向某個頁面,

          handlerMapping那個bean里面加入

          <property name=”interceptors”>

          <list>

                        <ref bean=”officeHourIntercptor”>

          </list>

          </property>

          然后一個處理Bean

          <bean id=” officeHourIntercptor”  class=” TimeBaseIntercptor”>

                 <property name=”openTime”> <value>9</value> </property>

                 <property name=”closeTime”> <value>18</value> </property>

          </bean>

           

           

          視圖與解析器

          Spring框架控制器返回的是ModelAndView,對于一般的JSPServlet,一般使用InternalResourceViewResolver,繼承于UrlBaseViewResovler

          <bean id="viewResolver"

                        class="org.springframework.web.servlet.view.InternalResourceViewResolver">

                        <property name="viewClass">

                               <value>org.springframework.web.servlet.view.JstlView</value>

                        </property>

                 </bean>

           

          當(dāng)一個web中使用不同類型的視圖技術(shù),使用ResourceBandleViewResolver

           

          使用本地化信息

          Spring框架大部分支持國際化,像web框架一樣,自動解析客戶端信息

          但我們可以自己手動獲取客戶端信息,并做需要的參數(shù)設(shè)計來改變屬性

          一般使用LocalChangeInterceptor修改本地化信息,這個像攔截器一樣使用

             <bean  id="localeChangeInterceptor"

                       class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">

                   <property name="paramName"><value>siteLanguage</value></property>

             </bean>

             <bean id="localeResolver"

          class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>

           

           

           

          posted on 2006-01-24 11:47 蔣利文 閱讀(2150) 評論(1)  編輯  收藏 所屬分類: 技術(shù)總結(jié)

          評論

          # re: SpringMVC框架學(xué)習(xí) 2015-06-19 10:06 zuidaima
          spring mvc demo教程源代碼下載:http://zuidaima.com/share/kspringmvc-p1-s1.htm  回復(fù)  更多評論
            

          主站蜘蛛池模板: 大渡口区| 信阳市| 游戏| 常德市| 孟州市| 济阳县| 剑河县| 温泉县| 莲花县| 全州县| 华坪县| 常山县| 德格县| 巧家县| 云龙县| 镇雄县| 富川| 彭水| 海原县| 右玉县| 精河县| 神木县| 阳朔县| 庐江县| 周至县| 汉川市| 绍兴市| 永泰县| 长武县| 资溪县| 绍兴县| 贵德县| 开平市| 疏附县| 沅江市| 福鼎市| 高唐县| 武定县| 华阴市| 宜兰县| 闵行区|