《網絡工程師綜合訓練》報告_第1頁
《網絡工程師綜合訓練》報告_第2頁
《網絡工程師綜合訓練》報告_第3頁
《網絡工程師綜合訓練》報告_第4頁
《網絡工程師綜合訓練》報告_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

計算機與信息學院《網絡工程師綜合訓練》報告設計題目:網上書店的設計與實現設計題目:網上書店的設計與實現學生姓名:學號:專業班級:2015年1月一、設計要求1.通過以下過程:需求分析、E-R模型、關系模型分析,在數據庫中構建數據庫、表或視圖,熟悉數據庫開發流程;2.根據網上書店系統功能,條理清晰地設計前臺各腳本頁面;3.在時間允許的情況下,適當考慮頁面的美觀;4.熟悉腳本頁面與數據庫的多種連接方法。二、開發環境與工具操作系統:windows7開發平臺:J2EE開發工具:myeclipse集成開發環境,tomcat,mysql開發語言:html,javascript,java(jsp,servlet,javabean),sql設計原理Web開發采用b/s結構,既瀏覽器/Web服務器/數據庫服務器。其中瀏覽器負責處理用戶的輸入和向用戶的輸出,Web服務器負責建立數據庫的連接,根據用戶請求生成訪問數據庫的sql語句,并把結果返回給客戶端,數據層負責實際的數據庫存儲和檢索,響應Web服務器的數據處理請求,并將結果返回給Web服務器。網上書店的設計是在數據庫服務器端構造數據庫、設計前臺的各腳本頁面,在客戶端運行。在實現過程中涉及到了http協議、數據的正確傳輸等計算機網絡的相關知識。在設計過程中我采用了經典的MVC(模型-視圖-控制器)設計模式.使得各個層次分離,增加程序的可讀性,和程序的可擴展性,使得程序更容易控制,而且有助于提高程序的安全性。modle(模型)是應用程序中用于處理應用程序數據邏輯的部分。采javabean和java類來實現對現實世界的模擬,主要的作用是處理業務邏輯,連接數據庫服務器以及接收從數據庫中得到的數據。View(視圖)主要是向用戶顯示數據和接收用戶的請求,采用jsp實現,其中還加入了html和javascript等語言。Controller(控制器)主要功能是接收視圖發送來的數據,準備視圖要顯示的數據,以及控制頁面的跳轉,采用servlet實現。數據庫設計原理:數據庫是將數據以一定的方式存儲在一起,為多個用戶共享,具有盡可能小的冗余的特點,所以在設計時要至少達到第三范式的要求。四、系統功能描述及軟件模塊劃分所設計的系統所實現的主要功能,軟件所包含的主要模塊和功能描述本系統主要包含兩個大的模塊,數據庫模塊和web服務器的應用程序模塊,連接數據庫采用jdbc的方式實現兩個模塊的通信。數據庫模塊:根據e-r圖設計關系模型。最終轉化為3張表(用戶表,圖書表,訂單表),數據庫的功能主要是確保數據的正確性。Web服務器應用模塊:這個模塊分為3個小模塊對應為3個包,分別為模型的model包,控制器的servlet包,還有用于顯示的jsp文件包。一Model包包含以下5個文件1bookbean.java:對應圖書表,對屬性提供get和set方法,存儲圖書數據2userbean.java:對應用戶表,對屬性提供get和set方法,存儲用戶數據3orderbea.java:對應訂單表,對屬性提供get和set方法,存儲訂單數據4GetConnect.java:將連接數據庫的操作封裝成一個類,方便使用。5Dispose.java:對業務邏輯進行處理。二控制器Servlet包包含以下文件1Admintrunc.java:對管理員的操作調用model進行處理,接收數據并準備數據,使其跳轉到正確的頁面。2PersonTurnc.java:對用戶的操作調用model進行處理,接收數據并準備數據,使其跳轉到正確的頁面。3login.java:控制對用戶登錄的驗證。4register.java:對用戶注冊進行驗證。三界面jsp包含顯示的文件1login.jsp:管理員用戶登錄2register.jsp:用戶注冊3Personcenter.jsp:用戶功能中心4seletbook.jsp:用戶查找圖書5showbook.jsp:顯示用戶查找的圖書6purchase.jsp:用戶購買圖書7ordersuccess.jsp:用戶購買圖書成功8orderfail.jsp:用戶購買圖書失敗9alertpassw.jsp:用戶更改密碼10Admincenter.jsp:管理員功能中心11orderform.jsp:管理員查看訂單12addbook.jsp:管理員增加圖書13alertbook.jsp:管理員更改圖書數量14fail.jsp:管理員操作失敗15success.jsp:管理員操作成功Web模塊的主要功能為1用戶管理員登陸2用戶注冊3用戶查找購買圖書4用戶修改密碼5管理員查看訂單6管理員添加圖書7管理員更改圖書數量五、設計步驟一數據庫設計1用戶表(user)因為是需求為網上書店所以不需要用戶太多的信息,而且用戶不一定愿意留下自己的信息,所以用戶表設計的盡量簡單,其中用戶名是主碼,等級用來區分管理員(-1)和用戶,新用戶注冊等級為0,隨著購買書的次數可增加等級。2圖書表(book)圖書設計中書號(bno)為主碼采用國際標準書號(ISBN),因為在當當網上查找圖書時書號最多為13位,所以設計為最多13位。其他屬性依次為書名(bname),第一作者(bauthor),出版社(bpublish),圖書分類(bclass),圖書存儲位置(baddress),圖書剩余量(bnumber),單價(price)。均不為空。3訂單表(orderform)訂單表中訂單號(ordernumber)為主碼,設置為自增。用戶名(username)作為外碼參照用戶表用戶名,書號(bno)作為外碼參照圖書表書號,其他屬性依次為電話號碼(phonenumber),因為圖書為貨到付款,所以電話號碼很重要。購買圖數量(booknumber),圖書配送地址(bookaddress),訂單總價(totalprice)。這些屬性均設置為非空。二Web端主要功能實現說明:1為了排版方便代碼使用截圖形式2只展示部分功能(用戶和管理員登陸和管理員查看訂單)1用戶和管理員登陸涉及文件:(界面)login.jsp(控制器)login.java(模型)GetConnect.java,Dispose.java(數據庫)user表第一步:用戶在login.jsp頁面輸入用戶名和密碼,首先在本地用javascript進行驗證,若用戶名或密碼為空則不進行提交用戶需正常輸入第2步:當用戶輸入的用戶名或密碼不為空時,表單的內容將會被提交至login.java中,為了防止中文亂碼,將調用Dispose.java中的轉換編碼的方法得到正確的用戶名和密碼。然后Dispose將調用Getconnect.java連接數據庫對用戶名和密碼進行驗證。第3步:Dispose類調用boolean類型checkuser方法進行驗證時,為了防止sql注入保證正確性,首先用用戶名得到用戶名所對應的密碼,再與傳出的密碼進行比較,若正確則返回true,否則返回false。為下一步判斷做準備第4步:login.java根據返回的結果判斷將要跳轉的頁面,若用戶名和密碼合法,則再調用Dispse中的getgrade方法獲得用戶的等級,若為-1則跳轉至管理員操作中心,若不是則跳轉至用戶操作中心。若用戶不合法,則跳轉至登錄界面說明其不合法。至此登錄功能完成。2管理員查看訂單并完成翻頁功能涉及文件:1(界面)Admincenter.jsp,orderform.jsp2(控制)Adminturnc.java3(模型)Dispose.java,GetConnect.java,orderbean.java4(數據庫)orderform表第1步:該功能由管理員在Admincenter.jsp中點擊超鏈接查看訂單觸發。同時向Adminturnc.java提交兩個變量flag和pagenow。其中flag用來標記要完成的操作,pagenow=1用來給定初始的頁數為1;第2步:Adminturnc.java接收到這兩個參數后,首先用flag判斷是否為獲得訂單的功能,當為獲得訂單的功能后,則調用Dispose函數getorderimg,和getpagecount函數獲得下一個界面要顯示的數據和總共的頁數。第3步:Dispose調用函數getorderimg,因為要支持翻頁所以要傳入當前的頁數,假設當每頁的記錄數pagesize=3確定后,每次都要將當前頁數之前的記錄都不取,而是取得當前的3條記錄。當獲得結果集后,每一個元組用一個userbean對象封裝起來,然后加入Arraylist后,當獲得3條記錄后,就將整個結果集(Arraylist)封裝后返回。第4步:Dispose調用getpagecount方法獲得總共的頁數,將orderfrom表名當做參數傳入后,可獲得總共的記錄數,再根據是否能整除每頁的記錄數決定是否加1獲得總共的頁數第5步:Adminturnc.java獲得數據后將其加入requst中送入到orderform.jsp中。并跳轉到orderform.jsp中第6步:orderform.jsp接收到數據后,在設計好的table中顯示出來,并顯示頁數,在點擊超鏈接頁數和上一頁和下一頁時,回到第2步,向Adminturc傳入flag和希望獲得的頁數(pagenow),直到管理員按返回主頁時返回管理員操作中心Admincenter.jsp至此,管理員查看訂單功能結束。查看訂單效果圖,其中當前頁為第一頁時不顯示上一頁,當前頁數為最后一頁時不顯示下一頁關鍵問題及其解決方法一中文亂碼問題:由于編碼問題而引起的中文亂碼在Dispose中增加了一個轉換編碼的方法1jsp文件顯示中文時亂碼解決方法:在jsp文件中將pageEncoding改為"utf-8"即可2jsp文件向jsp文件傳輸數據時中文亂碼解決方法:在接收端調用getchinse方法將接收到的數據恢復成中文3jsp文件向servlet文件傳輸數據中文亂碼解決方法:在接收端調用getchinse方法將接收到的數據恢復成中文4java文件調用sql語句向數據庫插入數據和查詢時中文亂碼解決方法:在連接數據庫時加入如下語句useUnicode=true&characterEncoding=UTF-8二javascript校驗錯誤由于我的myeclipse版本問題,在提交表單的時候onclick函數寫成如下形式時會報錯,后來在百度后通過更改meclipse設置后成功解決問題<inputtype="submit"value="登錄"onclick="returntest1();">七、設計結果1用戶管理員登陸,用戶和管理員在同一界面登錄,后臺通過區分等級來區分管理員和普通用戶,登錄時會先在本地校驗,若不合法,則不提交,若用戶不合法則返回登錄界面。登錄界面用戶不輸入用戶名或密碼普通用戶登錄成功管理員登錄成功2用戶注冊,注冊成功后跳轉入普通用戶登錄成功界面。3用戶查找購買圖書用戶查找圖書用戶查找到圖書用戶未查找到圖書用戶購買圖書,填寫訂單,用戶需填寫電話號碼購書數量和配送地址,其他信息自動填入且不可更改。用戶訂單成功,貨到付款用戶訂單失敗4用戶修改密碼5管理員查看訂單,剛才購買的有生之年訂單已加入訂單庫6管理員添加圖書7管理員更改圖書數量管理員操作成功管理員操作失敗,由于空間有限,所以,截圖被壓縮了思考題解答

如何提高腳本的執行效率,特別是數據庫操作效率?并將你的方法體現到上述設計過程中。答:1使用javascript等語言在本地先行校驗數據,使得有效的數據被傳遞這樣可以減少無效的數據訪問數據庫不成功而造成的對數據庫資源的浪費。2更加優化腳本的算法,使得執行效率更高3優化數據庫,減少冗余,設計出結構更合理的數據庫。

如果你想使你的網上書店能夠在Internet上成功運營,你還應做哪些工作?答:1將服務器放置在公網上,現在只有校園網范圍內的可以訪到我的電腦2優化代碼結構,盡量使用status等經過檢驗的成熟的架構。3使用session,cookies,servletcontext,等技術,加強功能和安全性。4在頁面間傳遞數據時需要加密,我這次基本都是用明文傳,不安全。5加強javascript校驗,這次我是在最后才解決了這個問題,應用較少。6加強支付方式的選取,增加安全性。7重新設計界面,以吸引跟多的用戶,這次基本沒有界面,很不好看。如何保證你的網上書店的網絡安全性,特別是你的網上書店的銷售款如何收取的?效率如何?現實可行么?請詳細分析,并提出解決方案。答:我的網上書店采用生成訂單,貨到付款的方式,這種方式效率較低,因為無法保證電話號碼和送貨地址的正確性,因此會產生很多無效的訂單,現實中要用戶和商家配合才能提高效率。要解決這個問題,要采用在線支付的方式,這就需要編寫與支付寶或銀行的接口程序,這樣才能實際解決這種問題。軟件使用說明由于我無法導出可執行文件,所以給出了源代碼文件夾和mysql導出的.sql文件,運行時在一個裝有java環境的myeclipse中導入源代碼,在將.sql文件導入mysql中,安裝好tomcat就可運行了。九、參考資料[1]數據庫系統概論(第4版)王珊薩師煊高等教育出版社.[2]軟件體系結構原理,方法與實踐(第2版)張友生編著清華大學出版社[3]計算機網絡教程高傳善毛迪林曹袖高等教育出版社十、驗收時間及驗收情況驗收時間:2015年1月13日上午驗收情況:通過設計體會通過這次實驗,使我對Web編程有了更進一步的認識,有于時間較為緊張,本次實驗屬于邊學邊用,對其中的很多技術大都一知半解,缺乏本質和系統的認識,但也深切的感受到了mvc設計模式的實用之處。希望未來可以寫出更加完善,結構更加合理的Web程序。路由器配置實驗一、實驗目的1.認識路由器的端口、型號2.掌握路由器的路由配置3.理解網絡互聯的基本原理二、實驗環境與設備本實驗在PC機上利用模擬軟件PacketTracerV6進行操作。三、實驗內容路由器接口的配置靜態路由配置默認路由配置動態路由配置本次實驗的主要任務是了解路由器的基本設置,和網絡之間的連接關系。通過這次的實驗很好的掌握了各個網段之間的,各個路由器下的pc的連接情況。通過對靜態,默認,動態路由配置,使得各個路由器下的PC相互通信。四、實驗步驟1.路由器接口的配置創建如圖所示的拓撲結構圖。(1)為主機PC0,PC1,PC2配置IP地址、子網掩碼和默認網關。網絡設備接口IP地址子網掩碼默認網關PC0FastEthernetPC1FastEthernetPC2FastEthernet(2)為路由器的各個接口分配IP地址和子網掩碼,交換機不用配置。網絡設備接口IP地址子網掩碼默認網關Router0F0/0S2/0Router1F0/0S3/0Router2F0/0S2/0S3/0(4)如配置Router0(5)查看路由器的路由表使用命令:showiproute顯示路由表中的路由信息。保存此時路由器顯示的路由信息,以便與后面的實驗結果進行比較。(C表示直連路由)Router0的路由表:Router1的路由表:Router2的路由表:(6)測試主機之間的連通性PC0與PC2的連通性:PC1與PC2的連通性:原因:因為不在同一個網段。2.配置靜態路由(1)在Router0中添加一條到網絡的靜態路由,命令如下:Router(config)#iproute(2)再去查看Router0路由表,與步驟(2)中的路由表進行對比,觀察路由表的變化情況。(3)在Router2中添加一條到網絡的路由后,路由表如下:Router(config)#iproute(4)測試PC0與PC2的連通性PC0與PC2的連通性如下圖:(5)在Router1和Router2中各添加一條靜態路由,以實現PC1與PC2的互通。在Router1中添加靜態路由:Router1路由表:在Router2中添加靜態路由:Router2路由表:P1與P2的連通性:(6)測試PC0與PC1的連通性此時,PC0與PC2可以互通,PC1與PC2可以互通,則,PC0與PC1的連通情況是如何的呢?查看Router0的路由表可知,其中不存在到達PC1所在網絡()的路由,查看Router2的路由表可知,其中不存在到達PC0所在網絡()的路由,因此,PC0與PC1的連通性為不通。(7)請分別在Router0和Router1中添加靜態路由,以實現PC0與PC1的互通。請在實驗報告中記錄你所使用的配置命令、主機間的連通性測試結果以及Router0和Router1的路由表(以截圖形式)。在Router0添加靜態路由:路由表:在Router1中添加靜態路由:7路由表:P0與P1連通性測試:3.設置默認路由經過上一個實驗(配置靜態路由)的實驗操作后,路由器Router0的路由表如下:(S表示靜態路由)PC0想要訪問PC1和PC2所在網絡,需要在Router0中添加兩條靜態路由。這兩條靜態路由的下一跳IP地址相同,并且Router0所在網絡只有一條通路連接其它網絡。這種情況下,如果使用默認路由,則Router0只需設置一條默認路由就可使PC0可訪問PC1和PC2,這樣Router0的路由表將更加簡單。下面我們來看看默認路由的配置:(1)首先刪除Router0中到達PC1和PC2所在網絡的靜態路由,參考命令如下:Rout

溫馨提示

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

評論

0/150

提交評論