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

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

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

    設計java

    j2ee輕量級框架,IMVC,IORM && web網絡游戲

    IMVC 核心接口介紹

        IMVC(InstantMVC簡稱)有幾個比較核心的接口,通過對這幾個接口的了解,可以更深入的了解IMVC到核心機制。
    1.IAction接口
       action是整個MVC的核心,如果了解struts或者webwork等MVC框架的朋友應該 知道,action是一個用戶處理模塊,當MVC容器接受到一個請求的時候,他會通過一定的方法獲得一個相應的action類,然后執(zhí)行action類中 相應的方法,最后返回一個視圖給客戶端,這就是最普通的mvc框架的流程。和其他框架的action類似,IMVC的action接口也有一個核心方法, 如下
    public interface IAction {
        
    /**
         * 屬性介紹:驗證器,放入Map value 的key
         
    */
        
    public static final String MVC_STATIC_validation="__validation";
        
    /**
         * 屬性介紹:文件上傳 Map value中的key
         
    */
        
    public static final String MVC_STATIC_createUpload="__createUpload";
        
    /**
         * 屬性介紹:這是編輯器
         
    */
        
    public static final String MVC_STATIC_editor="__editor";
        
    /**
         * 方法說明:action的核心方法
    & nbsp;    * 
    < span style="color: #808080;">@param object 如果是post方法,object就 是該action對應的form,如果是get方法并且配置get方法沒有form
         * 那么這里就是null,如果配置get方法也是有form的,這里也是form
         * 
    & nbsp;    * 
    < span style="color: #808080;">@param value  一個map,在 action中添加內容到view都往這里添加
         * 
    @return 
         * String
         
    */
        
    public View execute(Object object,Value value);
    }
    前 面三個變量這里暫時不說,我們來關注最后一個方法,execute,任何action都需要實現這個接口,同時也就是說必須在action中有這個方法。 這個方法有兩個傳入變量Object和Value,第一個是想要的formBean,如果是get方法并且沒有配置get方法設置form,那么這個時候 就是null,如果是非get方法,而且還傳入了參數,那么IMVC會自動封裝相應的form傳入到這個。第二個Value參數,Value也是一個很核 心的接口。在IMVC中有ValueImpl類來實現。

    Value 接口:
    public interface Value {
        
    public String getString(String key);
        
    public String[] getArray(String key);
        
    public void setObject(String key,Object value);
        
    public Object getObject(String key);
    }

    ValueImpl 類:
    public final class ValueImpl extends HashMap  implements Map,Value,InstantValue{
        
    //InstantValue
        public void setArray(String key ,String[] arr){
            
    super.put(key, arr);
        }
        
    //user Value
        public String[] getArray(String key) {
            
    return (String[])super.get(key);
        }
        
    public Object getObject(String key) {
            
    return super.get(key);
        }
        
    public String getString(String key) {
            Object o
    =super.get(key);
            
    if(o==null){
                
    return null;
            }
            
    if(o instanceof String[]){
                
    return ((String[])o)[0];
            }
    else{
                
    return null;
            }
        }
        
    public void setObject(String key, Object value) {
            
    super.put(key, value);
        }
     
    // 以下實現clone。。提供性能
        private ValueImpl cloneBase(){
            ValueImpl vimpl
    =(ValueImpl) super.clone();
            vimpl.clear();
            
    return vimpl;
        }
        
    public static ValueImpl valueImpl=new ValueImpl();
        
    public static ValueImpl cloneSelf(){
            
    return valueImpl.cloneBase();
        }
    }
    這個類也相當簡單,我們看第一句:
    public final class ValueImpl extends HashMap  implements Map,Value,InstantValue
    說 明這個類 繼承了HashMap,實現了Map,Value,InstantValue 三個接口。這三個接口其實就是三個權限版本,比如Value是用 戶操作權限,我們看到在action中傳入的是Value,但是在IMVC內部操作的時候是把ValueImpl類轉換為InstantValue借口的

    InstantValue 接口:
    public interface InstantValue {
        
    public void setArray(String key,String[] value);
    }
    這個幾口只有一個方法,這個方法是不會暴露給用戶的,是提供IMVC內部設值用的。
    下面還有一個攔截器接口
    IInerceptor 攔截器接口:
    public interface IInterceptor {
        
    public void execute(HttpServletRequest request,HttpServletResponse response,Value value);
    }
    這個接口也相當簡單,只有一個方法,傳入request和response參數,同時還有一個Value參數,這個Value上面已經說過,是一個用戶操作的數據接口。

    整個IMVC流程圖簡單來說如下:


       首先,請求來了后,IMVC會創(chuàng)建一個ValueImp轉換為Value傳給前攔截器(如果沒有設 置就不用),攔截器操作完畢,在把這個ValueImp轉換為InstantValue接口傳給IMVC內部操作,操作完畢接著把它轉化為Value接口 供用戶Action操作,最后執(zhí)行后攔截器,執(zhí)行完畢轉換為Map借口供模板引擎渲染試圖。
        一個ValueImp要轉換為三種權限接口,所以他的實現就要implements 三個接口。



    --InstantMVC:j2ee輕量級mvc框架

    posted on 2008-06-10 16:30 剎那 閱讀(429) 評論(0)  編輯  收藏 所屬分類: 我的j2ee輕量級框架

    主站蜘蛛池模板: 91免费福利精品国产| 免费一区二区无码视频在线播放 | 国产亚洲精品影视在线| 四虎影视在线影院在线观看免费视频| 亚洲一级片免费看| 成在线人直播免费视频| 国产三级免费观看| 牛牛在线精品免费视频观看| 亚洲国产综合人成综合网站| 国产免费人成视频在线播放播| 亚洲一区二区三区国产精品| 一区二区三区视频免费观看| 狠狠综合久久综合88亚洲| 毛片在线播放免费观看| 久久久久亚洲av无码专区导航 | 国产卡二卡三卡四卡免费网址| 亚洲午夜久久久精品电影院| 青青青国产在线观看免费网站| 亚洲日本乱码一区二区在线二产线| 四虎影视在线影院在线观看免费视频 | 亚洲精品午夜无码电影网| 一级毛片完整版免费播放一区| 亚洲国产香蕉人人爽成AV片久久 | 亚洲精品WWW久久久久久 | 亚洲午夜在线一区| 免费电影在线观看网站| 亚洲国产精品精华液| 国产午夜鲁丝片AV无码免费| 国产精品亚洲一区二区三区| 亚洲成aⅴ人片久青草影院| 黄页网站在线免费观看| 久久久久久A亚洲欧洲AV冫| 七色永久性tv网站免费看| 亚洲日本va午夜中文字幕一区| 67pao强力打造国产免费| 亚洲一级大黄大色毛片| 最近中文字幕完整免费视频ww| 亚洲男人第一av网站| 永久黄色免费网站| 亚洲中文字幕无码一去台湾| 亚洲国产一区视频|