莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          rails流程圖

          Posted on 2007-02-06 13:37 dennis 閱讀(449) 評論(0)  編輯  收藏 所屬分類: 動態語言

          讀R4R,才讀完第2章,前兩章沒什么新內容,算是復習吧

          rails的lifecycle:
          test3.jpg

          從瀏覽器發起一個請求的基本流程:

          A.server to dispatcher

          服務器通過你指定的路徑查找dispatcher,比如,你在apache配置:

          <VirtualHost www.r4rmusic.com>
          ServerName www.r4rmusic.com
          ServerAlias r4rmusic.com
          DocumentRoot "/usr/local/share/railsapps/r4rmusic/public/"
          </VirtualHost>

          服務器將在"/usr/local/share/railsapps/r4rmusic/public/下查找分發器,在rails應用下面有這么幾個文件就是:dispatch.cgi dispatch.fcgi dispatch.rb

          這幾個文件中的某個將被調用

          B.dispatcher to controller

          分發器將解析發起請求的URL,按照:

          1.controller的名稱

          2.action名稱

          3.請求id值

          來尋找相應的controller的action,并執行.當然,你可以通過編輯config下面的routes.rb來定義自己的路由規則

          C.performance of a controller action

          當相應的controller以及相應的action被找到并且執行,他們將可以訪問:

          1.CGI數據,form提交的數據

          2.controller的session信息,內建的session方法

          本質上rails是把業務邏輯放在controller的action里面,也就是沒有我們在J2EE中所謂的業務邏輯層.當業務邏輯或者說action較多時,你的controller文件不可避免的變的很長...在維護性和可讀性也許會帶來問題,當然,細分controller是更好的方法

          主站蜘蛛池模板: 桐柏县| 砚山县| 德阳市| 咸丰县| 天等县| 兴化市| 朝阳区| 岳西县| 秦皇岛市| 台山市| 哈密市| 新竹市| 昌黎县| 江西省| 乌拉特前旗| 崇州市| 衡阳市| 竹溪县| 延津县| 连城县| 东城区| 类乌齐县| 大同县| 志丹县| 乐业县| 台前县| 馆陶县| 溆浦县| 镇江市| 盐边县| 清徐县| 临湘市| 永登县| 监利县| 都匀市| 阿图什市| 宜阳县| 永寿县| 且末县| 平遥县| 栾城县|