關(guān)于Javaweb課程設(shè)計(jì)的心得體會(huì)
關(guān)于Javaweb課程設(shè)計(jì)的
心得體會(huì)
----在線測(cè)試系統(tǒng)
這次課程設(shè)計(jì)我做的是章節(jié)自測(cè)系統(tǒng),主要是服務(wù)于學(xué)生進(jìn)行階段性自測(cè)和練習(xí)。系統(tǒng)分為練習(xí)和測(cè)試兩部分,每一部分又各分若干專題。系統(tǒng)中采用的技術(shù)主要有:JDBC數(shù)據(jù)庫(kù)連接技術(shù)、和MVC三層架構(gòu)利用MyEclipse集成開(kāi)發(fā)環(huán)境。
雖然系統(tǒng)的基本功能都已實(shí)現(xiàn),但還是存在系統(tǒng)不穩(wěn)定等多個(gè)問(wèn)題尚待解決。這個(gè)系統(tǒng)主要是我自己開(kāi)發(fā)的,但也得到了老師和同學(xué)的很大幫助。我正在做系統(tǒng)的過(guò)程中遇到了很多問(wèn)題,有的是知識(shí)存儲(chǔ)不足,有的是考慮不夠周全,之所以能夠順利實(shí)現(xiàn)基本功功能,離不開(kāi)老師和同學(xué)的大力相助。事實(shí)證明,只靠自己是不能順利完成一套功能完整的系統(tǒng)的,必須充分利用團(tuán)隊(duì)的力量。
開(kāi)發(fā)一套系統(tǒng),最重要的是細(xì)心,并不是一定要做到面面俱到,但也要充分考慮到客戶的需求和現(xiàn)實(shí)意義,不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具
有先現(xiàn)實(shí)意義。所以在準(zhǔn)備工作中要正確分析社會(huì)需求了解現(xiàn)實(shí)應(yīng)用,畫出流程圖,把大體框架做好,然后再逐一細(xì)化。我們不可能做到面面俱到,但一定要做到步步扎實(shí),作為一個(gè)程序編程人員,要保持清醒的頭腦,以現(xiàn)實(shí)為依據(jù),讓自己的每一行代碼都能實(shí)現(xiàn)自己的意義。
通過(guò)這次課程設(shè)計(jì),我收獲的不僅僅是課程上的知識(shí)得到實(shí)際應(yīng)用,還有編程的基本習(xí)慣和開(kāi)發(fā)系統(tǒng)時(shí)應(yīng)注意的流程。
主要功能及規(guī)格分析1.1登錄系統(tǒng)的主要功能要求歡迎頁(yè)面系統(tǒng)安全登錄
管理員或普通用戶功能選擇1.2在線考試系統(tǒng)的主要實(shí)現(xiàn)功能要求用戶修改登錄密碼讓用戶選擇考試科目從試題庫(kù)中隨機(jī)出題給用戶
根據(jù)隨機(jī)出的題做出用戶的考試頁(yè)面保存用戶的答案給用戶的試卷評(píng)分查詢用戶成績(jī)
1.3在線管理系統(tǒng)的主要功能要求
瀏覽整個(gè)系統(tǒng)中的各種用戶(超級(jí)用戶、普通用戶)
添加管理員和普通用戶瀏覽并添加考試科目瀏覽并添加題庫(kù)管理員修改登錄密碼1.4在線閱卷系統(tǒng)的主要功能要求瀏覽系統(tǒng)中考試科目
根據(jù)考試科目進(jìn)行試卷批改
實(shí)現(xiàn)客觀題的自動(dòng)批改
實(shí)現(xiàn)主觀題的人工批改
2、功能需求和用例分析
2.1系統(tǒng)功能需求:老師可以在網(wǎng)上完成一個(gè)考試從題目設(shè)計(jì),試題錄入,考試安排,考試實(shí)施,考卷批
改,分析統(tǒng)計(jì);考試數(shù)據(jù),其它數(shù)據(jù)要求儲(chǔ)存在數(shù)據(jù)庫(kù)上;考試數(shù)據(jù)的存放和處理可以實(shí)現(xiàn)對(duì)學(xué)生公開(kāi)(學(xué)生自測(cè)成績(jī)可自己查看)也可以實(shí)現(xiàn)非公開(kāi),需要一定的安全性保障。2.1.1考生:
(1).分布式的,從考試客戶端連接到考試應(yīng)用服務(wù)器,在任何地方進(jìn)行身份確認(rèn),從而完成考試(2).考生可以登陸后修改自己的密碼
(2).題目具有一個(gè)穩(wěn)定性和隨機(jī)性,試卷生成方式主要有兩種(隨機(jī)自動(dòng)生成、固定試題、)(3).考生提交試卷后可以得知考試結(jié)果并且知道哪里出錯(cuò)。2.1.2老師:
(1).提供一個(gè)功能全面的考試管理客戶端,可以進(jìn)行考試的設(shè)計(jì)和安排功能(2).對(duì)考生進(jìn)行身份管理(3).對(duì)考試進(jìn)行監(jiān)控
(4).保存考試結(jié)果,供老師進(jìn)行分析和察看。2.2用例描述:帳戶管理
用例名稱:帳戶管理參與者:超級(jí)用戶
功能描述:1.查看學(xué)生詳細(xì)信息
2.添加和刪除學(xué)生用戶3.添加和刪除教師用戶考試管理
用例名稱:考試管理參與者:超級(jí)用戶功能描述:1.設(shè)置考試題型2.設(shè)置考試分值3.設(shè)置考試時(shí)間和難度級(jí)別
4.設(shè)置題目顯示方式(全屏顯示所以題還是一屏一題)
5.設(shè)置出題方式(隨機(jī)出題還是固定試題)題庫(kù)管理
用例名稱:題庫(kù)管理參與者:超級(jí)用戶
功能描述:1.題庫(kù)分類和題型管理2.添加和刪除、修改試題3.試題成批倒入在線閱卷
用例名稱:在線閱卷參與者:超級(jí)用戶
功能描述:1.查看學(xué)生是否交卷
2.系統(tǒng)對(duì)照題庫(kù)答案給出考試成績(jī).開(kāi)始考試
用例名稱:開(kāi)始考試參與者:普通用戶
功能描述:提示普通用戶輸入?yún)?shù),系統(tǒng)將進(jìn)行隨機(jī)抽題,然后進(jìn)入考試界面修改密碼
用例名稱:修改密碼參與者:普通用戶
功能描述:用戶為了安全起見(jiàn)可以修改自己的登錄密碼
考試記錄用例名稱:考試記錄
參與者:普通用戶
擴(kuò)展閱讀:JAVAWEB課程設(shè)計(jì)報(bào)告
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
海賊王專柜緒論
系統(tǒng)開(kāi)發(fā)背景
本項(xiàng)目作為《JAVAWEB應(yīng)用開(kāi)發(fā)技術(shù)》課程的實(shí)習(xí)項(xiàng)目提出,希望通過(guò)《海賊王專柜》電子商務(wù)網(wǎng)站的設(shè)計(jì)開(kāi)發(fā),提高使用JSP開(kāi)發(fā)J2EE架構(gòu)的電子商務(wù)網(wǎng)站(B/S結(jié)構(gòu))的能力;了解軟件文檔的相關(guān)標(biāo)準(zhǔn)和編寫原則,訓(xùn)練并掌握軟件各類文檔寫作的技巧。
海賊王專柜是一種高質(zhì)量,更快捷,更方便的購(gòu)物方式。海賊王專柜不僅可用于有關(guān)海賊王商品的在線銷售,也有各種商品的在線銷售。而且網(wǎng)站式的商店對(duì)商品的管理更加合理化,信息化。網(wǎng)上商店系統(tǒng)現(xiàn)狀
網(wǎng)上商店在我國(guó)剛起步,但發(fā)展很快。隨著我國(guó)互聯(lián)網(wǎng)的更加普及和網(wǎng)上商店的更趨成熟,會(huì)有越來(lái)越大的消費(fèi)群體,市場(chǎng)潛力會(huì)得到充分發(fā)揮。為了保護(hù)傳統(tǒng)商店的投資,網(wǎng)上商店解決方案應(yīng)切合傳統(tǒng)商店實(shí)際的需求和發(fā)展的趨向,使投入回報(bào)和管理效益最大化,傳統(tǒng)商店在實(shí)施上網(wǎng)方案的之前,必須對(duì)一系列問(wèn)題進(jìn)行科學(xué)的論證,如網(wǎng)上商店的需求分析、網(wǎng)上商店總體規(guī)劃、網(wǎng)上商店系統(tǒng)的功能和實(shí)施方案、網(wǎng)上商店的傳播與推廣、運(yùn)行網(wǎng)上商店系統(tǒng)的軟件和硬件配置、網(wǎng)上商店的管理系統(tǒng)和管理方法等等。主要工作
用戶分為注冊(cè)于非注冊(cè)用戶,區(qū)別是能否對(duì)商品進(jìn)行購(gòu)買。
管理員可執(zhí)行三種基本操作:對(duì)用戶的查看、凍結(jié);對(duì)商品的上傳、修改;對(duì)訂單的查看、執(zhí)行、刪除操作。
本項(xiàng)目主要實(shí)現(xiàn)了三個(gè)大的基本功能:即1:瀏覽用戶的對(duì)商品的瀏覽、搜索、登錄。2:用戶對(duì)商品的瀏覽購(gòu)買、及修改。系統(tǒng)需求分析系統(tǒng)功能需求客戶功能需求
通過(guò)商品名對(duì)庫(kù)中的商品進(jìn)行查找,顯示到客戶端對(duì)用戶的登陸操作
登陸后可將商品加入到購(gòu)物車
查看購(gòu)物車中現(xiàn)有商品、對(duì)購(gòu)物車中的商品數(shù)量進(jìn)行修改、清空購(gòu)物車
管理員功能需求
管理員是管理需求的應(yīng)用人員,分配一個(gè)賬號(hào)為此,可實(shí)現(xiàn)對(duì)前端信息的管理和后臺(tái)信息的修改等,管理需求如下:商品信息的維護(hù):增加、修改、刪除操作
用戶信息的管理:對(duì)用戶的信息的查看、修改、刪除等操作訂單管理:查看當(dāng)前訂單的狀態(tài)、刪除訂單等操作開(kāi)發(fā)平臺(tái)
集成開(kāi)發(fā)環(huán)境:Myeclipse7.5
簡(jiǎn)單而言,Myeclipse是Eclipse的一個(gè)插件,也是一款功能強(qiáng)大的J2EE集成開(kāi)發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò),而且6.0版本以后都不需要安裝
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
Eclipse了,7.5以后連服務(wù)器都不需配置安裝了,它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。Web應(yīng)用服務(wù)器:Tomcat6.0
Tomcat6.0是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。
數(shù)據(jù)庫(kù)服務(wù)器:SqlServer201*
SQLServer201*是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能(BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQLServer201*數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。此外SQLServer201*結(jié)合了分析、報(bào)表、集成和通知功能。系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)整體設(shè)計(jì)
瀏覽者主要是對(duì)信息的顯示、收集的工作,其中沒(méi)有邏輯處理代碼。
分為兩類:用戶和管理員,用戶是指前端用戶可見(jiàn)部分,注冊(cè)用戶和游客均可瀏覽,管理員部分僅是管理員賬號(hào)可操作部分。此部分為jsp頁(yè)面,頁(yè)面大體設(shè)計(jì)如下:(圖)
這是頁(yè)面的總體框架設(shè)計(jì)情況,共劃分了四個(gè)主區(qū)域:header,導(dǎo)航欄,main,bottom
Header包含頁(yè)面頭的部信息,各頁(yè)面基本相同:header1,header2;其中導(dǎo)航欄部分又包含八部分;
Main包含部分比較多,因?yàn)閷?dǎo)航欄的改變而改變;bottom包含頁(yè)腳部分:bottom,bottom1,bottom2。
這樣劃分頁(yè)面可以做到頁(yè)面的復(fù)用性,提高了頁(yè)面的靈活性。每個(gè)頁(yè)面只需編寫不同的小部分便可,減少了代碼的重復(fù)、冗余。
控制器中的Form其實(shí)也是一種bean類,為Action服務(wù),其中包含了相對(duì)應(yīng)的Action中配置的頁(yè)面的可收集內(nèi)容,負(fù)責(zé)由ActionServlet將該頁(yè)面請(qǐng)求中內(nèi)容剝離放入Action配置的對(duì)應(yīng)的Form中,然后作為參數(shù)傳遞給Action,所以Form中并沒(méi)有實(shí)際的處理方法,只有一些對(duì)應(yīng)頁(yè)面的屬性,和對(duì)應(yīng)屬性的getter/setter方法,如果有必要驗(yàn)證頁(yè)面?zhèn)鱽?lái)的參數(shù)是否合法可以重寫validate()方法來(lái)實(shí)現(xiàn)對(duì)頁(yè)面中屬性的驗(yàn)證,驗(yàn)證不通過(guò)責(zé)由核心控制器返回到請(qǐng)求頁(yè)面至客戶端,由于本項(xiàng)目由Validator框架來(lái)實(shí)現(xiàn)的驗(yàn)證所以沒(méi)有實(shí)現(xiàn)validate方法。只有對(duì)應(yīng)
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
的getter/setter方法。
Action部分:此部分為中間組件,只是起到了調(diào)用邏輯的功能,接受到ActionServlet傳來(lái)的參數(shù)后調(diào)用相應(yīng)的Bean完成相應(yīng)的邏輯。具體分類表如下:
ActionusershoppingLoginCheckServle邏輯方法接受到提交訂單頁(yè)面?zhèn)鱽?lái)的請(qǐng)求,處理相應(yīng)的邏輯,將客戶的訂單按提交得到的數(shù)據(jù)保存到庫(kù)中并與對(duì)應(yīng)的用戶名關(guān)中。接受到客戶登陸請(qǐng)求,并取出密碼用戶名,到庫(kù)中校驗(yàn),返回相應(yīng)的操作(已注冊(cè)予以登陸并取出相應(yīng)的訂單放入用戶對(duì)象中、已注冊(cè)但被凍結(jié)不予以登陸資格、未注冊(cè)密碼錯(cuò)誤)銷毀當(dāng)前客戶對(duì)應(yīng)的Session,返回到主面該Action接受搜索引擎?zhèn)鬟f過(guò)來(lái)的請(qǐng)求,然后調(diào)用邏輯bean,將參數(shù)作為關(guān)鍵字在庫(kù)中查找相對(duì)應(yīng)的符合結(jié)果,將所有的結(jié)果返回到頁(yè)面上進(jìn)行顯示。通過(guò)與數(shù)據(jù)庫(kù)連接,查詢用戶信息LogoutServletPieceSearchServletCustomerDaoJDBCImplGoodsCatalogDaoJDBC通過(guò)與數(shù)據(jù)庫(kù)連接,查詢獲取商品分類信息ImplGoodsDaoJDBCImpl通過(guò)與數(shù)據(jù)庫(kù)連接,查詢獲取商品分類信息searchCatalog該Action接受請(qǐng)求后,調(diào)用邏輯bean查詢?cè)搱D書(shū)分類的所有有關(guān)書(shū)籍信息,返回到頁(yè)面上GoodsCatalog獲取商品詳細(xì)信息ShoppingCartItemBuy:接受客戶傳來(lái)的請(qǐng)求,該請(qǐng)求中包含客戶要放入購(gòu)物車的書(shū)籍的id,然后搜索購(gòu)物車中是否有該書(shū)籍,有則將書(shū)籍的數(shù)目+1,沒(méi)有則實(shí)例一個(gè)item,數(shù)量為1,放入車中。Modify:提供了修改書(shū)籍?dāng)?shù)量的操作,按對(duì)應(yīng)的item的id重新對(duì)車中的書(shū)籍?dāng)?shù)量遍歷修改ShoppingCartClear:將購(gòu)物車清空,并將session中信息清空Delete:接受用戶要?jiǎng)h除的書(shū)籍id,然后從車中將書(shū)籍刪除
各功能的實(shí)現(xiàn)
搜索:通過(guò)的書(shū)名對(duì)庫(kù)中的書(shū)籍進(jìn)行查找,顯示到客戶端以下為搜索對(duì)應(yīng)的Action代碼:
publicclassPieceSearchServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
Stringname=request.getParameter("goods");GoodsDaodao=newGoodsDaoJDBCImpl();Listgoods=dao.findGoodsByName(name);request.setAttribute("results",goods);RequestDispatcherdispatcher=request.getRequestDispatcher("piecesearch.jsp");dispatcher.forward(request,response);}}
本Action主要是從頁(yè)面請(qǐng)求中取出書(shū)籍的檢索關(guān)鍵字,然后交給后臺(tái)dao.findGoodsByName(name)方法來(lái)查找,該方法返回一個(gè)linkedlist類型,其中包含了根據(jù)關(guān)鍵字檢索到數(shù)目所有結(jié)果.然后返回到提交請(qǐng)求的頁(yè)面.截圖:
對(duì)用戶的登陸、注冊(cè)操作用戶的登陸部分:(代碼)
LoginCheckServlet的方法:packagecn.sdcet.onepiece.web;
importjava.io.IOException;importjava.io.PrintWriter;
importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;
importcn.sdcet.onepiece.dao.CustomerDao;
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
importcn.sdcet.onepiece.dao.jdbc.CustomerDaoJDBCImpl;importcn.sdcet.onepiece.domain.Customer;
publicclassLoginCheckServletextendsHttpServlet{
/**
*Constructoroftheobject.*/
publicLoginCheckServlet(){super();}
/**
*Destructionoftheservlet.*/
publicvoiddestroy(){super.destroy();//Justputs"destroy"stringinlog//Putyourcodehere}
/**
*ThedoGetmethodoftheservlet.*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.*
*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred*@throwsIOExceptionifanerroroccurred*/
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}
/**
*ThedoPostmethodoftheservlet.*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.*
*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
*@throwsIOExceptionifanerroroccurred*/
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringname=request.getParameter("username");Stringpasswd=request.getParameter("password");CustomerDaodao=newCustomerDaoJDBCImpl();if(dao.hasMatchUser(name,passwd)){HttpSessionsession=request.getSession();Customercustomer=dao.findCustomerByName(name);session.setAttribute("user",customer);RequestDispatcherdispatcher=request.getRequestDispatcher("index.jsp");dispatcher.forward(request,response);}else{request.setAttribute("message","用戶名或密碼不正確");RequestDispatcherdispatcher=request.getRequestDispatcher("login.jsp");dispatcher.forward(request,response);}}}
jsp頁(yè)面:用戶登錄
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
用戶名:密碼:
在這里是將客戶登陸時(shí)傳遞過(guò)來(lái)的用戶名、密碼取出來(lái)調(diào)用Dbbean的方法來(lái)查找是否存在該用戶,查找的時(shí)候先從管理員表里查找,然后再查找客戶表,最后返回一個(gè)包含客戶信息的Customer類事例,兩表都不存在信息則返回一個(gè)簡(jiǎn)單的錯(cuò)誤頁(yè)面用戶登錄界面:
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
登錄成功會(huì)跳轉(zhuǎn)到首頁(yè)
密碼或用戶名錯(cuò)誤時(shí)會(huì)提示相應(yīng)的提示信息:
登陸前截圖:
登陸后截圖:
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
登陸后可將書(shū)籍加入到購(gòu)物車
加入購(gòu)物車的Action對(duì)應(yīng)的方法:publicclassShoppingCartItem{privateGoodsgoods;
privateintquantity;//購(gòu)買數(shù)量
publicShoppingCartItem(Goodsgoods){this.goods=goods;this.quantity=1;}
publicShoppingCartItem(Goodsgoods,intquantity){this.goods=goods;this.quantity=quantity;}/**
*添加一個(gè)商品*/
publicvoidincrementQuantity(){this.quantity++;}/**
*減少一個(gè)商品*/
publicvoiddecrementQuantiry(){if(this.quantity>0){this.quantity--;}
9JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
}publicGoodsgetGoods(){returngoods;}
publicvoidsetGoods(Goodsbook){this.goods=book;}
publicintgetQuantity(){returnquantity;}
publicvoidsetQuantity(intquantity){this.quantity=quantity;}
}該方法主要是接受頁(yè)面?zhèn)鱽?lái)的參數(shù),封裝成一個(gè)Item,然后從session中取出購(gòu)物車(沒(méi)有則實(shí)例一個(gè)),然后查看該車中是否包含該Item,有則Item的quantity的數(shù)量+1;
沒(méi)有則將Item放入購(gòu)物車中,最后后將購(gòu)物車放回session中。返回到請(qǐng)求頁(yè)面。此處為了防止刷新重復(fù)提交請(qǐng)求用到了Struts的Token機(jī)制(詳細(xì)見(jiàn)代碼)。截圖(登陸后單擊加入購(gòu)物車連接,最后跳轉(zhuǎn)到購(gòu)物車頁(yè)面):
查看購(gòu)物車中現(xiàn)有書(shū)籍、對(duì)購(gòu)物車中的書(shū)籍?dāng)?shù)量進(jìn)行修改、清空購(gòu)物車查看:此處代碼省略,此處是從頁(yè)面中循環(huán)遍歷購(gòu)物車,然后將Item還原為book在頁(yè)面上打印出來(lái)即可。
修改:修改對(duì)應(yīng)的Action方法:publicclassShoppingCart{
privateHashMapcarts=newHashMap();
10JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
/**
*向購(gòu)物車中增加一本書(shū)
*@parambook需要添加的圖書(shū)*/
publicvoidadd(Goodsgoods){intid=goods.getGood_id();if(carts.containsKey(id)){//購(gòu)物車中存在該條目,取出條目然后數(shù)量加1ShoppingCartItemitem=carts.get(id);item.incrementQuantity();}else{//購(gòu)物車中不存在該條目,創(chuàng)建一個(gè)新的條目ShoppingCartItemitem=newShoppingCartItem(goods);carts.put(id,item);}}/**
*獲取購(gòu)物車的所有條目*@return購(gòu)物車條目列表*/
publicListgetItems(){Listitems=ArrayList(carts.values());returnitems;}/**
*從購(gòu)物車中刪除一個(gè)條目
*@parambookId要?jiǎng)h除圖書(shū)的ID*/
publicvoiddeleteItem(intgoodsId){if(carts.containsKey(goodsId)){carts.remove(goodsId);}}/**
*修改圖書(shū)的購(gòu)買數(shù)量
*@parambookId要修改的圖書(shū)Id*@paramnumber新的購(gòu)買數(shù)量*/
publicvoidsetQuantity(intgoodsId,intnumber){
11newJAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
if(carts.containsKey(goodsId)){ShoppingCartItemitem=carts.get(goodsId);item.setQuantity(number);}}/**
*清空購(gòu)物車*/
publicvoidclear(){carts.clear();}/**
*獲取購(gòu)物車中商品總價(jià)
*@return購(gòu)物車中商品總價(jià)格*/
publicfloatgetPayment(){floattotal=0;Listitems=newArrayList(carts.values());for(ShoppingCartItemitem:items){total+=item.getGoods().getPrice()*item.getQuantity();}returntotal;}
}此處修改數(shù)量時(shí)提交請(qǐng)求是提交的車中所有的Item的數(shù)目(數(shù)組的形式),在該方法中取出數(shù)組,便利購(gòu)物車中所有Item,將Item的數(shù)量修改,返回到客戶端。
運(yùn)行截圖(以上為例,修改后截圖):
點(diǎn)擊生成訂單,進(jìn)行訂單的提交,完善收信人信息:
JAVAWEB課程設(shè)計(jì)報(bào)告-海賊王專柜
總結(jié)與展望
經(jīng)過(guò)兩周的實(shí)習(xí),本網(wǎng)站的建設(shè)基本完成,基本功能也能夠正常使用,但是由于課程設(shè)計(jì)時(shí)間較短,所以該站點(diǎn)系統(tǒng)還有許多不盡如人意的地方,比如說(shuō)功能不夠豐富,沒(méi)有對(duì)部分功能進(jìn)行細(xì)化,管理員部分功能連接不能夠?qū)崿F(xiàn),沒(méi)有對(duì)strus框架進(jìn)行應(yīng)用,對(duì)數(shù)據(jù)的安全性考慮不多等,這些都有待改進(jìn)。經(jīng)過(guò)這次課程設(shè)計(jì),我基本熟悉了網(wǎng)站開(kāi)發(fā)的流程和基本技術(shù),基本了解了小型項(xiàng)目的開(kāi)發(fā)與設(shè)計(jì),提高了自己的思考分析能力、設(shè)計(jì)能力,同時(shí)也提高了動(dòng)手編碼能力。參考文獻(xiàn)
[1]柴大鵬.JavaWeb應(yīng)用開(kāi)發(fā)技術(shù)詳解.北京:機(jī)械工業(yè)出版社,201*.2
友情提示:本文中關(guān)于《關(guān)于Javaweb課程設(shè)計(jì)的心得體會(huì)》給出的范例僅供您參考拓展思維使用,關(guān)于Javaweb課程設(shè)計(jì)的心得體會(huì):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。