<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 有貓相伴的日子 閱讀(2117) 評論(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開發技術網
    主站蜘蛛池模板: 亚洲日产无码中文字幕| 暖暖日本免费中文字幕| 最近中文字幕免费mv视频8| 久久亚洲国产精品五月天| 全黄大全大色全免费大片| 亚洲国产一区明星换脸| 一级毛片在线完整免费观看| 亚洲一区中文字幕在线电影网| 全免费a级毛片免费看| 亚洲自偷自偷精品| xxxx日本免费| 亚洲熟妇无码八V在线播放| 岛国大片免费在线观看| 亚洲a无码综合a国产av中文| 国产伦精品一区二区三区免费下载| 国产成人精品久久亚洲高清不卡| 内射无码专区久久亚洲| 中文字幕免费在线播放| 亚洲av无码专区在线播放| 一级毛片在线观看免费| 亚洲中文久久精品无码1| 女人毛片a级大学毛片免费| 国产AV日韩A∨亚洲AV电影 | 亚洲国产美女福利直播秀一区二区 | 中文字幕专区在线亚洲| 免费看一级一级人妻片| 中文字幕亚洲一区二区三区 | 亚洲制服丝袜第一页| 免费看的一级毛片| jizz免费在线观看| 亚洲熟妇色自偷自拍另类| 成人免费一区二区无码视频| 高潮毛片无遮挡高清免费视频| 亚洲综合精品香蕉久久网| 免费视频爱爱太爽了| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲中久无码永久在线观看同| 免费国产黄网站在线观看视频 | 久久精品国产亚洲av麻豆图片| 国产免费av一区二区三区| 无码国产精品一区二区免费模式|