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

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

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

    隨筆 - 71  文章 - 15  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    因為口渴,上帝創(chuàng)造了水;
    因為黑暗,上帝創(chuàng)造了火;
    因為我需要朋友,所以上帝讓你來到我身邊
    Click for Shaanxi xi'an, Shaanxi Forecast
    ╱◥█◣
      |田|田|
    ╬╬╬╬╬╬╬╬╬╬╬
    If only I have such a house!
    〖總在爬山 所以艱辛〗
    Email:myesjoy@yahoo.com.cn
    NickName:yesjoy
    MSN:myesjoy@hotmail.com
    QQ:150230516

    〖總在尋夢 所以苦痛〗

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    Hibernate在線

    Java友情

    Java認證

    linux經(jīng)典

    OA系統(tǒng)

    Spring在線

    Structs在線

    專家專欄

    企業(yè)信息化

    大型設(shè)備共享系統(tǒng)

    工作流

    工作流產(chǎn)品

    網(wǎng)上購書

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    Struts是一個Web Framework,struts開始于2000年3月,1.020017月發(fā)布。采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計模式的應(yīng)用構(gòu)架。MVC設(shè)計模式把一個系統(tǒng)分成3個相互協(xié)調(diào)的部分。struts frameworkMVC 模式的體現(xiàn),下面我們就從分別從模型、視圖、控制來看看struts的體系結(jié)構(gòu)(Architecture)。
    在基于JSP/Servlet的Web應(yīng)用中要使用MVC模式,需要解決一個問題。我們知道,HTTP的底層是TCP/IP協(xié)議,而TCP/IP是一種無狀態(tài)連接的協(xié)議,那么如果我們的模型發(fā)生了變化,就無從通知視圖。Struts采用了在“JSP規(guī)范 v0.92”中提到的MVC Model 2,這是對MVC在Web上應(yīng)用的修訂版。圖示如下:



    圖表 1:MVC Model 2(From Malcolm Davis)

    Model(模型)
    模型用于封裝系統(tǒng)的狀態(tài)。
    Struts中,系統(tǒng)模型的狀態(tài)主要由ActiomForm Bean和值對象體現(xiàn)。

    View(視圖)
    是模型的表示,提供用戶交互界面。當(dāng)模型狀態(tài)發(fā)生變化時,視圖應(yīng)該得到通知,以便更新視圖。
    首先,Struts提供了Javaorg. apache.struts.action.ActionFormJava開發(fā)者將該類細分來創(chuàng)建表單bean。在運行時,該bean有兩種用法:
             ―  當(dāng)JSP準備相關(guān)的HTML表單以進行顯示時,JSP將訪問該bean(它保存要放入表單中的值)。那些值是從業(yè)務(wù)邏輯或者是從先前的用戶輸入來提供的。
             ―  當(dāng)從Web瀏覽器中返回用戶輸入時,該bean將驗證并保存該輸入以供業(yè)務(wù)邏輯或(如果驗證失敗的話)后續(xù)重新顯示使用。
    其次,Struts提供了許多定制JSP標記,它們的使用簡單,但是它們在隱藏信息方面功能強大。例如,除了bean名稱和給定bean中每個段的名稱之外,頁面設(shè)計者不需要知道有關(guān)表單bean的更多信息。

    Controller(控制器)
    接受來自視圖的請求,修改模型的狀態(tài)。Struts framework中, Controller主要是ActionServlet,但是對于業(yè)務(wù)邏輯的操作則主要由Action、ActionMappingActionForward這幾個組件協(xié)調(diào)完成(也許這幾個組件,應(yīng)該劃分到模型中的業(yè)務(wù)邏輯一塊)。其中,Action扮演了真正的控制邏輯的實現(xiàn)者,而ActionMappingActionForward則指定了不同業(yè)務(wù)邏輯或流程的運行方向。

    下面從系統(tǒng)的角度簡單介紹一下Struts的工作原理:
    Struts應(yīng)用有3個主要部件:一個Servlet Controller(由Struts提供,org.apache.action.ActionServlet,以下簡稱controller)及負責(zé)具體業(yè)務(wù)處理的Action類(org.apache.action.Action的基類);Jsp頁面(viewer);應(yīng)用的業(yè)務(wù)邏輯封裝(model)。Struts 的中心控制器(ActionServlet)接受所有來自客戶端的請求,并根據(jù)系統(tǒng)的配置(Struts-config.xml)路由HTTP請求到其他Action對象(開發(fā)者實現(xiàn)的org.apache.struts.action.Action的子類),在這些Action對象中會進行所有的業(yè)務(wù)操作,比如插入一條訂單,修改一條記錄。處理完畢,由Struts的ActionServlet轉(zhuǎn)向到JSP頁面,將處理結(jié)果返回給客戶端。從這兒可以看出在Struts中ActionServlet擔(dān)任了重要的角色,由它控制所有的程序流轉(zhuǎn),是MVC三個相對獨立的部分協(xié)調(diào)工作,提供系統(tǒng)的完善功能。從下圖可見Struts是MVC Model 2的一個典型應(yīng)用。


    圖表 2:Struts工作機理(From Malcolm Davis)

    Struts啟動時,controller會讀入一個配置文件struts-config.xml,其中定義了前端請求的url與相應(yīng)的Action類及使用的Form類的映射關(guān)系,下面是一個struts-config.xml中的片斷:

       <action    path="/logon" 
                   type
    ="org.apache.struts.webapp.example.LogonAction" 
                   name
    ="logonForm" 
                  scope
    ="request" 
                  input
    ="/logon.jsp"> 
        
    </action> 
     

    從中可以看出,這個action會響應(yīng)url類似于/logon的請求(在后面我們會看到,這兒的實際的url要根據(jù)在web.xml中配置,比如可能為/logon.do/logon.other之類的帶后綴的url),負責(zé)處理這個請求的action類是org.apache.struts.webapp.example.LogonAction,使用的FormBeanlogonForm,scope界定了這個FormBean存在的范圍是只在當(dāng)前request中存在。
    struts
    會讀入這些設(shè)置,生成相應(yīng)的org.apache.action.ActionMapping對象。controller正是使用這些mapping來把HTTP請求轉(zhuǎn)發(fā)到應(yīng)用的actions。一個ActionMapping指定了

    • 一個請求URI
    • 對應(yīng)的類(Action的子類)
    • 需要的屬性


    對于一個DB應(yīng)用,

    • 一個商業(yè)邏輯Bean用于連接、查詢數(shù)據(jù)庫
    • 這個Bean返回結(jié)果到Action
    • Action將這些結(jié)果存儲到requestform bean
    • Jsp顯示

     轉(zhuǎn)自:http://www.javaresearch.org/article/showarticle.jsp?column=23&thread=256

    posted on 2006-03-05 11:52 ★yesjoy★ 閱讀(259) 評論(0)  編輯  收藏 所屬分類: Structs學(xué)習(xí)
    主站蜘蛛池模板: 亚洲一级黄色大片| 黄页网站免费观看| 精品久久久久久亚洲中文字幕| 亚洲av日韩av高潮潮喷无码| 国产免费人视频在线观看免费| 欧洲一级毛片免费| 在线观看片免费人成视频无码 | 搡女人免费免费视频观看| 亚洲精品日韩一区二区小说| 亚洲五月激情综合图片区| 中文字幕亚洲乱码熟女一区二区| 日本一道一区二区免费看| A在线观看免费网站大全| 久久青草免费91线频观看不卡| 一级成人毛片免费观看| 亚洲av无码成人精品区一本二本| 亚洲av无码专区在线| 亚洲综合亚洲国产尤物| 久久精品国产亚洲AV麻豆不卡| 国产亚洲自拍一区| 亚洲精品国产精品乱码不卞 | 2020久久精品亚洲热综合一本| 亚洲成AV人片天堂网无码| 国产专区一va亚洲v天堂| 四虎永久免费影院| 国产又大又黑又粗免费视频| 免费高清小黄站在线观看| 美女被cao免费看在线看网站| 69视频在线观看高清免费| 日本xxxx色视频在线观看免费| 国产成人无码区免费网站| 国产高清对白在线观看免费91| 无遮挡免费一区二区三区| 狠狠热精品免费观看| 天堂亚洲免费视频| 一级毛片免费一级直接观看| 日韩免费码中文在线观看| 精品乱子伦一区二区三区高清免费播放| 日韩在线观看免费| 精品多毛少妇人妻AV免费久久| 在线观看人成视频免费无遮挡 |