重新探索自我

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

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

           

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

          模式,對(duì)模式的支持如下:

          1)派遣器模式

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

          一般在web.XML中把所有的頁面請(qǐng)求都發(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)控制器模式

          派遣器收到請(qǐng)求后,把不同的頁面派遣到不同的控制器進(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

          整個(gè)spring應(yīng)用只需要一個(gè)分發(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>

           

          處理器映射

          一般對(duì)應(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等功能,處理多個(gè)動(dòng)作,可以使用MultiActionController

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

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

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

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

           

          處理器映射攔截器

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

          handlerMapping那個(gè)bean里面加入

          <property name=”interceptors”>

          <list>

                        <ref bean=”officeHourIntercptor”>

          </list>

          </property>

          然后一個(gè)處理Bean

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

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

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

          </bean>

           

           

          視圖與解析器

          Spring框架控制器返回的是ModelAndView,對(duì)于一般的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)一個(gè)web中使用不同類型的視圖技術(shù),使用ResourceBandleViewResolver

           

          使用本地化信息

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

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

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

             <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 蔣利文 閱讀(2149) 評(píng)論(1)  編輯  收藏 所屬分類: 技術(shù)總結(jié)

          評(píng)論

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

          主站蜘蛛池模板: 呼玛县| 嘉禾县| 梅州市| 台江县| 沂水县| 宜丰县| 吉首市| 运城市| 凌海市| 达州市| 凤山市| 湖州市| 拉萨市| 淮安市| 榆树市| 威海市| 北海市| 来凤县| 吉首市| 浦北县| 永定县| 襄汾县| 垣曲县| 刚察县| 仲巴县| 新化县| 临猗县| 通榆县| 河东区| 岑巩县| 翁源县| 外汇| 年辖:市辖区| 寿光市| 镇远县| 鄂托克旗| 遂宁市| 泽普县| 定远县| 安徽省| 汕头市|