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

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

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

    posts - 9, comments - 4, trackbacks - 0, articles - 21
    Struts 學習筆記1 -Struts  Framework  概覽
    bruce 原創(chuàng)   更新:2002-11-20 16:22:28  版本: 2.0   

    struts開始于2000年3月,1.0在2001年7月發(fā)布。采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。MVC設計模式把一個系統(tǒng)分成3個相互協(xié)調(diào)的部分:

    Model(模型)
    模型用于封裝系統(tǒng)的狀態(tài)

    View(視圖)
    是模型的表示,提供用戶交互界面。當模型狀態(tài)發(fā)生變化時,視圖應該得到通知,以便更新視圖。

    Controller(控制器)
    接受來自視圖的請求,修改模型的狀態(tài)。

    在 基于JSP/Servlet的Web應用中要使用MVC模式,需要解決一個問題。我們知道,HTTP的底層是TCP/IP協(xié)議,而TCP/IP是一種無狀 態(tài)連接的協(xié)議,那么如果我們的模型發(fā)生了變化,就無從通知視圖。Struts采用了在“JSP規(guī)范 v0.92”中提到的MVC Model 2,這是對 MVC在Web上應用的修訂版。圖示如下:


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

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

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

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

    1.     <action    path="/logon"
    2.                type="org.apache.struts.webapp.example.LogonAction"
    3.                name="logonForm"
    4.               scope="request"
    5.               input="/logon.jsp">
    6.     </action>


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

    對于一個DB應用,
    • 一個商業(yè)邏輯Bean用于連接、查詢數(shù)據(jù)庫
    • 這個Bean返回結果到Action
    • Action將這些結果存儲到request的form bean中
    • Jsp顯示

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 免费人成视频在线| 国产2021精品视频免费播放| 啦啦啦在线免费视频| 亚洲精品永久www忘忧草| 四虎影视成人永久免费观看视频 | 亚洲久悠悠色悠在线播放| 无码人妻一区二区三区免费| 4480yy私人影院亚洲| 最刺激黄a大片免费网站| 亚洲日韩图片专区第1页| 最近2019免费中文字幕视频三| 亚洲国产精品国自产拍电影| 亚洲免费观看在线视频| 国内精品久久久久影院亚洲| 高清国语自产拍免费视频国产| 国产亚洲精品第一综合| 免费在线观看的黄色网址| 一级特黄a大片免费| 亚洲人成人一区二区三区| 嘿嘿嘿视频免费网站在线观看 | 亚洲中文字幕一二三四区苍井空| 91香蕉视频免费| 国产亚洲欧美在线观看| 国产偷国产偷亚洲清高动态图| 亚洲视频在线观看一区| 中文字幕人成无码免费视频| 亚洲国产精品嫩草影院| 成人免费视频网站www| 亚洲男人的天堂网站| 亚洲永久无码3D动漫一区| 99精品国产成人a∨免费看| 亚洲а∨天堂久久精品9966| 免费a在线观看播放| 日本免费污片中国特一级| 亚洲人成网站日本片| 亚洲高清视频一视频二视频三| 人人玩人人添人人澡免费| 亚洲熟妇无码AV| 亚洲v高清理论电影| 国产成人啪精品视频免费网| 久久黄色免费网站|