成心給自己 放個(gè)假,在宿舍里呆了兩天,沒(méi)事和她們逛逛街,到處走走。這本是在學(xué)校里很平常的事。可是只兩天我卻呆夠了,覺(jué)得還是加加班心理比較舒服。
mvc設(shè)計(jì)模式:
mvc是一種設(shè)計(jì)模式,他強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開(kāi)。mvc把應(yīng)用程序分成三個(gè)核心模塊:
模型、視圖和控制器,它們分別承擔(dān)不同任務(wù)。
視圖:
視圖是用戶(hù)看到并與之交互的界面。視圖向用戶(hù)顯示相關(guān)的數(shù)據(jù),并能接收用戶(hù)的輸入數(shù)據(jù),但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖可以向模型查詢(xún)業(yè)務(wù)狀態(tài),但不能改變模型。視圖還能接收模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶(hù)界面進(jìn)行同步更新。
模型:
模型是應(yīng)用程序的主體部分。模型時(shí)表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。
控制器:
控制器接受用戶(hù)的輸入并調(diào)用模型和視圖去完成用戶(hù)的需求。當(dāng)web用戶(hù)單擊web頁(yè)面中的提交按鈕來(lái)發(fā)送html表單時(shí),控制器接收請(qǐng)求并調(diào)用相應(yīng)的模型組件去處理請(qǐng)求,然后調(diào)用相應(yīng)的視圖來(lái)顯示模型返回的數(shù)據(jù)。
struts概述:
struts是一個(gè)基于sun j2ee平臺(tái)的mvc框架,主要是采用servlet和jsp技術(shù)來(lái)實(shí)現(xiàn)的。struts把servlet,jsp,自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開(kāi)發(fā)人員利用其進(jìn)行開(kāi)發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套mvc模式,極大的節(jié)省了時(shí)間,所以說(shuō)struts是一個(gè)非常不錯(cuò)的應(yīng)用框架。當(dāng)前struts只是1.1版。
學(xué)習(xí)struts框架主要部分:
- struts 控制器
- struts視圖
- struts配置
- 標(biāo)簽庫(kù)
- xml配置文件
ActionServlet類(lèi):
ActionServlet是mvc實(shí)現(xiàn)的command部分,它是這一框架的核心。ActionServlet(Command)創(chuàng)建并使用Action,ActionForm和ActionForward。使用struts-config.xml文件配置該Command。在創(chuàng)建web項(xiàng)目時(shí),您將擴(kuò)展Action和ActionForm來(lái)解決特定的問(wèn)題。文件struts-config.xml定義了ActionServlet如何使用這些擴(kuò)展的類(lèi)。
ActionServelet類(lèi)的優(yōu)點(diǎn):
- 應(yīng)用程序的整個(gè)邏輯流程都存儲(chǔ)在一個(gè)分層的文本文件中。這是的人們更容易察看和理解它,尤其是對(duì)于大型應(yīng)用程序而言。
- 網(wǎng)頁(yè)設(shè)計(jì)人員不必費(fèi)力地閱讀java代碼來(lái)理解應(yīng)用程序的流程。
- java開(kāi)發(fā)人員也不必在更改流程以后重新編譯代碼。
ActionForm類(lèi):
ActionForm維護(hù)web應(yīng)用程序的會(huì)話(huà)狀態(tài)。ActionForm是一個(gè)抽象類(lèi),必須為每個(gè)輸入表但模型創(chuàng)建類(lèi)的子類(lèi)。可以說(shuō)ActionForm表示的是由html表但攝制或更新的一般意義上的數(shù)據(jù)。
ActonForm類(lèi)調(diào)用:
- 檢查ActionForm是否存在;如果不存在,它將創(chuàng)建該類(lèi)的一個(gè)實(shí)例。
- struts將使用httpServletRequest中相應(yīng)的域設(shè)置ActionForm的狀態(tài)。沒(méi)有太多的request.getParameter()調(diào)用。
- struts框架在將ActiomForm傳遞給業(yè)務(wù)包裝Action之前將更新他的狀態(tài)。
- 在將它傳遞給Action類(lèi)之前,struts還會(huì)對(duì)ActionForm調(diào)用validate()方法進(jìn)行表單狀態(tài)驗(yàn)證。
Action類(lèi):
Action類(lèi)是業(yè)務(wù)邏輯的一個(gè)包裝。Action類(lèi)的用途是將HttpServletRequest轉(zhuǎn)換為業(yè)務(wù)邏輯。要使用Action,創(chuàng)建它的子類(lèi)并覆蓋execute()方法。
ActionForm與Action的聯(lián)系:
- struts-config.xml文件控制html表單請(qǐng)求與ActionForm只見(jiàn)的映射關(guān)系。
- 可將多個(gè)請(qǐng)求映射到ActionForm。
- ActionForm可跨多頁(yè)進(jìn)行映射,以執(zhí)行諸如向?qū)е?lèi)的操作。
配置struts應(yīng)用
主要的配置文件:
- web.xml文件以及它在web應(yīng)用中的作用,struts的啟動(dòng)配置。
- struts-config.xml文件,使用struts框架開(kāi)發(fā)配置。
配置Servlet
- <servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>org.apache.struts.action.ActionServlet
- </servlet-class>
- <init-param>
- <param-name>config</param-name>
- <param-value>/WEB-INF/struts-config.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- <servlet>
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
配置歡迎頁(yè)面:
- <welcome-file-list>
- <welcome-file>hello.jsp</welcome-file>
- </welcome-file-list>
配置標(biāo)簽庫(kù):
- <taglib>
- <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
- <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
- </taglib>
配置錯(cuò)誤處理頁(yè)面:
- <error-page>
- <exception-type>java.lang.ArithmeticException<exception-type>
- <location>/error/ExceptionPage</location>
- </error-page>
配置數(shù)據(jù)源:
- <data-sources>
- <data-source key="dataSource">
- <set-property property="driverClassName"value="driverClassName"/>
- <set-property property="url" value="url"/>
- <set-property property="password"value="password"/>
- </data-source>
- </data-sources>
- <data-sources>
- <!--configuration for commons BasicDataSource--">
- <data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="org.postgresql://localhost/mydatabase"/>
- <set-property property="username"value="me"/>
- <set-property property="password"value="test"/>
<set-property property="maxActive"value="10"/>
<set-property property="maxWait" value="5000"/>
- <set-property property="defaultAutoCommit"value="false"/>
- <set-property property="defaultReadOnly"value="false"/>
<set-property property="validationQuery"value="SELECT COUNT(*)/FROM market"/>
- </data-source>
- </data-sources>
使用數(shù)據(jù)源:
- dataSource=getDataSource(request);
- cnn=dataSource.getConnection();
- dataSourceA=getDataSource(request,"A");
- dataSourceB=getDataSource(request,"B");
posted on 2007-05-03 11:30
靜兒 閱讀(700)
評(píng)論(5) 編輯 收藏