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