freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于jspmysql的網(wǎng)上書店設(shè)計與實現(xiàn)(編輯修改稿)

2024-12-16 03:41 本頁面
 

【文章內(nèi)容簡介】 開發(fā)工具。自從 1995年正式問世以來, Java的快速發(fā)展已經(jīng)讓整個 Web世界發(fā)生了翻天覆地的變化。在早期, Java比較多的用在瀏覽器上,插入到網(wǎng)頁中 (即是 Java Applet程序 ),成為最靈活、最強大的網(wǎng)頁多媒體的載體,但由于 Java 虛擬機相對于個人電腦而言,有占用資源大,安全性相對較差等缺點, Applet逐漸的被后起之秀 Flash所替代,但隨著 Java Servlet的推出, Java在電子商務(wù)方面開始嶄露頭角,最新的 JSP(Java Server Page)技術(shù)的推出,更是讓 Java成為基于 Web的應(yīng)用程序的首選開發(fā)工具,目前的 Java技術(shù)已成為所有大型電子商務(wù)項目的必然選擇。 Java 程序可以獲取網(wǎng)絡(luò)上結(jié)點的圖象、聲音、 HTML 文檔及文本等資源,并可以對獲得的資源進行處理。例如 Java程序可以每隔一定時間讀取某結(jié)點提供的最新數(shù)據(jù),并以圖表的形式顯示出來。在編程處理上,一般先生成一個 URL類型的對象,然后用 Java中相應(yīng)的方 法( method)獲取該對象所代表的資源。 Structs 簡介 簡單的來說, Structs 是一個基于 SUN J2EE 平臺 MVC 框架,很好的實現(xiàn)了 MVC 模式Structs。通過一個配置文件,就可以把整個系統(tǒng)的各個部分聯(lián)系起來。 隨著 JSP 與 Servlet 技術(shù)大量應(yīng)用于 Web 為基礎(chǔ)的應(yīng)用程序, Java開發(fā)人員群體認(rèn)為應(yīng)該以較佳之模式以提升 Web應(yīng)用程序之可維護性與重新實用型。早期 JSP規(guī)格書中曾例舉兩種可行之 JSP應(yīng)用架構(gòu),分別為 Model1與 Model2。 在 Model1架構(gòu)中, JSP直接處理 Web瀏覽器送來之請求,并輔以 JavaBean處理應(yīng)用相關(guān)邏輯。 Model1架構(gòu)單純編寫比較容易,但在 Model1中 JSP可以同時肩負(fù) View與 Controller角色,兩類程序代碼有可能混雜而不易維護。而 Model2 中將 Servlet 納入架構(gòu)中扮演前端Controller角色,將 Web瀏覽器送出之前請求集中送至 Servlet。 Servlet可集中管理使用者登入,權(quán)限控制,多國語言轉(zhuǎn)型等前置處理,再視需求轉(zhuǎn)向給對應(yīng)之 JSP 處理。 Model2中采用了較佳之 MVC模式,但增加編寫復(fù)雜度。 Struts只是一個 MVC框架( Framework) ,用于快速開發(fā) Java Web應(yīng)用。 Struts實現(xiàn)的重點在 C(Controller),包括 ActionServlet/RequestProcessor和我們定制的 Action,也為V(View)提供了一系列定制標(biāo)簽( Custom Tag)。但 Struts 幾乎沒有涉及 M(Model),所以Struts可以采用 JAVA實現(xiàn)的任何形式的商業(yè)邏輯。 除此之外, Struts的優(yōu)點主要集中體現(xiàn)在兩個方面: Taglib和頁面導(dǎo)航。 Taglib是Struts的標(biāo)記庫,靈活動用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的 JSP開發(fā)者而言,除了使用 JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許 Struts是一個很好的起點。 關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。 Servlet 技術(shù)簡介 Servlet是使用 Java Servlet 應(yīng)用程序設(shè)計接口編寫的 Java 程 序。它源于請求 /響應(yīng)模式,如它可以接受來自客戶端瀏覽器的 Http請求,并產(chǎn)生一個響應(yīng),然后將這個響應(yīng)發(fā)送到客戶端。 Servlets有不少的優(yōu)點: 效率:使用傳統(tǒng)的 CGI 編程,對于每個 HTTP 請求都會打開一個新的進程,這樣將會帶來性能和擴展性的問題。使用 Servlets,由于 Java VM( Java 虛擬機)是一直運行的,因此開始一個 Servlet只會創(chuàng)建一個新的 Java線程而不是一個系統(tǒng)進程 功能強大 相對于傳統(tǒng)的 CGI,由于有著廣泛的 Java API 支持, Servlets 可做到傳統(tǒng)CGI很困難甚至不能做的事。 Servlets可輕松做到共享數(shù)據(jù)、維護信息、跟蹤 session等。 安全 Servlets 通過 Servlet 引擎在一個受到限制的環(huán)境下運行,與 Web 瀏覽器對applet的限制相似。這可以避免惡意 Servlets的破壞。 花費 對于個人或者流量不大的站點來說,有不少“免費”或者低價的 web服務(wù)器可供選擇。如果你已經(jīng)有一個 web服務(wù)器,你可以很容易加入 Servlet技術(shù)的支持,而且價格很便宜。 可移值性 Sevlet API得益于 Java平臺,這是一個相當(dāng)簡單的 API, 幾乎被所有的 Web瀏覽器支持,因此 Servlets可以輕松地在平臺間移植,而且通常都無需作任何的修改。 Servlet通過創(chuàng)建一個框架來擴展服務(wù)器的能力,以提供 Web上進行請求和響應(yīng)服務(wù)。 當(dāng)客戶機發(fā)送請求至服務(wù)器時,服務(wù)器可以將請求信息發(fā)送給 Servlet,并讓 Servlet建立起服務(wù)器返回給客戶機的響應(yīng)。當(dāng)啟動 Web服務(wù)器或客戶機第一次請求服務(wù)時,可以自動裝入 Servlet。裝入后, Servlet 繼續(xù)運行直到其它客戶機發(fā)出請求。 Servlet 的功能涉及范圍很廣。 Struts 優(yōu)缺點 優(yōu)點有 : 1. 實現(xiàn) MVC模式,結(jié)構(gòu)清晰 ,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實現(xiàn) . 2. 有豐富的 tag可以用 ,Struts的標(biāo)記庫 (Taglib),如能靈活動用,則能大大提高開發(fā)效率。另外,就目前國內(nèi)的 JSP開發(fā)者而言,除了使用 JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許 Struts是一個很好的起點。 3. 頁面導(dǎo)航 .頁面導(dǎo)航將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個項目時,這種優(yōu)勢 體現(xiàn)得更加明顯。 4. 提供 Exception處理機制 . 5. 數(shù)據(jù)庫鏈接池管理 6. 支持 I18N 缺點 : 一、 轉(zhuǎn)到展示層時,需要配置 forward,每一次轉(zhuǎn)到展示層,相信大多數(shù)都是直接轉(zhuǎn)到 jsp,而涉及到轉(zhuǎn)向,需要配置 forward,如果有十個展示層的 jsp,需要配置十次 struts,而且還不包括有時候目錄、文件變更,需要重新修改 forward,注意,每次修改配置之后,要求重新部署整個項目,而 tomcate這樣的服務(wù)器,還必須重新啟動服務(wù)器,如果業(yè)務(wù)變更復(fù)雜頻繁的系統(tǒng),這樣的操作簡單不可想象?,F(xiàn)在就是這樣,幾十上百個人同時在線使用我們的系統(tǒng),大家可以想象一下,我的煩惱有多大。 二、 Struts 的 Action必需是 thread- safe方式,它僅僅允許一個實例去處理所有的請求。所以 action用到的所有的資源都必需統(tǒng)一同步,這個就引起了線程安全的問題。 三、 測試不方便 . Struts的每個 Action都同 Web層耦合在一起,這樣它的測試依賴于 Web容器,單元測試也很難實現(xiàn)。不過有一個 Junit的擴展工具 Struts TestCase可以實現(xiàn)它的單元測試。 四、 類型的轉(zhuǎn)換 . Struts的 FormBean把所有的數(shù)據(jù)都作為 String類型,它可以使用工具CommonsBeanutils進行類型轉(zhuǎn)化。但它的轉(zhuǎn)化都 是在 Class級別,而且轉(zhuǎn)化的類型是不可配置的。類型轉(zhuǎn)化時的錯誤信息返回給用戶也是非常困難的。 五、 對 Servlet的依賴性過強 . Struts處理 Action時必需要依賴 ServletRequest 和ServletResponse,所有它擺脫不了 Servlet容器。 六、 前端表達式語言方面 .Struts集成了 JSTL,所以它主要使用 JSTL的表達式語言來獲取數(shù)據(jù)。可是 JSTL的表達式語言在 Collection和索引屬性方面處理顯得很弱。 七、 對 Action執(zhí)行的控制困難 . Struts創(chuàng)建一個 Action,如果想控制它的執(zhí)行順序?qū)浅@щy。甚至你要重新去寫 Servlet來實現(xiàn)你的這個功能需求。 八、 對 Action 執(zhí)行前和后的處理 . Struts處理 Action的時候是基于 class的hierarchies,很難在 action處理前和后進行操作。 九、 對事件支持不夠 . 在 struts中,實際是一個表單 Form對應(yīng)一個 Action類 (或DispatchAction),換一句話說:在 Struts中實際是一個 表單只能對應(yīng)一個事件, struts這種事件方式稱為 application event, application event和 ponent event相比是一種粗粒度的事件。 Struts 的工作流程 下圖是 Struts 的工作流程,所有的請求都提交給 ActionServlet 來處理。 圖 3251 ActionServlet 是一個 FrontController,它是一個標(biāo)準(zhǔn)的 Servlet,它將 request 轉(zhuǎn)發(fā)給 RequestProcessor來處理, ActionMapping是 ActionConfig的子類,實質(zhì)上是對 ,從中可以取得所有的配置信息 RequestProcessor 根據(jù)提交過來的 url,如 *.do,從 ActionMapping 中得到相應(yīng)的ActionForn和 Action。然后將 request的參數(shù)對應(yīng)到 ActionForm中,進行 form驗證。如果驗證通過則調(diào)用 Action的 execute()方法來執(zhí)行 Action,最終返回 ActionFoward。 ActionFoward是對 mapping中一個 foward的包裝,對應(yīng)于一個 url ActionForm 使用了 ViewHelper 模式,是對 HTML 中 form 的一個封裝。其中包含有validate方法,用于驗證 form數(shù)據(jù)的有效性。 ActionForm是一個符合 JavaBean規(guī)范的類,所有的屬性都應(yīng)滿足 get 和 set 對應(yīng)。對于一些復(fù)雜的系統(tǒng),還可以采用 DynaActionForm來構(gòu)造動態(tài)的 Form,即通過預(yù)制參數(shù)來生成 Form。這樣可以更靈活的擴展程序。 ActionErrors是對錯誤信息的包裝,一旦在執(zhí)行 action或者 常,即可產(chǎn)生一個 ActionError并最終加入到 ActionErrors。在 Form驗證的過程中,如果有 Error發(fā)生,則會將頁面重新導(dǎo)向至輸入頁,并提示錯誤。 Action是用于執(zhí)行業(yè)務(wù)邏輯的 RequsestHandler。每個 Action都只建立一個 instance。Action 不是線程安全的,所以不應(yīng)該在 Action 中訪問特定資源。一般來說,應(yīng)改使用 Business Delegate 模式來對 Business tier進行訪問以解除耦合。 Struts提供了多種 Action供選擇使用。普通的 Action只能通過調(diào)用 execute 執(zhí)行一項任務(wù),而 DispatchAction 可以根據(jù)配置參數(shù)執(zhí)行,而不是僅進入 execute()函數(shù),這樣可以執(zhí)行多種任務(wù)。如 insert,update 等。 LookupDispatchAction 可以根據(jù)提交表單按鈕的名稱來執(zhí)行函數(shù)。 Hibernate 簡介 隨著計算機應(yīng)用軟件的發(fā)展,應(yīng)用程序逐漸由單層體系結(jié)構(gòu)發(fā)展為多層體系結(jié)構(gòu)。其中,三層結(jié)構(gòu)是目前典型的一種應(yīng)用軟件結(jié)構(gòu),如圖 1左。 圖 1 表述層:提供與用戶交互的界面,如 GUI(圖形用戶界面), web頁面等; 業(yè)務(wù)邏輯層:負(fù)責(zé)各種業(yè)務(wù)邏輯,直接訪問數(shù)據(jù)庫,提供對業(yè)務(wù)數(shù)據(jù)的保存、更新、刪除和查詢操作; 數(shù)據(jù)庫層:負(fù)責(zé)存放管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù) 三層結(jié)構(gòu)的特點是:所有下層向上層提供調(diào)用的接口,具體實現(xiàn)細(xì)節(jié)對上層透明。層與層之間存在自上而下的依賴關(guān)系,即上層會訪問下層的 API,但下層不依賴于上層。 Hibernate顧名思義冬眠的意思,相信它的創(chuàng)造者的用意在于用這個工具將數(shù)據(jù)庫連接持久化層冬眠,關(guān)于 Hibernate網(wǎng)上爭論很多,有人說其為工具,有人說其為框架,我相信一個人有一個人理解問題的角度,只要處理問題的方法正確就可以了。 Hibernate是采用 ORM映射機制的持久層開發(fā)工具,它是 JAVA應(yīng)用和關(guān)系數(shù)據(jù)庫之前的橋梁,負(fù)責(zé) JAVA對象和關(guān)系數(shù)據(jù)之間的映射。內(nèi)部封裝了 JDBC訪問數(shù)據(jù)庫的操作,向上層應(yīng)用提供了面向?qū)ο蟮臄?shù)據(jù)庫訪問 API,在 JAVA應(yīng)用中使用到 Hibernate包含如下步驟。 Hibernate配置文件 3. 創(chuàng)建對象-關(guān)系-映射文件 HibernateAPI編寫訪問數(shù)據(jù)庫的代碼 如果想了解 Hibernate或者是要學(xué)習(xí)它的人必須要首先了解兩個比較重要的概念: POJO:在 Hibernate 中理解為數(shù)據(jù)庫表所對應(yīng)的 Domain Object,如果從子面上理解就是無格式普通 JAVA 對象,簡單的理解就是一個不包含邏輯代碼的值對象。從數(shù)據(jù)層面上看, POJO作為數(shù)據(jù)實體的對象化表現(xiàn)形式,也
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1