jsp209學生服務網站(ssh)-qrp_第1頁
jsp209學生服務網站(ssh)-qrp_第2頁
jsp209學生服務網站(ssh)-qrp_第3頁
jsp209學生服務網站(ssh)-qrp_第4頁
jsp209學生服務網站(ssh)-qrp_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

-第4章系統(tǒng)設計4.1系統(tǒng)功能設計系統(tǒng)設計是一個把軟件需求轉換成用軟件系統(tǒng)表示的過程。通過對目標系統(tǒng)的分析和研究,做出了多媒體技術與應用課程網站的總體規(guī)劃,這是全面開發(fā)系統(tǒng)的重要基礎。在對多媒體技術與應用課程網站全面分析調查的基礎上,制定出多媒體技術與應用課程網站的總體規(guī)劃。系統(tǒng)設計包括系統(tǒng)總體設計、系統(tǒng)詳細設計、系統(tǒng)數(shù)據庫設計、系統(tǒng)開發(fā)工具、開發(fā)技術和開發(fā)模式等。從數(shù)據流圖出發(fā),對數(shù)據流圖進行分析,得出的層次化的模塊結構圖.多媒體技術與應用課程網站前臺功能模塊圖如圖4-1所示:圖4-1前臺功能模塊圖多媒體技術與應用課程網站后臺功能模塊圖如圖4-2所示:圖4-2多媒體技術與應用課程網站后臺功能模塊圖4.2數(shù)據庫設計數(shù)據庫是本系統(tǒng)的核心和基礎。它設計的好壞直接影響著整個系統(tǒng)的質量。數(shù)據是一切系統(tǒng)設計的基礎,通俗地說,數(shù)據庫設計就像高樓大廈的根基一樣,如果設計的不合理、不完善,將在系統(tǒng)開發(fā)過程中,甚至到后期的系統(tǒng)維護、功能變更和功能擴充時,引起較多問題,嚴重時甚至要重新設計,重做大量已完成工作。4.2.1概念結構設計從數(shù)據需求分析中得出系統(tǒng)的實體屬性圖。(1)管理員實體屬性圖如圖4-3所示:圖4-3管理員實體屬性圖(2)課程介紹實體屬性圖如圖4-4所示:圖4-4班級實體屬性圖(3)學生信息實體屬性圖如圖4-5所示:圖4-5學生實體屬性圖(4)老師實體屬性圖如圖4-6所示:圖4-6老師實體屬性圖(5)課件信息實體屬性圖如圖4-7所示:圖4-7教學資料實體屬性圖(6)公告信息實體屬性圖如圖4-8所示:圖4-8公告信息實體屬性圖(7)信息交流實體屬性圖如圖4-9所示:圖4-9留言信息實體屬性圖(8)教學視頻實體屬性圖如圖4-10所示:圖4-10教學視頻信息實體屬性圖4.2.2數(shù)據庫表設計(1)管理員信息表(t_admin)管理員信息表主要用于系統(tǒng)管理員的信息,主要字段包括:編號、登陸賬號、登陸密碼。表4.13管理員信息表(t_admin)字段名數(shù)據類型字段描述長度主鍵userIdInt編號10√userNamevarchar登陸賬號50userPwvarchar登陸密碼50(2)課件信息表(t_doc)課件信息表主要用于老師發(fā)布的課件信息,主要字段包括:編號、課件標題、課件介紹等。表4.14課件信息表(t_doc)字段名數(shù)據類型字段描述長度主鍵IdInt編號10√titlevarchar標題50contentvarchar內容50fujianvarchar附件50fujianYuanshimingvarchar附件原始名50shijianvarchar發(fā)布時間50(3)教學視頻信息表(t_shipin)教學視頻信息表主要用于老師發(fā)布的教學視頻信息,主要字段包括:編號、視頻標題、附件等。表4.15教學視頻信息表(t_shipin)字段名數(shù)據類型字段描述長度主鍵IdInt編號10√titlevarchar標題50contentvarchar內容50fujianvarchar附件50fujianYuanshimingvarchar附件原始名50shijianvarchar發(fā)布時間50(4)學生信息表(t_stu)學生表主要存儲學生的基本信息,主要字段包括:ID、學號、姓名、性別、年齡、登錄帳號、登錄密碼等。表4.17學生信息表(t_stu)字段名數(shù)據類型字段描述長度主鍵idInt編號10√xuehaovarchar學號50name1varchar姓名50sexvarchar性別50ageInt年齡50loginpwvarchar登錄密碼50(6)老師信息表(t_tea)老師信息表主要存儲老師的基本信息,主要字段包括:ID、教師號、姓名、性別、年齡、登錄帳號、登錄密碼等。表4.18老師信息表(t_tea)字段名數(shù)據類型字段描述長度主鍵idIntID10√bianhaovarchar教師號50namevarchar姓名50sexvarchar性別50ageInt年齡50loginpwvarchar登錄密碼50(7)公告信息表(t_gonggao)公告信息表主要存儲管理員發(fā)布的公告信息,主要字段包括:ID、公告標題、公告內容、發(fā)布時間等。表4.19公告信息表(t_gonggao)字段名數(shù)據類型字段描述長度主鍵idIntID10√titlevarchar公告標題50contentvarchar公告內容5000shijianvarchar發(fā)布時間50(8)交流信息表(t_liuyan)公告信息表主要存儲學生直接相互交流的信息,主要字段包括:ID、留言標題、留言內容、留言時間等。表4.20留言信息表(t_liuyan)字段名數(shù)據類型字段描述長度主鍵idIntID10√titlevarchar公告標題50contentvarchar公告內容5000shijianvarchar發(fā)布時間504.3系統(tǒng)安全我們可以通過設定安全約束來保護網絡資源,這個安全約束決定何人被授權訪問那些由一系列的URL地址和HTTP協(xié)議描述的受保護的網絡資源。安全約束是很容易來通過JDK中的deploytool工具來設定。當一個未認證的用戶試圖訪問受保護的網絡資源時,系統(tǒng)進行身份認證,并且只有當你是具有訪問這些資源的資格的用戶時才能進行訪問。為了滿足企業(yè)中的不同安全級別和客戶對系統(tǒng)的需求,JSP/Servlet提供了三種基于web客戶端的驗證方式:(1)HTTP基本驗證(HTTPBasicAuthentication)HTTP基本驗證是HTP協(xié)議所支持的驗證機制。這種驗證機制利用用戶名和密碼作為驗證信息。Web客戶端從用戶獲取用戶名和密碼,然后傳遞給web服務器,web服務器在指定的區(qū)域(realm)中驗證用戶。但需要注意的是,這種驗證方法是不夠安全的。因為這種驗證方法并不對用戶密碼進行加密,而只是對密碼進行基本的baseb4的編碼。而且目標web服務器對用戶來說也是非驗證的。不能保證用戶訪問到的web服務器就是用戶希望訪問的??梢圆捎靡恍┌踩胧﹣砜朔@個弱點。例如在傳輸層上應用SSL或者在網絡層上使用IPSEC或VPN技術?;诒韱蔚尿炞C(Fonn-BasedAuthentication)基于表單的驗證使系統(tǒng)開發(fā)者可以自定義用戶的登錄頁面和報錯頁面。這種驗證方法與基本HTTP的驗證方法的唯一區(qū)別就在于它可以根據用戶的要求制定登錄和出錯頁面.基于表單的驗證方法同樣具有與基本HTI'P驗證類似的不安全的弱點。用戶在表單中填寫用戶名和密碼,而后密碼以明文形式在網路中傳遞,如果在網路的某一節(jié)點將此驗證請求截獲,再經過反編碼很容易就可以獲取用戶的密碼。因此在使用基本HTTP的驗證方式和基于表單的驗證方法時,要確定這兩種方式的弱點對你的應用是可接受的,為了消除明文傳輸?shù)拇_定,我們可以將基于表單的驗證建立在SSL層上。(2)基于客戶端證書的驗證(Client-CertificateAuthentication)基于客戶端證書的驗證方式要比上面兩種方式更安全。它通過HTTPS(HTIPoverSSL)來保證驗證的安全性。安全套接層((SecureSocketsLayer)為驗證過程提供了數(shù)據加密,服務器端認證,信息真實性等方面的安全保證。在此驗證方式中,客戶端必須提供一個公鑰證書,你可以把這個公鑰證書看作是你的數(shù)字護照。公鑰證書也稱數(shù)字證書,它是被稱作證書授權機構(CA)一一個被信任的組織頒發(fā)的。這個數(shù)字證書必須符合X509公鑰體系結構(PKI)的標準。如果確定這種驗證方式,Web服務器將使用客戶端提供的數(shù)字證書來驗證用戶的身份。正如上面所述,本系統(tǒng)采用的是基于表單的驗證。在網絡層使用可編程性安全方法。當僅使用聲明性安全方法不能完全滿足應用程序的安全要求時,利用可編程安全方法來滿足之。在HttpServletRequest接口中有以下幾種方法用于安全編程。 (1) getRemoteUser:獲得認證用戶的用戶名 (2) isUserInRole:確定用戶是否是屬于特定的安全角色 (3) getUserPrincipal:返回一個Java.security.Principal對象在數(shù)據層,應用組件總是請求連接到一個數(shù)據庫資源,作為這個連接的一部分,數(shù)據庫可能需要組件登錄才能提供有關資源。應用組件提供了組件管理登錄和容器管理登錄兩種方法來設計數(shù)據庫登錄。在組件管理登錄的方法中,組件代碼中包含處理登錄數(shù)據庫功能的代碼。在容器管理的登錄的方法中,組件讓容器來承擔配置和管理數(shù)據庫登錄的責任。容器通過用戶名和密碼來建立一個和數(shù)據庫實例的連接。4.4設計思想設計思想遵循以下幾點:1.采用B/S模式進行開發(fā),其優(yōu)點是后臺與前臺處理層次分明,而且符合眾多已經習慣網頁搜索方式的用戶。2.采用面向對象的開發(fā)與設計理念。運用面向對象技術的前提是對整體系統(tǒng)的高度和準確抽象,通過它可以保證系統(tǒng)良好的框架,進而帶來產品較強的穩(wěn)定性和運行效率。3.采用模塊化設計。模塊化設計要求將整個系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設計和實現(xiàn)過程。4.簡單方便的系統(tǒng)界面。設計簡單友好的系統(tǒng)界面,方便用戶較快的適應系統(tǒng)的操作。5.速度優(yōu)先原則。由于此工具最重要的評測標準就是速度,因此在設計過程中,具體過程盡量做到資源占用少,速度快。6.設計既要突出重點,又要細致周到。要符合設計需求,在有可能改進的地方進行擴充,使系統(tǒng)更適應用戶的需要。4.5界面要求界面設計目前已經成為評價軟件質量的一條重要指標,一個好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,JSP技術是用JAVA語言作為腳本語言的,JSP網頁為整個服務器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程序。創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。1.輸出設計輸出是由手機對輸入的原始信息進行加工處理,形成高質量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設計的主要職責和目標。系統(tǒng)設計的過程正好和實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計,這是因為輸出表格直接與使用者相聯(lián)系,設計的出發(fā)點應當是保證輸出表格方便地為使用者服務,正確及時反映和組成用于各部門的有用信息。輸出設計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。2.輸入設計輸入數(shù)據的收集和錄入是比較費事的,需要大量的人力和一定設備,并且容易出錯。如果輸入系統(tǒng)的數(shù)據有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數(shù)據的正確性對于整個系統(tǒng)質量的好壞是具有決定性意義的。輸入設計的原則有如下幾點:1)輸入量應保持在能滿足處理要求的最低限度。設計中可采用設置字段初值,下拉式數(shù)據窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數(shù)據準備時間也減少。2)輸入的準備及輸入過程應盡量容易進行,從而減少錯誤的發(fā)生。3)應盡量早對輸入數(shù)據進行檢查(盡量接近原數(shù)據發(fā)生點),以便使錯誤及時得到更正。4)輸入數(shù)據盡早地用其處理所需的形式被記錄,以避免數(shù)據由一種介質轉移到另一種介質時需要轉錄而可能發(fā)生的錯誤5)盡量避免線程死鎖情況,為了用戶體驗友好,所以手機與服務端的交互要在其它線程進行4.6性能要求本科協(xié)管理系統(tǒng)在管理權限上要嚴格進行控制,具體要求如下:1.要想管理本系統(tǒng)的電影信息,必須先要憑用戶名和密碼登陸到系統(tǒng)中,沒有權限的用戶不能通過任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據,以確保系統(tǒng)的嚴密性和安全性。2.在具體實現(xiàn)中設定不同權限,不同權限用戶登錄到系統(tǒng)后,不能越級操作,管理員可以使使用所有模塊;普通用戶用戶只能在線瀏覽信息,比如,活動交流,成果查看,技術指導等功能。1.各種記錄信息的完整性,信息記錄內容不能為空2.各種數(shù)據間相互聯(lián)系的正確性3.相同數(shù)據在不同記錄中的一致性第5章系統(tǒng)實現(xiàn)5.1管理員登錄圖4.1系統(tǒng)登陸頁面設計 5.2管理員功能模塊1.描述:系統(tǒng)主頁面:左方頁面展示了管理員可操作的六大功能,進入相關的管理頁面可以鏈接到子菜單,并且高亮顯示,每個管理模塊下面都有相應的子菜單。2.程序運行效果圖如圖4.2所示:圖4.2管理員主頁面在每個jsp頁面將會對相關用戶進行攔截操作,這樣可以提高安全性,防止用戶不經過登陸頁面而進入任何子菜單頁面:if(session.getAttribute("user")==null){out.print("<script>alert('請先登錄!');window.open('../index.jsp','_self')</script>"); }5.2.1課程介紹管理課程介紹管理圖5.4課程介紹管理 5.2.2教師信息管理教師信息錄入1.描述:管理員輸入教師相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的教師經理信息,都會給出相應的錯誤提示,不能錄入成功。輸入數(shù)據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據的方式。2.程序效果圖如下圖5.6所示:圖5.6教師信息錄入教師信息管理1.描述:管理員點擊左側的菜單“教師管理”,頁面跳轉到教師管理界面,調用后臺的action類查詢所有教師信息。2.程序效果圖如下圖5.7所示圖5.7教師信息管理教師管理關鍵代碼:publicStringteaAdd(){ TTeatea=newTTea(); tea.setTeaBianhao(teaBianhao); tea.setLoginName(loginName); tea.setLoginPw(loginPw); tea.setTeaRealname(teaRealname); tea.setTeaSex(teaSex); tea.setTeaAge(teaAge); tea.setDel("no"); teaDAO.save(tea); this.setMessage("操作成功"); this.setPath("teaMana.action"); return"succeed"; } publicStringteaMana() { Stringsql="fromTTeawheredel='no'"; ListteaList=teaDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("teaList",teaList); returnActionSupport.SUCCESS; } publicStringteaDel() { TTeatea=teaDAO.findById(teaId); tea.setDel("yes"); teaDAO.attachDirty(tea); this.setMessage("操作成功"); this.setPath("teaMana.action"); return"succeed"; }5.2.3學生信息管理學生信息錄入1.描述:管理員輸入學生相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的學生經理信息,都會給出相應的錯誤提示,不能錄入成功。輸入數(shù)據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據的方式。2.程序效果圖如下圖5.9所示:圖5.9學生信息錄入學生信息管理1.描述:管理員點擊左側的菜單“學生管理”,頁面跳轉到學生管理界面,調用后臺的action類查詢所有學生信息。2.程序效果圖如下圖5.10所示圖5.10學生信息管理學生管理關鍵代碼:publicStringstuAdd(){ TStustu=newTStu(); stu.setStuXuehao(stuXuehao); stu.setStuRealname(stuRealname); stu.setStuSex(stuSex); stu.setStuAge(stuAge); stu.setLoginPw(loginPw); stu.setZhuangtai("a"); stu.setDel("no"); stuDAO.save(stu); this.setMessage("操作成功"); this.setPath("stuMana.action"); return"succeed"; } publicStringstuMana() { ListstuList=stuDAO.getHibernateTemplate().find("fromTStuwheredel='no'"); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("stuList",stuList); returnActionSupport.SUCCESS; } publicStringstuDel() { TStustu=stuDAO.findById(stuId); stu.setDel("yes"); stuDAO.attachDirty(stu); this.setMessage("刪除成功"); this.setPath("stuMana.action"); return"succeed"; }5.2.4公告信息管理公告信息錄入1.描述:管理員輸入公告相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的公告信息,都會給出相應的錯誤提示,不能錄入成功。輸入數(shù)據都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據的方式。2.程序效果圖如下圖5.12所示:圖5.12公告信息錄入公告信息管理1.描述:管理員點擊左側的菜單“公告信息管理”,頁面跳轉到公告信息管理界面,調用后臺的action類查詢出所有的公告信息,并把這些信息封轉到數(shù)據集合List中,綁定到request對象,然后頁面跳轉到相應的jsp,顯示出公告信息。2.程序效果圖如下圖5.13所示圖5.13公告信息管理頁面公告信息管理關鍵代碼:publicStringgonggaoAdd(){ TGonggaogonggao=newTGonggao(); gonggao.setGonggaoTitle(gonggaoTitle); gonggao.setGonggaoContent(gonggaoContent); gonggao.setGonggaoData(newDate().toLocaleString()); gonggaoDAO.save(gonggao); this.setMessage("公告添加完畢"); this.setPath("gonggaoMana.action"); return"succeed"; } publicStringgonggaoMana() { ListgonggaoList=gonggaoDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggaoList",gonggaoList); returnActionSupport.SUCCESS; } publicStringgonggaoDel() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); gonggaoDAO.delete(gonggao); this.setMessage("公告刪除完畢"); this.setPath("gonggaoMana.action"); return"succeed"; } publicStringgonggaoDetail() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggao",gonggao); returnActionSupport.SUCCESS; }公告詳細信息查看1.描述:先是點擊公告信息管理,頁面跳轉到公告信息管理界面,瀏覽所有的公告信息,點擊要查看的公告信息,彈出公告信息詳細信息界面。公告信息刪除1.描述:先是點擊公告信息管理,頁面跳轉到公告信息管理界面,瀏覽所有的公告信息,點擊要刪除的公告信息,彈出的確定對話框,即可刪除該公告信息。5.3前臺網站功能模塊5.3.1網站首面設計1.描述:前臺首頁是瀏覽者打開一個網站后第一眼看到的網頁,網站能不能吸引瀏覽者,在很大程度上取決于首頁做得怎么樣。首頁包含內容雖然豐富但不雜亂,色彩搭配要合理,整體風格要獨特。2.程序效果圖如下圖5.22所示:圖5.22網站首頁5.3.2教學課件下載1.描述:點擊網站主頁菜單的課件信息菜單,進入課件信息列表,點擊課件信息具體內容,并下載資料中的附件信息。2.程序效果圖如下圖5.23所示:圖5.23教學課件下載課件下載核心代碼:publicStringdocAll(){ Stringsql="fromTDocwheredel='no'"; ListdocList=docDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("docList",docList); returnActionSupport.SUCCESS;} publicStringdocDetailQian(){ TDocdoc=docDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("doc",doc); returnActionSupport.SUCCESS;}5.3.3教學視頻下載1.描述:點擊網站主頁菜單的教學視頻,進入教學視頻信息列表,點擊視頻信息瀏覽具體內容,并下載視頻中的附件信息。2.程序效果圖如下圖5.24所示:圖5.24教學視頻下載教學視頻下載關鍵代碼:StringfujianPath=request.getParameter("fujianPath");StringfujianYuashiMing=request.getParameter("fujianYuashiMing"); fujianYuashiMing=.URLDecoder.decode(fujianYuashiMing,"UTF-8");System.out.println(fujianYuashiMing+fujianPath); SmartUploadsu=newSmartUpload();//新建一個SmartUpload對象su.initialize(pageContext);//初始化 su.setContentDisposition(null);//設定contentDisposition為null以禁止瀏覽器自動打開文件,//保證點擊鏈接后是下載文件。若不設定,則下載的文件擴展名為//doc時,瀏覽器將自動用word打開它。擴展名為pdf時,將用acrobat打開//response.sendRedirect(path+"/updown/updown_err.jsp");//su.downloadFile("/uploadPath/file/liu.doc");//下載英文文件 su.downloadFile(fujianPath,null,newString(fujianYuashiMing.getBytes(),"ISO8859-1"));//下載中文文件//downloadFile(StringsourceFilePathName,StringcontentType,StringdestFileName)out.clear();out=pageContext.pushBody();5.3用戶身份鑒別身份鑒別通常包括用戶提交的一個用戶名和口令,你可以只使用用戶名或口令對用戶進行鑒別,也可以選擇通過IP地址來鑒別。通過IP地址來鑒別只有當用戶擁有靜態(tài)IP時才起作用,所以并不常用。在此我采用基于表單的身份鑒別。 在基于表單的鑒別中,提示用戶名和口令的Web頁面由服務器來提供,而不是依靠瀏覽器顯示對話框,這樣,在需要用戶登錄時就可以給用戶提交額外的信息和選項了。需要注意的是,雖然輸入口令時顯示為星號,但是瀏覽器還是以純文本傳送口令本身:非加密、不進行Base64編碼,只是純文本。如果采用GET方法將表單數(shù)據提交給服務器,用戶瀏覽器將在URL中明顯地顯示出口令,而且瀏覽器還會將它保存在最近瀏覽地頁面列表中。因此,在筆者實現(xiàn)基于表單的身份驗證時,使用的是POST方法提交表單數(shù)據給服務器。 當用戶登錄認證的表單請求后,表單采用POST方法提交到LoginServlet.LoginServlet將獲得的參數(shù)傳給Userbean(是一個JavaBean),如果通過驗證就進入系統(tǒng)的功能區(qū),否則就返回登錄界面。下面介紹用戶bean(Usecjava),它定義了一組屬性,包括 (1)userlD,這是一個只讀屬性,標示登錄會員的會員編號,這個編號對于使用系統(tǒng)的所有用戶(包括教師、學生和管理員)來說是唯一的: (2)userName,這是一個可讀寫屬性,標示登錄會員的用戶名; (3)passWord,是一個可讀寫屬性,標示登錄會員的口令; (4)userType,也是一個可讀寫屬性,標示登錄會員的身份類型;該屬性與userName,password都是用戶通過login.jsp頁面提交到checked.jsp,然后由checked.jsp將參數(shù)賦值給這三個屬性。 (5)login,這是一個boolean屬性,用來判斷當前的訪問是否是登錄會員的訪問。 (6)Userbean實現(xiàn)了如下兩個公共方法用來檢查用戶是否是會員登錄。 (7)checkUser:用來檢查用戶登錄信息。它主要是通過JDBC訪問數(shù)據庫,通過檢查用戶名、口令、身份類型是否正確或者匹配,如果正確則置login為true,并從數(shù)據庫中讀取相應字段給屬性UserlD賦值。 (8)isLogin:獲取login值,檢查是否是登錄會員的訪問。 (9)isStudent,isTeacher,isAdm:獲取登錄會員的身份類型。Userbean在本系統(tǒng)的許多程序中都要用到,它是作為session范圍的bean定義的。5.4對話跟蹤處理HTTP(HypertextTransferProtocol)是一個基于請求/響應模式的應用層協(xié)議。其最新版本為1.1,在RFC2068中最先提出,并在RFC2616中進行了修正。HTTP對瀏覽器進行請求、服務器提供響應的規(guī)則進行了定義。 一個客戶機與服務器建立連接后,發(fā)送一個請求給服務器,請求方的格式為:請求方法,請求URI,協(xié)議版本號,后邊是0個或多個頭標以及可能的請求數(shù)據。服務器接到請求后,給予相應的響應信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是0個或多個響應頭標,一個空行指明頭標的結束,最后是組成響應的數(shù)據。 HTTP最初的設計意圖是在WWW上發(fā)布文檔和圖像,因此,它使用了一個相當簡單的通信模型??蛻舳藢ξ臋n進行請求,服務器響應以文檔或錯誤代碼,最終事務處理完成。服務器不會保留請求的任何信息:下一次客戶端進行請求時,服務器沒有方法可以將它與其他客戶端區(qū)別開來。這就是HTTP的協(xié)議無狀態(tài)性。 本系統(tǒng)采用JSP/Servlet會話API來對會話進行跟蹤和管理。其機制是要求服務器保持所有會話數(shù)據,并對其設置一個會話ID,客戶端憑借該會話ID通知服務器將自己置于指定的會話環(huán)境中。一旦服務器初始化了一個會話對象并且客戶端接受了它,服務器就可以構建復雜的、有效的對象并保存大量的屬于該會話的數(shù)扼。為維持會話,服務器和客戶端之間需要傳輸?shù)膬H僅是一個會話ID。 Javax.servlet.http包中提供了一個HttpSession類。該類提供了一個像HashTable一樣的接口,讓應用程序開發(fā)者能夠根據名字存儲和檢索對象。會話Session本質上是服務器端的一個對象。該對象在被創(chuàng)建后將被保留直至超時或,被參與一個會話的Servlet關閉??蛻舳擞糜跇俗R一個Session的是一個會話ID如果一個JSP/Servlet允許會話,任何時候,客戶端向服務器請求一個JSP/Servlet頁面時,服務器將檢查該HTTP請求的頭標中是否包括一個會話ID。如果客戶端的HTTP請求中包括一個有效的會話ID,服務器返回該會話ID所標識的一個HttpSession對象,并將該次請求/響應置于該會話環(huán)境。如果客戶端的HTTP請求中不包括一個會話ID,或是包括的會話ID無效,服務器將創(chuàng)建一個HttpSession對象,并將其引用返回到一個Session變量。隨后,服務器將在返回給客戶端的Http響應中的Set-cookie頭標中加入一個名稱為JSESSIONID,取值為當前會話ID的cookie。此cookie被送往客戶端,且在客戶端的后續(xù)的請求中將被返回給服務器。5.5數(shù)據訪問優(yōu)化實訓管理平臺中的業(yè)務數(shù)據使用相應的實體組件作為對象視圖,客戶端可以通過組件提供的屬性讀寫方法。完成對業(yè)務數(shù)據地讀寫操作。通常,客戶端需要多次調用實體組件的getter方法才能得到所有的屬性值。但使用多個只返回單個屬性值的getter方法調用來從特定的實體組件獲取數(shù)據的效率將非常低下。隨著調用次數(shù)的逐漸增加,系統(tǒng)的性能會明顯下降。為了提高數(shù)據訪問效率,在設計上運用值對象的設計思想。值對象是普通的Java對象,封裝了實體組件的所有屬性。值對象的設計思想是由在客戶端提出檢索請求時由實體組件構造一個新的值對象實例,把檢索的屬性值拷貝到該對象中,然后把一該值對象實例傳遞給客戶端。客戶端可以通過檢索一該值對象獲取單個的屬性值。值對象是按照值傳遞的方式傳給客戶端的,對值對象的所有調用都是本地調用,加快了實體組件客戶端的訪問速度,從而提高了系統(tǒng)的數(shù)據處理性能。實訓管理平臺的用戶不僅可以檢索數(shù)據,還能對特定的數(shù)據進行修改。所有的這些業(yè)務處理過程都要用到值對象。因此,在值對象的設計上采用了可更新值對象的策略,也就是說,不僅可以把來自實體組件的值傳遞到客戶端,而且可以把客戶端更新的數(shù)據傳遞回實體組件對象。為了保持值對象的狀態(tài),值對象必須是可序列化的。以用戶信息實體組件為例,對可更新的值對象進行簡略的說明。(1)定義值對象類Cls_TeacherInfo_ValucObjectpublicclassCls_TeacherInfo_ValueObjectimplementsSerializable{ privatejava.lang.Stringname; privatejava.lang.Stringsex; publicvoidsetName6ava.lang.StringTeachemame){name=Teachername;j publicjava.lang.StringgetNameo{returnname;}}(2)修改用戶信息實體組件本地接口,在本地接口中添加值對象讀寫方法 getDatalnfo()/setDatalnfo()(3)在用戶信息實體組件類內實現(xiàn)值對象的讀寫方法//修改值對象,相應的實現(xiàn)對數(shù)據庫數(shù)據的修改publicvoidsetDataInfo(Cls_TeacherlnfoesValue0bjectupdateData){ setName(updateData,getName());}//查詢值對象publicCls_Teacherlnfo_ValueObjectgetDatalnfoo{ Cls_Teacherlnfo_ValucObjectobj=newCls_Teacherrnfo_Value0bject(}: Obj.setDrugName(getNameo); returnobj;} 通過使用值對象,減少了從實體組件獲取屬性值的網絡調用次數(shù),提高數(shù)據訪問效率。5.6數(shù)據庫連接原理采用JDBC連接數(shù)據庫的方式,只需在工程中導入對應數(shù)據庫的jar包,就可以方便的對數(shù)據庫進行連接,在程序中,用Class.forName()方法來加載驅動程序,在用DriverManager的getConnection()方法就可以創(chuàng)建一個數(shù)據庫連接。程序采用的是DAO模式來操作數(shù)據庫,DAO(DataAccessObject,數(shù)據訪問對象),是Java編程中的一種經典模式,已被廣泛應用,也是J2EE架構中持久層框架的基礎知識,基于分層次式的軟件架構來實現(xiàn)對數(shù)據庫的訪問操作。DAO模式的主要思想就是從抽象數(shù)據源獲取與操縱數(shù)據的方法。抽象數(shù)據的含義就是編寫應用程序的程序員不必關心數(shù)據庫的物理位置,已經是何種數(shù)據庫,只需使用封裝數(shù)據庫中表示記錄的數(shù)據對象即可。其思想如圖3.10所示:封裝使用封裝使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject創(chuàng)建/使用獲取/修改創(chuàng)建/使用獲取/修改DataTransferObjectDataTransferObject圖3.10DAO模式類圖圖中BussinessObject是業(yè)務對象,是使用DAO模式的客戶端;DataTransferObject數(shù)據傳輸對象,在應用程序不同層次之間傳輸對象,在一個分布式應用程序中,通??梢蕴岣哒淼男阅埽籇ataObjectAcces數(shù)據輸入/輸出對象封裝了對數(shù)據源的一些基本操作;DataSource指的是數(shù)據源??梢詮膱D中看出,DAO模式分離了業(yè)務邏輯和數(shù)據羅即將,是的編寫的軟件具有良好的層次式體系結構。本系統(tǒng)為了方便數(shù)據庫的操作,主要使用DB的對象來接一個數(shù)據庫(建立一個類DBContent),代碼如下:publicDB() { try { Class.forName(className); }catch(ClassNotFoundExceptione) { System.out.println("加載數(shù)據庫驅動失??!"); e.printStackTrace(); } } /**創(chuàng)建數(shù)據庫連接*/ publicConnectiongetCon() { try { con=DriverManager.getConnection(url,user,password); }catch(SQLExceptione) { System.out.println("創(chuàng)建數(shù)據庫連接失敗!"); con=null; e.printStackTrace(); } returncon; }在程序需要連接數(shù)據庫的地方,只需要生成一個DB的對象,就可以對數(shù)據庫進行連接并操作。5.7中文亂碼在程序中經常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進行設置,相當麻煩。因此,在程序的開始就寫了一個過濾器SetCharacterEncodingFilter。在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//*表示工程下所有的頁面都會有此過濾器的處理</filter-mapping>對應的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同樣定義了DataFormate類來處理字符轉換:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串轉換成uincode編碼*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}/*把字符串轉換成Utf8編碼*/publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}第6章軟件測試測試是開發(fā)時期最后一個階段,是保證軟件質量的重要手段。軟件測試就是在受控制的條件下對系統(tǒng)或應用程序進行操作并評價操作結果的過程,所謂控制條件應包括正常條件與非正常條件。軟件測試過程中應該故意地去促使錯誤的發(fā)生,也就是事情在不該出現(xiàn)的時候出現(xiàn)或者在應該出現(xiàn)的時候沒有出現(xiàn)。從本質上說,軟件測試是"探測",在“探測”中發(fā)現(xiàn)軟件的毛病。6.1軟件測試的重要性軟件測試在軟件生命周期中占據重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。[19]事實上,對于軟件來講,不論采用什么技術和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內,討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。在此系統(tǒng)功能大部分實現(xiàn)可以運行之之時,便需要開始考慮進行系統(tǒng)測試工作了。通過對系統(tǒng)進行測試可以找出系統(tǒng)中隱藏的一些錯誤。在發(fā)現(xiàn)錯誤以后需要及時進行修正,以保障系統(tǒng)的長期穩(wěn)定運行。這個過程必不可少。測試的軟件模塊的基本功能,可以繼續(xù)進行,盡可能提高軟件的魯棒性。系統(tǒng)的測試有黑盒測試和白盒測試兩種方法。黑盒測試也稱作功能測試。黑盒測試是在程序接口進行。它只檢查程序功能是否可以運行并符合設計時所提出的要求。黑盒測試檢查當有數(shù)據進行輸入的時候程序是否能及時作出反應,而且還能夠保持外部信息的完整性。白盒測試也叫結構測試。白盒測試要求測試人員完全了解程序的結構和程序的處理過程。白盒測試會依照程序內部的邏輯順序來進行測試,檢驗程序是否都能按照指定的要求去完成工作。[16]本系統(tǒng)開發(fā)過程進行了模塊測試、驗收測試等測試。模塊測試也可以稱為單元測試,目的是保證程序每一個單獨模塊作為一個獨立單元可以正常的運行。模塊測試常??梢园l(fā)現(xiàn)編碼和詳細設計方面發(fā)生的錯誤。它主要用來評價模塊的接口,局部數(shù)據結構,重要的執(zhí)行路徑,出錯處理通路。模塊測試主要是由代碼審核和軟件測試兩部分組成。[17]驗收測試是為了驗證軟件的有效性和可靠性。其目的是為了說明軟件可以向設計的那樣正確的運行,也是對用戶的一種保障措施。驗收測試主要用黑盒測試法,驗收測試有可能出現(xiàn)兩種的結果。第一種是系統(tǒng)的功能與特性無法滿足用戶的要求;另一種可能是系統(tǒng)功能和性能十分完善,用戶十分滿意。平行運行。所謂平行運行就是同時運行。就是將新開發(fā)出來的系統(tǒng)與原有的舊系統(tǒng)同時執(zhí)行同樣的任務,比較它們之間的差異。這樣做的目的是可以發(fā)現(xiàn)新系統(tǒng)的并為改善的缺點,同時也可以讓用戶熟悉新系統(tǒng),便于以后得運用與操作。在模塊測試時應該主要從以下幾個方面開始入手:模塊接口,局部數(shù)據結構,重要執(zhí)行通道,出錯處理通道,影響上述方面的邊界條件。測試時進行代碼審查測試,從數(shù)據類型,變量聲明,數(shù)據結構進行審查,然后功是能測試。改變測試計劃改造另一個角度測試,發(fā)現(xiàn)錯誤并記錄,修改代碼,測試條件通過多分支使程序,判別結果,以完成模塊的測試。6.2測試實例的研究與選擇程序測試的主要方法分為兩大類,白盒測試和黑盒測試。白盒測試:一種是以程序的內部邏輯結構為依據而設計測試用例的方法,因而又稱結構測試或玻璃盒測試,將軟件看成一個透明的白盒子,按照程序的內部結構和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進行測試,檢查它與設計是否相符[20]。白盒測試就是要選取足夠的測試用例,對源代碼實行比較充分的覆蓋,以便盡可能多地發(fā)現(xiàn)程序中的錯誤。主要有兩種方法:一種稱為邏輯覆蓋法,另一種稱為路徑覆蓋法。黑盒測試:也稱功能測試,數(shù)據驅動測試等,它將待測對象堪稱是一個黑盒子,在完全不考慮程序的內部結構和特性的情況下,只依據規(guī)格說明書檢查程序的功能是否能正常使用。黑盒測試主要是根據輸入條件和輸出條件的確定測試數(shù)據,來檢查程序是否能產生正確的輸出。進行黑盒測試主要有下面幾種方法:等價分類法、邊界值分析法、猜錯法、因果圖法。本系統(tǒng)的測試綜合了白盒測試、黑盒測試兩種方法,但主要使用的是黑盒測試方法。在測試當中遵循了“盡早地和不斷進行測試”,“保證測試用例的完整性和有效性”原則。通過測試達到以下測試目的:1.功能檢查:檢查功能是否爭取,是否遺漏或實現(xiàn)不了應該實現(xiàn)的功能等。2接口檢查:檢查能否正確地接受信息或輸出信息。3數(shù)據檢查:檢查數(shù)據結構或外部信息是否有(如數(shù)據文件)訪問錯誤。4性能檢查:檢查性能需求能否得到滿足。[21]5初始化、終止檢查:檢查是否能進行正確地初始化或終止。6.3測試環(huán)境與測試條件處理器:Inter(R)Core(TM)2DuoT5750內存:2GB硬盤:160G操作系統(tǒng):WindowsXP數(shù)據庫:SqlServer6.4系統(tǒng)運行情況通過對系統(tǒng)的全面測試,所有測試條目都已經通過,實現(xiàn)了基本要求,系統(tǒng)可以正常運行。6.5系統(tǒng)評價系統(tǒng)評價是指系統(tǒng)在正式運行了一段時間之后,對它在功能上、技術上和經濟上所進行的審核評價。針對本系統(tǒng)的評價如下:(1)系統(tǒng)功能評價根據本系統(tǒng)開發(fā)前所訂的目標,在系統(tǒng)完成后經過測試運行,該系統(tǒng)達到了預定的開發(fā)目標,在實際使用中的功能可以滿足用戶需求。[22](2)系統(tǒng)技術評價本系統(tǒng)設計合理,功能達到了預期目標,且系統(tǒng)運行后穩(wěn)定可靠,安全性高,具有實用性,大大提高了信訪辦公效率。系統(tǒng)經濟評價在規(guī)定時間內,該系統(tǒng)完成了系統(tǒng)分析時所確定的系統(tǒng)開發(fā)目標,達到了設計要求,投入使用后為用戶節(jié)省了大量人力物力財力,提高了科學管理水平。第7章結論計算機技術的飛速發(fā)展帶動了很多行業(yè)的發(fā)展,計算機帶給我們最直觀的價值就是減少了人力物力的投資,提高了工作質量和效率,從而提高了整個社會的生產力。目前各大酒店充分利用計算機資源和網絡資源來提高自身的管理水平,而有關多媒體技術與應用課程網站的設計也成為多媒體技術與應用課程網站爭論的熱點問題。本文在分析多媒體技術與應用課程網站的基礎上,用JSP和SqlServer數(shù)據庫設計并完成多媒體技術與應用課程網站。通過系統(tǒng)調試結果顯示,本系統(tǒng)基本完成了功能需求。在整個設計過程中,采用瀑布模型和結構化的設計方法。本系統(tǒng)界面美觀友好,操作方便,做出了自己的特色。但由于時間倉促加上缺乏系統(tǒng)開發(fā)經驗,系統(tǒng)在設計過程中不可避免地遇到了各種各樣的問題,如:1.有些數(shù)據輸入時沒有及時的進行數(shù)據格式校驗,不能保證數(shù)據絕對正確性。2.由于時間關系,系統(tǒng)功能實現(xiàn)不夠完善,使用可能存在一些不方便。本系統(tǒng)在實際使用過程中有可能出現(xiàn)一些問題,通過對系統(tǒng)的不斷優(yōu)化和完善,能夠調試出真正符合實際情況的多媒體技術與應用課程網站,形成統(tǒng)一、規(guī)范、科學、合理的多媒體技術與應用課程網站。參考文獻[1]張孝祥、徐明華.JAVA基礎與案例開發(fā)詳解[M].清華大學出版社.2009.45-46.[2]康牧.JSP動態(tài)網站開發(fā)實用教程[M].清華大學出版社.2009.127-127.[3]劉亞賓.精通Eclipse--JAVA技術大系[M].電子工業(yè)出版社.2005.167-168.[4]于萬波.網站開發(fā)與應用案例教程[M].清華大學出版社.2009.77-78.[5]楊學瑜.高立軍,軟件開發(fā)過程與項目管理[M].電子工業(yè)出版社.2008.43-46.[6]張潔才.Javaweb應用開發(fā)教程[M].科學出版社.2005.66-68.[7]戴維爾.JavaScript程序員教程[M].電子工業(yè)出版社.2010.333-334.[8]黎連業(yè)、王華、李淑春.軟件測試與測試技術[M].清華大學出版社.2009.321-322.[9]黃梯云.管理信息系統(tǒng)[M].北京:電子工業(yè)出版社.2006.216-217.[10]JamesD.McCaffrey等.NET軟件測試自動化之道[M].北京:電子工業(yè)出版社.2007.213-214.[11]甘仞初.信息系統(tǒng)開發(fā)[M].北京:經濟科學出版社.2007.144-145.[12]馬赫.DreamweaverMX2004網頁設計經典108例[M].中國青年出版社.2005.99-101.[13]唐友國湛洪波著.JSP網站開發(fā)詳解[M].電子工業(yè)出版社.2008.111-112.[14]衛(wèi)紅春等著.信息系統(tǒng)分析與設計[M].北京:清華大學出版社.2009.51-53.[15]張大方李瑋等著.軟件測試技術與管理[M].湖南:湖南大學出版社.2007.333-334.[16](美)H.M.Deitel,P.Jdeitel.Java程序設計教程(第五版).清華大學出版社.2004.212-212.[17](美)ElliotteRustyHarold.JavaNetworkProgramming.東南大學出版社.2005.122-123.[18]孫衛(wèi)琴等.精通struts:基于MVC的JavaWeb設計與開發(fā)[M].電子工業(yè)出版社.2005.144-144.[19]張文靜林琪著.JSP程序設計[M].人民郵電出版社.2005.256-257.[20]孫衛(wèi)琴李洪成著.Tomcat與JavaWeb開發(fā)技術詳解[M].電子工業(yè)出版社.2005.343-344.[21](美)JohnJ.Patrick.SQL基礎(第二版).清華大學出版社.2004.77-79.[22](美)Davidflanagan.Java技術手冊(第五版).東南大學出版社.2006.33-35.[23]黃裴、徐汀榮.電子商務原理與技術(第二版),科學出版社.2006.124-126.致謝大學生活在這個時候即將劃上一個句號。但是對于我的人生道路來說,這僅僅是一個逗號,我將面對的是又一次征程的開始。回憶過去,許許多多的事情浮現(xiàn)在腦海:剛上大學時歡樂心情和興奮的場景還歷歷在目。一切都是那么新鮮,那么富有吸引力。有快樂也有艱辛,有收獲也有失落。衷心感謝信息學院所有支持幫助過我的老師,謝謝你們多年來的關心和愛護。同窗的友情同樣難忘,你們與我共同走過了人生中不平凡的道路,給我留下了值得珍藏的美好記憶。最后,我要特別感謝指導教師XX老師。本論文是在她們的悉心指導和熱情幫助下完成的,老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和精深的理論水平都使我受益匪淺。她們無論在理論上還是在實踐中,都給予我很大的幫助,使我專業(yè)技能的應用水平得到很大提高,這對于我以后的工作和學習都有益處。值此論文完成之際,特別向指導老師表示衷心的感謝和崇高的敬意,謝謝她們細心而又耐心地輔導,使得我得以順利的完成畢業(yè)設計開發(fā)工作,同時也要感謝其他幫助過我的老師和同學,他們在我成長過程中給予了我很大的幫助,在此一并表示感謝。由于本人水平有限,加上時間緊促,本文一定有不少缺點和不足,懇請各位老師給予幫助和指正。學生簽名:日期:附錄I文獻翻譯1、英文原文JAVAthreeframeworksusedtomakeWENapplications.ShowstrutsprimarilyresponsibleforthepresentationlayerspringIOCandAOPuseittoprocesscontroloperations(responsiblefortheoperationofthedatabase)hibernatemainlypersistentdatatothedatabaseIntheservletjsptodowithwebdevelopmentwhenthereisaweb.xmlmappingfile,whichhasalabelthatisusedformappingfilemapping.WhenyouentertheURLinthebrowserwhenthefilewillbewrittenbasedonyournamecorrespondingtoajavafile,thebrowserisawebpage,sojustwritethepagenameisbasedonthecontentsofthedocumentwritteninjavadisplay,justfromthename,whetheryouarefrom.php.jsp.doorwhatothercorrespondstothejavafile,thejavacodefilewhatactiontodo,displayawordoraconnectiontoadatabaseorjumptootherpagesothatthejavafilethedatapackagetoplaytheroleofsecurityandeaseofmanagement.Infact,thisjavafilescompiledover是.Classofabytecodefile,notasasimilarhtmlcodetoembedtagsandwebdocuments.Heandthedifferenceisjspjspfilestoembedhtmlcodelabel.Thereservletorstrutsactionintheformofhtmlsubmitajavafilenamecorresponds,strutsgenerally.Do,andaremappedasabove.One,SpringSpringisapowerfulframeworktosolvemanyofthecommonJ2EEdevelopmentissues.Springprovidesaconsistentwaytomanagebusinessobjectsandtoencouragetheinjectionoftheprogramminginterfaceratherthantheclassofgoodprogramminghabits.Spring-basedarchitectureisbasedontheuseofJavaBeanpropertiesInversionofControlcontainer.However,thisisonlypartofthecompletepicture:SpringIoCcontainerinuseasaframeworktobuildcompleteattentiontoallaspectsofacompletesolutionlayerisunique.Springprovidesauniquedataaccessabstraction,includingasimpleandefficientJDBCframework,whichgreatlyimprovestheefficiencyandreducesthepossibilityoferrors.Spring'sdataaccessarchitecturealsointegratesHibernateandotherO/Rmappingsolutions.Springalsoprovidesauniquetransactionmanagementabstraction,whichcaninavarietyofunderlyingtransactionmanagementtechniques,suchasJTAorJDBCtransactionprovidesaconsistentprogrammingmodel.SpringprovidesalanguagewritteninstandardJavaAOPframework,itgivesPOJOsprovidesdeclarativetransactionmanagementandothercorporatematters-ifyouneedto-canimplementyourownaspects.ThisframeworkisstrongenoughtomakeanapplicationtosetasidethecomplexityofEJB,whileenjoyingcriticalservicesandassociatedtraditionalEJB.SpringIoCcontainerandalsoprovidesapowerfulandflexibleintegrationMVCWebframework.Two,STRUCTSStrutsisanMVCframeworkSunJ2EEplatformbasedmainlyusedServletandJSPtechnologytoachieve.SinceStrutscanfullymeettheneedsofapplicationdevelopers,easytouse,quickquick,popularattentioninthepastyear.StrutstheServlet,JSP,customlabelsandinformationresources(messageresources)intoaunifiedframework,developersdonothavetousetheirowncodingMVCmodeltoachieveitsfulldevelopment,greatlysavingtime,sothatStrutsisaverygoodapplicationframework.Three,HibernateHibernateobject-relationalmappingframeworkisanopensource,ithadaverylightweightJDBCobjectpackagesothatJavaprogrammerscanusearbitraryobjectprogrammingthinkingtomanipulatethedatabase.HibernatecanuseJDBCinanyapplication,eitherprograminJavaclientutilitycanalsobeusedinServlet/JSPWebapplication,themostrevolutionaryis,HibernatecanreplacetheEJBCMPJ2EEapplicationarchitecturetocompletethetaskofdatapersistence.,HibernatecanreplacetheEJBCMPJ2EEapplicationarchitecture,datapersistencetocompletethetask.2、中文譯文JAVA三大框架用來做WEN應用。struts主要負責表示層的顯示spring利用它的IOC和AOP來處理控制業(yè)務(負責對數(shù)據庫的操作)hibernate主要是數(shù)據的持久化到數(shù)據庫在用jsp的servlet做網頁開發(fā)的時候有個web.xml的映射文件,里面有個mapping的標簽就是用來做文件映射的。當你在瀏覽器上輸入URL地址的時候,文件就會根據你寫的名稱對應到一個java文件,根據java文件里編寫的內容顯示在瀏覽器上,就是一個網頁,所以網頁名字是隨便寫的,隨便起的名字,不管你起的是.php.jsp.do還是其他的什么都對應這個java文件,這個java文件里的代碼進行什么操作就干什么,顯示一句話還是連接數(shù)據庫還是跳轉到其他頁面等等,這個java文件把數(shù)據進行封裝起到安全和便于管理的作用。其實這個java文件編譯過來是.class的一個字節(jié)碼文件,沒有那么一個類似html嵌入標簽和代碼的網頁文件。他與jsp文件區(qū)別就是jsp把代碼嵌入到html標簽中。還有servlet或者struts中html表單的action中的提交名稱對應一個java文件,struts一般是.do的,都和上面一樣是映射。一、SpringSpring是一個解決了許多在J2EE開發(fā)中常見的問題的強大框架。Spring提供了管理業(yè)務對象的一致方法并且鼓勵了注入對接口編程而不是對類編程的良好習慣。Spring的架構基礎是基于使用JavaBean屬性的InversionofControl容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。Spring提供了唯一的數(shù)據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率并且減少了可能的錯誤。Spring的數(shù)據訪問架構還集成了Hibernate和其他O/Rmapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標準Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業(yè)事務--如果你需要--還能實現(xiàn)你自己的aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統(tǒng)EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVCWeb框架。二、STRUCTSStruts是一個基于SunJ2EE平臺的MVC框架,主要是采用Servlet和JSP技術來實現(xiàn)的。由于Struts能充分滿足應用開發(fā)的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Strut

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論