




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電子商務(wù)系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)指導(dǎo)書(shū)電子商務(wù)系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)指導(dǎo)書(shū)V1.0班級(jí):姓名:學(xué)號(hào):指導(dǎo)老師:湖北汽車工業(yè)學(xué)院經(jīng)管學(xué)院信管系2014年10月前言本課程系統(tǒng)介紹基于J2EE的電子商務(wù)的應(yīng)用開(kāi)發(fā)技術(shù),講解了J2EEWeb編程的基本原理、方法、技術(shù),以及應(yīng)用程序開(kāi)發(fā)模式。通過(guò)本課程學(xué)習(xí),學(xué)生應(yīng)達(dá)到以下四個(gè)目的:①對(duì)Java基礎(chǔ)應(yīng)用要有一個(gè)較清晰的了解;②理解電子商務(wù)網(wǎng)站開(kāi)發(fā)的常用的設(shè)計(jì)和程序開(kāi)發(fā)技術(shù);③掌握運(yùn)用Struts,Hibernate,Ajax技術(shù)開(kāi)發(fā)電子商務(wù)網(wǎng)站系統(tǒng);④了解電子商務(wù)系統(tǒng)應(yīng)用與開(kāi)發(fā)前沿技術(shù)。為了適應(yīng)電子商務(wù)的發(fā)展,更好的了解電子商務(wù)系統(tǒng)的實(shí)現(xiàn)技術(shù),掌握現(xiàn)代基于J2EE軟件的開(kāi)發(fā)技術(shù)基礎(chǔ)十分重要。隨著軟件工程技術(shù)的發(fā)展,電子商務(wù)系統(tǒng)開(kāi)發(fā)技術(shù)也層出不窮、門類眾多,并且每一門技術(shù)都具有相當(dāng)?shù)膹?fù)雜程度。本實(shí)踐課程,以當(dāng)前比較流行且比較容易掌握的技術(shù)為基本內(nèi)容,幫助學(xué)生理解和掌握典型實(shí)用的與電子商務(wù)系統(tǒng)開(kāi)發(fā)有關(guān)的技術(shù)基礎(chǔ)。本課程我們采用的開(kāi)發(fā)環(huán)境是NetBeanIDE.NetBeanIDE是一個(gè)開(kāi)放的免費(fèi)的開(kāi)源平臺(tái),它提供了許多中間件(Struts,Hibernate,Spring等)來(lái)降低應(yīng)用程序開(kāi)發(fā)的難度。它支持目前比較流行的基于MODEL-VIEW-CONTROLLER編程架構(gòu)。同時(shí)它可以根據(jù)用戶自己需求,可以配置PHP,J2ME,C++等開(kāi)發(fā)環(huán)境。希望同學(xué)們?cè)诶帽緦?shí)驗(yàn)指導(dǎo)書(shū)的過(guò)程中及時(shí)幫助我們發(fā)現(xiàn)問(wèn)題,提出建議,讓我們一起為把《電子商務(wù)系統(tǒng)開(kāi)發(fā)》的教學(xué)搞好而努力奮斗!目錄前言 2實(shí)驗(yàn)一需求設(shè)計(jì) 4實(shí)驗(yàn)二Jsp,JavaServlet綜合運(yùn)用編程 4實(shí)驗(yàn)二Struts基礎(chǔ)及應(yīng)用編程 18實(shí)驗(yàn)三JDBC,Hibernate,及JSTL數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)編程 27實(shí)驗(yàn)四MVC模式設(shè)計(jì) 39實(shí)驗(yàn)一需求設(shè)計(jì)實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)?zāi)康氖歉鶕?jù)一個(gè)實(shí)際的項(xiàng)目簡(jiǎn)單需求,擴(kuò)充一個(gè)詳細(xì)的需求,為后續(xù)的開(kāi)發(fā)打下基礎(chǔ)。從而為以后獨(dú)立開(kāi)發(fā)電子商務(wù)系統(tǒng)程序奠定基礎(chǔ)。實(shí)驗(yàn)內(nèi)容:組織機(jī)構(gòu)情況本系統(tǒng)主要針對(duì)現(xiàn)代企業(yè)的成本管理困難和物資查看障礙而設(shè)計(jì)的,在本系統(tǒng)中主要設(shè)計(jì)的部門是銷售部、采購(gòu)部、倉(cāng)儲(chǔ)部、財(cái)務(wù)部、生產(chǎn)部以及其他相關(guān)部門。銷售部主要負(fù)責(zé)銷售業(yè)務(wù)和銷售信息的反饋業(yè)務(wù)。采購(gòu)部主要負(fù)責(zé)收集各部門的請(qǐng)購(gòu)信息并負(fù)責(zé)采購(gòu)業(yè)務(wù)。倉(cāng)儲(chǔ)部主要核實(shí)售出以及買進(jìn)業(yè)務(wù)的準(zhǔn)確性。財(cái)務(wù)部主要負(fù)責(zé)對(duì)銷售和采購(gòu)賬目的核實(shí)以及貨款的支付和收繳業(yè)務(wù)。各部門的業(yè):務(wù)活動(dòng)情況系統(tǒng)的總體業(yè)務(wù)流程圖銷售部銷售部財(cái)務(wù)部采購(gòu)部銷售計(jì)劃銷售訂單發(fā)出商品銷售復(fù)核銷售開(kāi)票收費(fèi)計(jì)劃各個(gè)部門請(qǐng)購(gòu)單采購(gòu)單倉(cāng)儲(chǔ)部實(shí)際入庫(kù)采購(gòu)開(kāi)單付款計(jì)劃發(fā)出采購(gòu)申請(qǐng)經(jīng)理審核下發(fā)貨品進(jìn)入倉(cāng)庫(kù)(1)銷售部:銷售部主要負(fù)責(zé)銷售業(yè)務(wù)。由銷售部負(fù)責(zé)人制定銷售計(jì)劃,然后經(jīng)過(guò)總經(jīng)理的審查,最終得到一個(gè)確切的銷售計(jì)劃,經(jīng)過(guò)實(shí)際銷售以后得到真實(shí)的銷售訂單,經(jīng)過(guò)銷售部和倉(cāng)儲(chǔ)部負(fù)責(zé)人的核查以后確定發(fā)出商品單,發(fā)出商品單經(jīng)過(guò)第二次審查確保沒(méi)有差錯(cuò)后得到銷售復(fù)核單,銷售復(fù)核單經(jīng)過(guò)銷售部和財(cái)務(wù)部共同核實(shí)以后得到銷售開(kāi)票。(2)采購(gòu)部:采購(gòu)部主要負(fù)責(zé)采購(gòu)業(yè)務(wù)。首先由各個(gè)部門的負(fù)責(zé)人對(duì)本部門需要采購(gòu)的物品資料進(jìn)行整理然后發(fā)出請(qǐng)購(gòu)意愿形成請(qǐng)購(gòu)單,經(jīng)過(guò)總經(jīng)理審核以后形成采購(gòu)單,采購(gòu)產(chǎn)品入庫(kù)以后得到入庫(kù)單,入庫(kù)單得到倉(cāng)儲(chǔ)部和采購(gòu)部以及財(cái)務(wù)部核實(shí)后得到采購(gòu)開(kāi)單。銷售部負(fù)責(zé)人銷售部負(fù)責(zé)人初步銷售計(jì)劃最終銷售計(jì)劃銷售訂單發(fā)出商品單銷售復(fù)核單銷售開(kāi)票(3)財(cái)務(wù)部:財(cái)務(wù)部主要和其他各個(gè)部門相互協(xié)調(diào)合作,負(fù)責(zé)成本核算,賬目檢查和購(gòu)銷產(chǎn)品的明細(xì)賬記載以及貨款的支付和收回業(yè)務(wù)。監(jiān)督公司各個(gè)部門的運(yùn)行情況,為公司的正常運(yùn)營(yíng)提供保障。各部門負(fù)責(zé)人各部門負(fù)責(zé)人請(qǐng)購(gòu)單采購(gòu)單入庫(kù)單采購(gòu)開(kāi)單(4)倉(cāng)儲(chǔ)部出庫(kù)單售出商品出庫(kù)單售出商品銷售部銷售開(kāi)單財(cái)務(wù)部采購(gòu)開(kāi)單采購(gòu)部倉(cāng)儲(chǔ)部購(gòu)入商品三、功能需求采購(gòu)需求上傳模塊:該模塊主要用于各部門負(fù)責(zé)清點(diǎn)材料的負(fù)責(zé)人進(jìn)行物料清點(diǎn)以后發(fā)出請(qǐng)購(gòu)申請(qǐng),請(qǐng)購(gòu)申請(qǐng)通過(guò)該模塊上傳到經(jīng)理辦公室。請(qǐng)購(gòu)單審核模塊:請(qǐng)購(gòu)單經(jīng)過(guò)各單位負(fù)責(zé)人核實(shí)以后上傳到經(jīng)理辦公室,經(jīng)理對(duì)其中項(xiàng)目進(jìn)行審核然后得到具體需要采購(gòu)的材料,自動(dòng)生成采購(gòu)單。采購(gòu)單下發(fā)模塊:采購(gòu)單經(jīng)過(guò)經(jīng)理的審核以后便可以下發(fā)到負(fù)責(zé)采購(gòu)單的采購(gòu)部,該模塊主要用于采購(gòu)單的下發(fā),讓采購(gòu)部能盡快的得到采購(gòu)命令。采購(gòu)單處理模塊:采購(gòu)部得到采購(gòu)單以后對(duì)采購(gòu)單進(jìn)行處理,如價(jià)格,預(yù)算的控制等要求的學(xué)習(xí),最后通過(guò)采購(gòu)部的各負(fù)責(zé)人對(duì)所需物料進(jìn)行采購(gòu),最終達(dá)到采購(gòu)物品入庫(kù)并生成入庫(kù)訂單發(fā)送到倉(cāng)儲(chǔ)部同時(shí)采購(gòu)的價(jià)格和總的賬目核算傳達(dá)到經(jīng)理辦公室以及財(cái)務(wù)部的目的。產(chǎn)品檢查及入庫(kù)模塊:產(chǎn)品經(jīng)過(guò)采購(gòu)部采購(gòu)以后需要送到倉(cāng)儲(chǔ)部,但是在進(jìn)入倉(cāng)儲(chǔ)部的時(shí)候必須進(jìn)行檢查,保證購(gòu)買物料的數(shù)量和質(zhì)量沒(méi)有問(wèn)題。根據(jù)采購(gòu)部發(fā)來(lái)的入庫(kù)訂單進(jìn)行審核以后自動(dòng)生成入庫(kù)單并發(fā)送到財(cái)務(wù)部以及總經(jīng)理辦公室。銷售計(jì)劃指定以及提交模塊:對(duì)于一家企業(yè)來(lái)說(shuō)每年必須有相應(yīng)的營(yíng)業(yè)額并且這個(gè)營(yíng)業(yè)額必須和公司的預(yù)期不能相差過(guò)大,一個(gè)公司的預(yù)計(jì)能力是和它企業(yè)實(shí)力息息相關(guān)的。所以銷售部每年都必須根據(jù)上一年的銷售情況和市場(chǎng)容量進(jìn)行評(píng)估和預(yù)計(jì)本年度的銷售情況并把該計(jì)劃發(fā)送到經(jīng)理辦公室,等待經(jīng)理的審核通過(guò)。銷售計(jì)劃審核模塊:銷售部經(jīng)過(guò)分析以后制定出可行的銷售計(jì)劃,但是這個(gè)銷售計(jì)劃不一定能適應(yīng)目前的公司的狀況,所以必須通過(guò)總經(jīng)理的審核,總經(jīng)理在經(jīng)過(guò)與各部門進(jìn)行協(xié)調(diào)和洽談后得到本公司的實(shí)際運(yùn)營(yíng)情況然后對(duì)銷售計(jì)劃進(jìn)行審核,最終共同制定一個(gè)合適的銷售計(jì)劃。銷售計(jì)劃反饋模塊:銷售計(jì)劃實(shí)施以后有可能出現(xiàn)變故或者在銷售結(jié)束以后需要和本公司的預(yù)計(jì)的銷售計(jì)劃進(jìn)行比較,然后得到銷售反饋單,根據(jù)銷售反饋單既可以對(duì)目前銷售計(jì)劃進(jìn)行合理的更改又可以對(duì)下一年的銷售計(jì)劃的指定奠定基礎(chǔ)。銷售訂單核實(shí)模塊:在經(jīng)過(guò)一系列的銷售措施以后便可以進(jìn)行銷售了,但是在進(jìn)行銷售之前必須對(duì)所銷售的對(duì)象進(jìn)行了解,這個(gè)過(guò)程就必須經(jīng)過(guò)領(lǐng)導(dǎo)部門的審核,同時(shí)銷售的價(jià)格是否合理也需要和財(cái)務(wù)部門一起進(jìn)行核算,所以,在實(shí)際售出商品前還必須進(jìn)行一些調(diào)查和審核措施,保證銷售的順利進(jìn)行。商品出庫(kù)模塊:銷售訂單經(jīng)過(guò)審核后便可想購(gòu)買方提供商品,為了賬目核算的準(zhǔn)確性商品出庫(kù)必須經(jīng)過(guò)倉(cāng)儲(chǔ)部的檢查和校驗(yàn)。經(jīng)過(guò)校驗(yàn)后得到商品出庫(kù)單發(fā)送到財(cái)務(wù)部和經(jīng)理辦公室。采購(gòu)開(kāi)單模塊銷售開(kāi)單模塊產(chǎn)成品入庫(kù)模塊入庫(kù)產(chǎn)品處理模塊實(shí)驗(yàn)二Jsp,JavaServlet綜合運(yùn)用編程實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)?zāi)康氖窍Mㄟ^(guò)模擬設(shè)計(jì)一個(gè)關(guān)于畢業(yè)論文設(shè)計(jì)題目登記表程序,來(lái)對(duì)客戶端用JavaScript編程進(jìn)行運(yùn)用,同時(shí)知道網(wǎng)頁(yè)的數(shù)據(jù)是如何傳遞的,對(duì)服務(wù)器端的用JSP,和JAVAServlet編程進(jìn)行實(shí)踐,從而達(dá)到對(duì)課程所講的知識(shí)點(diǎn),正則表達(dá)式,JavaScript,JSP,JAVAServletJSTL等技術(shù)有較深刻的體會(huì)和認(rèn)識(shí),從而為以后獨(dú)立開(kāi)發(fā)電子商務(wù)系統(tǒng)程序奠定基礎(chǔ)。實(shí)驗(yàn)內(nèi)容:1、基本的jsp和Servlet語(yǔ)法2、SP來(lái)編寫和實(shí)現(xiàn)一個(gè)Form,F(xiàn)orm中包含字段有,姓名,地址,郵件地址,郵編,電話,提交日期。用JavaServlet來(lái)獲取Form的值。操作步驟:設(shè)置Tomcat運(yùn)行使用的JDK:展開(kāi)Tomcat6.x,單擊JDK,單擊tomcatJDKname:后的Add,在打開(kāi)的頁(yè)面中,單擊JREhome后的Directory按鈕,選擇輸入C:\ProgramFiles\Java\jdk1.6.0_12實(shí)驗(yàn)內(nèi)容:1.開(kāi)發(fā)和運(yùn)行JSP程序創(chuàng)建Web項(xiàng)目FileNewWebProject(如:Myjsp)新建JSP文件(如firstJsp.jsp)編輯JSP文件(可借助DreamWeaver)發(fā)布項(xiàng)目到Tomcat右擊項(xiàng)目名稱MyjspMyEclipseAddandRemoveProjectDeploymentsProject:選擇Myjsp項(xiàng)目,并單擊Add,彈出ProjectDeployments對(duì)話框,在對(duì)話框中,選擇server為Tomcat6.x,并單擊Finish運(yùn)行測(cè)試啟動(dòng)Tomcat6.x運(yùn)行JSP文件瀏覽器中輸入:http://localhost:8080/Myjsp/firstJsp.jsp2、JSP語(yǔ)法的應(yīng)用實(shí)現(xiàn)客戶在一個(gè)登錄頁(yè)面form.jsp(如圖2-1)輸入登錄信息并單擊“確定”后跳轉(zhuǎn)到另一個(gè)頁(yè)面doForm.jsp(如圖2-2)輸出“用戶名”和“口令”信息。圖2-1圖2-2要求:分別用下列三種方法實(shí)現(xiàn)。(1)創(chuàng)建一個(gè)JavaBeanUser類,該類含有兩個(gè)屬性u(píng)sername和password,給每個(gè)屬性增加相應(yīng)的get和set方法。在doForm.jsp頁(yè)面中用<jsp:useBean>動(dòng)作標(biāo)識(shí)實(shí)例化User類對(duì)象,再使用<jsp:setProperty>動(dòng)作標(biāo)識(shí)來(lái)把客戶在form.jsp表單中填寫的值賦給對(duì)象,最后用<jsp:getProperty>在頁(yè)面輸出結(jié)果。(2)創(chuàng)建一個(gè)JavaBeanUser類,該類含有兩個(gè)屬性u(píng)sername和password,給每個(gè)屬性增加相應(yīng)的get和set方法。在doForm.jsp頁(yè)面中采用Java以jsp腳本代碼(scriptlet)方式實(shí)例化User類對(duì)象,用setAttribute()函數(shù)把對(duì)象寫入request或session中,再使用<jsp:setProperty>動(dòng)作標(biāo)識(shí)來(lái)把客戶在form.jsp表單中填寫的值賦給對(duì)象,最后用jsp表達(dá)式的方式把對(duì)象的信息輸出到頁(yè)面中。(3)不創(chuàng)建JavaBeanUser類。在doForm.jsp頁(yè)面中用getParameter()來(lái)獲取客戶在form.jsp表單中填寫的值,最后輸出相關(guān)信息。試驗(yàn)主要代碼:Login.jsp:<body><formaction="dologin.jsp"method="post"><tablewidth="300"height="100"border="1"><caption>個(gè)人信息輸入</caption><tr><td>輸入你的名字</td><td><inputtype="text"class="s"width="50px"name="text1"></td></tr><tr><td>輸入你的密碼</td><td><inputtype="password"class="s"width="50px"name="text2"></td></tr><tralign="right"valign="middle"><td><inputtype="reset"value="重置"></td><td><inputtype="submit"value="提交"></td></tr></table></form>Login.jsp代碼:<body><%Stringname=request.getParameter("text1");Stringpass=request.getParameter("text2");session.setAttribute("name",name);if(name.equals("123")&&pass.equals("123")){ response.sendRedirect("messagebord.jsp");}else response.sendRedirect("login.jsp");%></body>show.jsp的代碼:<body><%request.setCharacterEncoding("UTF-8");%><tablewidth="300"height="150"border="1"><caption>這是留言具體內(nèi)容</caption><tr><tdwidth="80px">留言者</td><td><%=session.getAttribute("name")%></td></tr><tr><tdwidth="80px">留言標(biāo)題</td><td><%=request.getParameter("content")%></td></tr><tr><tdwidth="80px">留言內(nèi)容</td><td><%=request.getParameter("content")%></td></tr></table></body>實(shí)驗(yàn)心得:本次實(shí)驗(yàn)通過(guò)模擬設(shè)計(jì)一個(gè)關(guān)于畢業(yè)論文設(shè)計(jì)題目登記表程序,來(lái)對(duì)客戶端用JavaScript編程進(jìn)行運(yùn)用,了解了網(wǎng)頁(yè)的數(shù)據(jù)是如何傳遞的,對(duì)服務(wù)器端的用JSP,和JAVAServlet編程進(jìn)行實(shí)踐,對(duì)所學(xué)知識(shí)運(yùn)用,對(duì)JavaScript,JSP,JAVAServletJSTL等技術(shù)有較深刻的體會(huì)和認(rèn)識(shí),為以后獨(dú)立開(kāi)發(fā)電子商務(wù)系統(tǒng)程序奠定基礎(chǔ)。通過(guò)本次實(shí)驗(yàn)了解和學(xué)會(huì)了使用基本的jsp和Servlet語(yǔ)法。另外就是使用SP來(lái)編寫和實(shí)現(xiàn)一個(gè)Form,用JavaServlet來(lái)獲取Form的值是本次實(shí)驗(yàn)較難的地方,做了好多次才做成功。實(shí)驗(yàn)三spring編程實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)?zāi)康氖窍Mㄟ^(guò)編寫實(shí)現(xiàn)用戶訪問(wèn)數(shù)據(jù)庫(kù)的功能程序,來(lái)對(duì)SpringDAO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)有一個(gè)深刻的理解和認(rèn)識(shí),對(duì)運(yùn)用數(shù)據(jù)庫(kù)訪問(wèn)標(biāo)簽庫(kù)編程模式進(jìn)行熟悉,從而達(dá)到對(duì)能夠運(yùn)用它們來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)操作。實(shí)驗(yàn)內(nèi)容:使用JDBC方式的SpringDAO主要由以下幾步:1.數(shù)據(jù)庫(kù)中數(shù)據(jù)表myspringuser這個(gè)數(shù)據(jù)表的設(shè)計(jì)2.與數(shù)據(jù)庫(kù)數(shù)據(jù)表myspringuser對(duì)應(yīng)的數(shù)據(jù)類User的設(shè)計(jì),3.設(shè)計(jì)用戶表myspringuser的操作DAO類,UserDao,其中實(shí)現(xiàn)接口IUserDao,類UserDAO有一個(gè)注入DataSource的成員。4.配置文件bean.xml5.測(cè)試類SpringDaoTest使用SpringDAO前需加入相關(guān)包到工程,主要有spring.jar,mysql-connector-java-5.1.0-bin.jar,log4j.jar,mons.logging.jar。主要代碼:設(shè)計(jì)與數(shù)據(jù)表myspringuser對(duì)應(yīng)的數(shù)據(jù)類Userpackagecom.peng.springdao;publicclassUser{privateIntegerid;privateStringname;privateIntegerage;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicIntegergetAge(){returnage;}publicvoidsetAge(Integerage){this.age=age;}}設(shè)計(jì)接口IUserDaopackagecom.peng.springdao;publicinterfaceIUserDao{publicvoidinsert(Useruser);publicUserfind(Integerid);}設(shè)計(jì)操作類UserDao,它繼承自IUserDao:packagecom.peng.springdao;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.sql.DataSource;//DAO實(shí)現(xiàn),要有一個(gè)setDataSource()的方法,這樣才能注入DataSource。publicclassUserDaoimplementsIUserDao{privateDataSourcedataSource;publicUserfind(Integerid){Connectionconn=null;Statementstmt=null;ResultSetrs=null;try{conn=dataSource.getConnection();stmt=conn.createStatement();Stringsql="select*frommyspringuserwhereuid='"+id+"'";rs=stmt.executeQuery(sql);}catch(Exceptione){e.printStackTrace();returnnull;}Useruser=newUser();user.setId(id);try{while(rs.next()){Stringusername=rs.getString("username");intage=rs.getInt("userage");user.setAge(age);user.setName(username);}}catch(SQLExceptione){e.printStackTrace();returnnull;}finally{if(stmt!=null){try{stmt.close();}catch(Exceptione){e.printStackTrace();}}}returnuser;}publicvoidinsert(Useruser){Stringname=user.getName();intage=user.getAge().intValue();Connectionconn=null;Statementstmt=null;try{conn=dataSource.getConnection();stmt=conn.createStatement();Stringsql="insertintomyspringuser(username,userage)"+"values('"+name+"',"+age+")";stmt.execute(sql);}catch(Exceptione){e.printStackTrace();}finally{if(stmt!=null){try{stmt.close();}catch(Exceptione){e.printStackTrace();}}if(conn!=null){try{conn.close();}catch(Exceptione){e.printStackTrace();}}}}publicDataSourcegetDataSource(){returndataSource;}publicvoidsetDataSource(DataSourcedataSource){this.dataSource=dataSource;}}packagecom.peng.springdao;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassSpringDaoTest{publicstaticvoidmain(String[]args){Useruser=newUser();user.setAge(23);user.setName("jim");ApplicationContextcontext=newClassPathXmlApplicationContext("bean.xml");IUserDaouserDao=(IUserDao)context.getBean("userDao");userDao.insert(user);Useruser2=userDao.find(2);//在此之前已經(jīng)插入id為2的數(shù)據(jù)if(user2!=null)System.out.println("uid:2"+",name:"+user2.getName());}}實(shí)驗(yàn)心得:本次實(shí)驗(yàn)是希望通過(guò)編寫實(shí)現(xiàn)用戶訪問(wèn)數(shù)據(jù)庫(kù)的功能程序,對(duì)SpringDAO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)有了較為深刻的理解和認(rèn)識(shí),熟悉了運(yùn)用數(shù)據(jù)庫(kù)訪問(wèn)標(biāo)簽庫(kù)編程模式。在本次實(shí)驗(yàn)中需要注意的是使用SpringDAO前需加入相關(guān)包到工程,主要有spring.jar,mysql-connector-java-5.1.0-bin.jar,log4j.jar,mons.logging.jar。通過(guò)本次實(shí)驗(yàn)掌握使用JDBC方式的SpringDAO步驟。1.數(shù)據(jù)庫(kù)中數(shù)據(jù)表myspringuser這個(gè)數(shù)據(jù)表的設(shè)計(jì)2.與數(shù)據(jù)庫(kù)數(shù)據(jù)表myspringuser對(duì)應(yīng)的數(shù)據(jù)類User的設(shè)計(jì),3.設(shè)計(jì)用戶表myspringuser的操作DAO類,UserDao,其中實(shí)現(xiàn)接口IUserDao,類UserDAO有一個(gè)注入DataSource的成員。4.配置文件bean.xml5.測(cè)試類SpringDaoTest實(shí)驗(yàn)四MVC模式設(shè)計(jì)實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)?zāi)康氖窍M\(yùn)用前面所學(xué)的知識(shí),架構(gòu)一個(gè)MVC模式的系統(tǒng).實(shí)驗(yàn)內(nèi)容:本實(shí)驗(yàn)通過(guò)架構(gòu)一個(gè)MVC模式的系統(tǒng)使得系統(tǒng)能夠?qū)斎氲馁~戶名進(jìn)行驗(yàn)證,如果賬戶名和密碼正確則進(jìn)入歡迎登陸的頁(yè)面,如果驗(yàn)證錯(cuò)誤則返回錯(cuò)誤頁(yè)面,如果用戶名經(jīng)檢測(cè)不存在則返回一個(gè)注冊(cè)賬號(hào)的頁(yè)面實(shí)現(xiàn)賬號(hào)的注冊(cè)。登陸頁(yè)面的代碼:<%@pagecontentType="text/html;charset=GBK"language="java"errorPage=""%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="/1999/xhtml"><head> <title>用戶登錄</title> <metaname="website"content=""/></head><body><!--輸出出錯(cuò)提示--><spanstyle="color:red;font-weight:bold"><%if(request.getAttribute("err")!=null){out.println(request.getAttribute("err")+"<br/>");}%></span>請(qǐng)輸入用戶名和密碼:<formid="login"method="post"action="login">用戶名:<inputtype="text"name="username"/><br/>密 碼:<inputtype="password"name="pass"/><br/><inputtype="submit"value="登錄"/><br/></form></body></html>處理登陸頁(yè)面的代碼:packagelee;importjava.sql.ResultSet;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;importlee.LoginDao;importernal.logging.Logger;publicclassLoginInsertimplementsController{publicLoginDaologinDao; privatestaticLoggerlogger=Logger.getLogger(LoginServlet.class); publicStringsuccess_view; publicStringfalse_view; publicModelAndViewhandleRequest(HttpServletRequestrequest, HttpServletResponseresponce)throwsException{ ("孫樂(lè)在Spring中使用transaction"); Stringusername=request.getParameter("userName"); Stringpassword=request.getParameter("password"); System.out.println(username); loginDao.deleteUser(); loginDao.updateUser(); booleanflag=loginDao.insertUser(username,password); ModelAndViewmv=null; if(flag){mv=newModelAndView(success_view); }else{ mv=newModelAndView(false_view); }returnmv; } publicLoginDaogetloginDao(){returnloginDao; } publicvoidsetloginDao(LoginDaologinDao){ this.loginDao=loginDao; } publicStringgetSuccess_view(){returnsuccess_view; } publicvoidsetSuccess_view(Stringsuccess_view){ this.success_view=success_view; } publicStringgetFalse_view(){returnfalse_view; } publicvoidsetFalse_view(Stringfalse_view){ this.fa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省黃岡市荊州中學(xué)2024-2025學(xué)年高三年級(jí)第二次診斷性測(cè)驗(yàn)生物試題試卷含解析
- 貴州黔南科技學(xué)院《中國(guó)古代文學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東松山職業(yè)技術(shù)學(xué)院《可編程控制技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建省閩南四校2025屆高三第二學(xué)期第3次練考語(yǔ)文試題含解析
- 山東醫(yī)學(xué)高等??茖W(xué)?!队?jì)算數(shù)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省常州市武進(jìn)區(qū)2025屆數(shù)學(xué)五下期末教學(xué)質(zhì)量檢測(cè)試題含答案
- 江蘇警官學(xué)院《虛擬現(xiàn)實(shí)腳本設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 臺(tái)州科技職業(yè)學(xué)院《英語(yǔ)公共演說(shuō)與辯論實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽外國(guó)語(yǔ)學(xué)院《形勢(shì)與政策Ⅲ》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海建設(shè)管理職業(yè)技術(shù)學(xué)院《學(xué)科教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 產(chǎn)科輸血治療專家共識(shí)(2023版)解讀
- 綜合實(shí)踐活動(dòng)《我和水果交朋友》55
- 關(guān)羽單刀赴會(huì)
- 2020年教師教學(xué)技能大賽公共基礎(chǔ)組-市級(jí)一等獎(jiǎng)-(生態(tài)文明教育)實(shí)施報(bào)告
- 論王安憶小說(shuō)《米尼》的女性悲劇
- 暫緩執(zhí)行申請(qǐng)書(shū)
- 國(guó)際海事組織標(biāo)準(zhǔn)航海通信用語(yǔ)中英文對(duì)照
- 財(cái)務(wù)管理案例分析(雀巢并購(gòu)徐福記)
- 材料非線性有限元講義
- 藥物開(kāi)發(fā)時(shí)的晶型研究詳解演示文稿
- 幼兒園課件:《不動(dòng)手打人》
評(píng)論
0/150
提交評(píng)論