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

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

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

    本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
    隨筆-230  評論-230  文章-8  trackbacks-0
    SpringMVC框架是細(xì)膩點(diǎn),這是她的優(yōu)點(diǎn)也是缺點(diǎn)。
    Spring 角色:
    1、核心控制器DispatcherServlet
           它類似于struts中的ActionServlet,WebWork中的ServletDispacher.
    負(fù)責(zé)攔截主求,將請求參數(shù)封裝成對象,然后根據(jù)處理器映射策略,將請求轉(zhuǎn)發(fā)給不同的業(yè)務(wù)控制器。DispatcherServlet應(yīng)該配置成load-on-startup Servlet方式,它不僅負(fù)責(zé)處理請求,而且負(fù)責(zé)創(chuàng)建ApplicationContext,核心控制器啟動(dòng)時(shí)加載,在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應(yīng)對的配置文件是firstmvc-servlet.xml文件。

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

    在這里詳說MultiActionController,其它控制器自己找資料
     MultiActionController有兩種使用方式
    1、繼承MultiActionController,并在子類中指定MethodNameResolver解析的方法,在這種情況下,不需要配置Delegate參數(shù)
    2、不繼承MultiActionController,將動(dòng)作定義在代理對象里,由代理調(diào)用Resolver解析的方法。
    MethodNameResolver主要有如下三種實(shí)現(xiàn),需要的時(shí)候可以也可以自己提供
    1、ParameterMethodNameResolver,解析特定參數(shù)值,將參數(shù)值作為方法名。
    2、InternalPathMethodNameResolver:從請求路徑中解析文件名作為方法名。
    3、PropertiesMethodNameResolver:使用自定義屬性對象,將請求的URL景射到方法名.
    firstmvc-servlet.xml配置如下:
        <!-- 動(dòng)作代理 -->
        
    <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、處理影射  
          控制器根據(jù)該策略,將請求轉(zhuǎn)發(fā)給對應(yīng)的業(yè)務(wù)控制器。通常有下面兩種策略
          BeanNameUrlHandlerMapping 根據(jù)請求名轉(zhuǎn)發(fā)
          SimpleUrlHandlerMapping 根據(jù)定義轉(zhuǎn)發(fā)請求
          HandlerMapping 的基本功能是將請求傳遞到HandlerExecutionChain。BeanNameUrlHandlerMapping 是一個(gè)簡單而強(qiáng)大的控制映射器,它將HTTP的請求映射轉(zhuǎn)發(fā)給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 是功能強(qiáng)大的控制器映射,但不喜歡用,
    用的時(shí)候再找資料吧。。。。


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

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

    評論:
    # re: SpringMVC 2013-08-13 17:58 | zmh
    很好  回復(fù)  更多評論
      
    # re: SpringMVC 2015-06-19 10:04 | zuidaima
    spring mvc demo教程源代碼下載:http://zuidaima.com/share/kspringmvc-p1-s1.htm  回復(fù)  更多評論
      
    本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
    主站蜘蛛池模板: 成人久久久观看免费毛片| 亚洲一级毛片免费看| 黄色网址免费在线观看| 免费乱理伦在线播放| 久久久久免费精品国产| 亚洲成a人片在线观看精品| 爱情岛论坛网亚洲品质自拍| 亚洲视频免费一区| 国产亚洲综合视频| 亚洲视频欧洲视频| av在线亚洲欧洲日产一区二区| 91福利免费体验区观看区| 亚洲色图视频在线观看| 免费精品国产自产拍观看| 日本一区二区三区在线视频观看免费| 亚洲人成色77777| 午夜免费福利在线| 一个人免费视频观看在线www| 亚洲精品无码鲁网中文电影| 日本中文字幕免费高清视频| 78成人精品电影在线播放日韩精品电影一区亚洲 | 国产zzjjzzjj视频全免费| 久99久精品免费视频热77| 蜜芽亚洲av无码一区二区三区 | 亚洲一区二区三区香蕉| 在线观看无码的免费网站| 国产精品亚洲精品日韩电影| 亚洲视频免费播放| 国产亚洲精品看片在线观看| 无码成A毛片免费| 五月天婷婷精品免费视频| 亚洲国产高清国产拍精品| 亚洲女人影院想要爱| 国产免费变态视频网址网站| 2019中文字幕免费电影在线播放| 国产精品小视频免费无限app| 久久精品国产精品亚洲艾草网| 可以免费看黄的网站| 老司机69精品成免费视频| 国产va免费观看| 免费人成视频在线播放|