小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Struts第一天

 liuyang_inf 2014-08-26

今天,吳老給我們講了Struts的第一節(jié)課,感覺還是不錯(cuò)的,順便總結(jié)下!

Struts的簡(jiǎn)介

Struts是建立在MVC框架上面的更深層的封裝,要是說到MVC就要提下什么是MVC了!

MVC是模型二,也是一個(gè)設(shè)計(jì)模式,M代表了Model 模型層,View是視圖層 Control 控制器

而在我們前段時(shí)間所做的網(wǎng)上書城項(xiàng)目,就是Struts的一個(gè)雛形,如果,那個(gè)框架的原理知道了,我想Struts對(duì)你來說也是很簡(jiǎn)單的!那么,唯一幾點(diǎn)不同的呢!

1.以前我們所寫的路徑映射文件是在一個(gè)txt文件里面的,而現(xiàn)在把它放到了xml文檔里面來了,我想在這里我就不再說xml文檔對(duì)于我們來說有什么優(yōu)勢(shì)了吧!

2.出現(xiàn)了formbean替代了我們以前所寫的vo對(duì)象了,而且,struts在這里也為我們封裝了form對(duì)象,也就是說vo對(duì)象的所有值我們不用去管,只要我們的配置文件寫對(duì)了,那么我們的formbean對(duì)象會(huì)自動(dòng)的封裝。

3.出現(xiàn)了action拆分了service,以前我們的獲取數(shù)據(jù)和操作業(yè)務(wù)都是在service里面來做的,但是我們現(xiàn)在要改變一個(gè)觀念,就是我們不能在action里面寫業(yè)務(wù)了,業(yè)務(wù)要提取出來放到service里面來,action的職責(zé)就是傳輸數(shù)據(jù)的,當(dāng)然我們的form對(duì)象也只能傳到service,不能將form對(duì)象傳到我們的持久層。這也就是一個(gè)典型的失血模型了,業(yè)務(wù)對(duì)象只做業(yè)務(wù),實(shí)體對(duì)象只有屬性和get、set方法。

那么,我們來看看我們的struts的核心配置文件吧

struts-config.xml介紹

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "
http://struts./dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans>
   <form-bean name="login" type="com.lovo.form.LoginForm"> name隨便起個(gè)名字,type是指具體是那個(gè)form類

   </form-bean>
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings>
   <action path="/login" type="com.lovo.action.LoginAction" name="login" scope="request">

   path是請(qǐng)求路徑,type是指具體的哪個(gè)action,name是指關(guān)聯(lián)那個(gè)form對(duì)象,scope是指作用域的范圍
    <forward name="success" path="/index.jsp"></forward>
    <forward name="error" path="/login.jsp"></forward>

    name是指,action所返回的name字符串,path是指要跳轉(zhuǎn)的頁面
   </action>
  </action-mappings>
  <message-resources parameter="com.lovo.struts.ApplicationResources" /> 國際化文件
</struts-config>

還有一個(gè)重要的東西,就是Struts的執(zhí)行流程,這個(gè)如果你想了解Struts的實(shí)現(xiàn)機(jī)制的話,我想這個(gè)東西你是必須知道的!

那么,我們來看下,Struts的執(zhí)行步驟,它的執(zhí)行過程又是如何?

1.web容器加載web.xml文件,并把Struts-config對(duì)象加載到內(nèi)存中。

2.所有形如*.do的請(qǐng)求(根據(jù)web.xml中的相關(guān)配置)將提交給ActionServlet,最終將調(diào)用其process方法。process方法的主要工作
有三:根據(jù)請(qǐng)求信息獲知所請(qǐng)求的模塊名稱,從ServletContext中獲得與請(qǐng)求模塊對(duì)應(yīng)的的ModuleConfig對(duì)象,并存儲(chǔ)到request中。
根據(jù)模塊信息獲得相應(yīng)的RequestProcessor對(duì)象,一個(gè)模塊對(duì)應(yīng)一個(gè)RequestProcessor對(duì)象,RequestProcessor對(duì)象將關(guān)聯(lián)與所屬
模塊對(duì)應(yīng)的ModuleConfig對(duì)象。調(diào)用RequestProcessor對(duì)象的process方法,將request和response作為參數(shù)傳遞給它。

3.調(diào)用自己的 processPreprocess(request, response)方法,該方法不進(jìn)行任何操作,用于子類重寫擴(kuò)展其功能。
獲得與請(qǐng)求地址所匹配的ActionMapping對(duì)象,AcionMapping對(duì)象用于封裝一個(gè)特定acion的配置信息。
根據(jù)ActionMapping中的配置信息獲得Action對(duì)象和ActionForm對(duì)象(該對(duì)象將緩存到request或session中),并將表單數(shù)據(jù)填充到ActionForm中,
然后根據(jù)ActionMapping的配置決定是否驗(yàn)證ActionForm,如果驗(yàn)證,將調(diào)用ActionForm的validate方法,若其返回的ActionErros
對(duì)象中包含ActionMessage對(duì)象則表示驗(yàn)證失敗,將轉(zhuǎn)向action配置信息input屬性所指示的地址。如果ActionForm無需驗(yàn)證或驗(yàn)證
4.通過將創(chuàng)建并緩存與請(qǐng)求地址匹配的Action對(duì)象,將ActionMapping對(duì)象、ActionForm對(duì)象、request和response作為參數(shù)調(diào)用其
execute方法。根據(jù)Action對(duì)象的execute方法返回的ActionForward對(duì)象,將請(qǐng)求轉(zhuǎn)發(fā)或重定向到該ActionForward所封裝的地址。
應(yīng)該是這個(gè)樣子。參考資料來自網(wǎng)上!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多