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

正文內(nèi)容

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

2024-12-16 03:41 本頁面
 

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