<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0
    SpringMVC框架是細膩點,這是她的優點也是缺點。
    Spring 角色:
    1、核心控制器DispatcherServlet
           它類似于struts中的ActionServlet,WebWork中的ServletDispacher.
    負責攔截主求,將請求參數封裝成對象,然后根據處理器映射策略,將請求轉發給不同的業務控制器。DispatcherServlet應該配置成load-on-startup Servlet方式,它不僅負責處理請求,而且負責創建ApplicationContext,核心控制器啟動時加載,在web.xml配置如下。
      <servlet>
        
    <servlet-name>firstmvc</servlet-name>
        
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        
    <load-on-startup>1</load-on-startup>
      
    </servlet>
      
    <servlet-mapping>
        
    <servlet-name>firstmvc</servlet-name>
        
    <url-pattern>*.do</url-pattern>
      
    </servlet-mapping>
    如上面配置,DispatcherServlet應對的配置文件是firstmvc-servlet.xml文件。

    2、業務控制器
           不管直接實現還是繼承實現類,Spring的業務控制器都必須實現Controller接口,Spring提供了多種控制器實現的接口。這個業務控制器等同于Struts中的Action類,但兩者實現方法不一樣.Struts使用了類繼承,Spring使用了接口。并提供了以下實現類
    AbstractController  功以有限通常不支持使用
    ParameterizableViewController :與上面那個類相似,但可以返回視圖名,而不是硬編碼的視圖名
    UrlFilenameViewController : 根據URL并獲取請求的文件名
    ServletForwardingController: 將請求轉發給某Servlet。
    SimpleFormController : 用于處理表單參數的控制器
    MultiActionController :  多動作控制器
    AbstractCommandController :命令控制器

    在這里詳說MultiActionController,其它控制器自己找資料
     MultiActionController有兩種使用方式
    1、繼承MultiActionController,并在子類中指定MethodNameResolver解析的方法,在這種情況下,不需要配置Delegate參數
    2、不繼承MultiActionController,將動作定義在代理對象里,由代理調用Resolver解析的方法。
    MethodNameResolver主要有如下三種實現,需要的時候可以也可以自己提供
    1、ParameterMethodNameResolver,解析特定參數值,將參數值作為方法名。
    2、InternalPathMethodNameResolver:從請求路徑中解析文件名作為方法名。
    3、PropertiesMethodNameResolver:使用自定義屬性對象,將請求的URL景射到方法名.
    firstmvc-servlet.xml配置如下:
        <!-- 動作代理 -->
        
    <bean id="paramResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
            
    <property name="paramName">
                
    <value>method</value>
            
    </property>
        
    </bean>
        
    <bean name="/paramMultiController.do" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">
            
    <property name="methodNameResolver">
                
    <ref bean="paramResolver"/>
            
    </property>
            
    <property name="delegate">
                
    <ref bean="sampleDelegate"/>
            
    </property>
        
    </bean>
        
    <bean id="sampleDelegate" class="com.mvc.SampleDelegate" />




    3、處理影射  
          控制器根據該策略,將請求轉發給對應的業務控制器。通常有下面兩種策略
          BeanNameUrlHandlerMapping 根據請求名轉發
          SimpleUrlHandlerMapping 根據定義轉發請求
          HandlerMapping 的基本功能是將請求傳遞到HandlerExecutionChain。BeanNameUrlHandlerMapping 是一個簡單而強大的控制映射器,它將HTTP的請求映射轉發給context中同名的bean。firstmvc-servlet.xml文件如下
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
        
    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
        
    <bean name="/hello.do" class="com.mvc.HelloAction">
            
    <property name="jsp">
                
    <value>WEB-INF/jsp/hello.jsp</value>
            
    </property>
        
    </bean>
    </beans>
    HelloAction.java代碼如下:
    package com.mvc;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;

    public class HelloAction implements Controller{
        
        
    public String jsp;
        
    public void setJsp(String jsp){
            
    this.jsp=jsp;
        }
        
        
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
            
            
    return new ModelAndView(jsp,"model",null); 
            
        }
        
    }
    SimpleUrlHandlerMapping 是功能強大的控制器映射,但不喜歡用,
    用的時候再找資料吧。。。。


    4、視圖和視圖解析
    5、模型
         Spring根本沒提供專門的模型角色,Spring的Model對象由普通map對象充當,Key不能為空,值可以為空
    6、Command對象
         Command對象是普通的java對象,用于封裝用記請求參數     

    posted on 2007-10-04 15:25 有貓相伴的日子 閱讀(2116) 評論(2)  編輯  收藏 所屬分類: spring

    評論:
    # re: SpringMVC 2013-08-13 17:58 | zmh
    很好  回復  更多評論
      
    # re: SpringMVC 2015-06-19 10:04 | zuidaima
    spring mvc demo教程源代碼下載:http://zuidaima.com/share/kspringmvc-p1-s1.htm  回復  更多評論
      
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 九月丁香婷婷亚洲综合色| 亚洲精品无码少妇30P| 国产午夜免费福利红片| 午夜老司机永久免费看片| 黄色网页免费观看| 日本亚洲精品色婷婷在线影院| 国产产在线精品亚洲AAVV| 亚洲系列国产精品制服丝袜第| 免费国产99久久久香蕉| 精品在线视频免费| 亚洲欧美国产欧美色欲| 亚洲精品国产第1页| 久久久亚洲精品视频| 亚洲日韩欧洲无码av夜夜摸| 五月天婷亚洲天综合网精品偷| 一级特级aaaa毛片免费观看| 最近中文字幕无免费| 亚洲国产精品人人做人人爽| 免费观看黄色的网站| 日本xxxx色视频在线观看免费| 亚洲制服丝袜一区二区三区| 久久久久久亚洲AV无码专区| 国产亚洲无线码一区二区| 国产成人精品日本亚洲专区 | 蜜桃成人无码区免费视频网站| 色在线亚洲视频www| 亚洲高清视频在线播放| 久久亚洲AV成人无码国产| 久久国产精品亚洲综合| 亚洲精品无码成人AAA片| 国产亚洲精品成人AA片新蒲金| 成人免费福利视频| 亚洲一级毛片免费观看| 国产精品99精品久久免费| 最新国产乱人伦偷精品免费网站 | 三年片免费高清版 | 一级特黄特色的免费大片视频| 久久狠狠高潮亚洲精品| 一二三四影视在线看片免费| 亚洲午夜精品久久久久久app | 日本高清免费观看|