java-jsp課程設(shè)計(jì)報告_第1頁
java-jsp課程設(shè)計(jì)報告_第2頁
java-jsp課程設(shè)計(jì)報告_第3頁
java-jsp課程設(shè)計(jì)報告_第4頁
java-jsp課程設(shè)計(jì)報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè) 南陽理工學(xué)院課 程 設(shè) 計(jì)課程設(shè)計(jì)名稱: 課程設(shè)計(jì) 專 業(yè) 班 級 : 數(shù)據(jù)庫一班 學(xué) 生 姓 名 : 張文瑞 學(xué) 號 : 指 導(dǎo) 教 師 : 學(xué)生姓名張文瑞專業(yè)班級數(shù)據(jù)庫學(xué)號題 目網(wǎng)絡(luò)購物車主要內(nèi)容 淘寶、京東、易購等都是知名度很大的電子商務(wù)網(wǎng)站,而對于電子商務(wù)網(wǎng)站來說一個很重要的組成部分便是網(wǎng)絡(luò)購物車,要求利用html、jsp、servlet、數(shù)據(jù)庫等知識點(diǎn),結(jié)合相關(guān)設(shè)計(jì)模式、以及軟件工程的相關(guān)知識,在經(jīng)過需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)等流程步驟以后,設(shè)計(jì)一個網(wǎng)絡(luò)購物車。主要功能是記

2、錄和操作不同客戶的網(wǎng)上購物信息。該系統(tǒng)能對購物車中商品信息進(jìn)行查詢、增加、修改、刪除、清空、下載等操作,商品信息存儲在數(shù)據(jù)庫中。任務(wù)要求 綜合運(yùn)用所學(xué)的JAVA程序設(shè)計(jì)基本知識,并能通過查閱相關(guān)文獻(xiàn)材料,獨(dú)立完成該課題的設(shè)計(jì)開發(fā)工作。要求根據(jù)本課題設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu),并實(shí)現(xiàn):商品展示、操作成功提示、購物車展示等視圖界面;對商品信息的查詢、增加、修改、刪除、清空、下載等功能模塊。系統(tǒng)采用tomcat、記事本等開發(fā)工具進(jìn)行開發(fā)實(shí)現(xiàn)。根據(jù)系統(tǒng)功能,結(jié)合軟件開發(fā)流程,完成設(shè)計(jì)報告的撰寫。參考文獻(xiàn)(美)Cay S. Horstmann、Gary Cornell. Java核心技術(shù)卷I:基礎(chǔ)知識(第8版)

3、(英文影印版).人民郵電出版社, 2008.11耿祥義、張躍平. JAVA2實(shí)用教程(修訂). 清華大學(xué)出版社,2001.10楊小平 java項(xiàng)目案例導(dǎo)航 科學(xué)出版社,2003.7傅進(jìn)勇、鄧少烽、李波 jsp網(wǎng)絡(luò)編程 電子工業(yè)出版社 2008.5網(wǎng)絡(luò)購物車一:需求分析 利用html、jsp、java、servlet、數(shù)據(jù)庫等知識點(diǎn),結(jié)合相關(guān)設(shè)計(jì)模式、以及軟件工程的相關(guān)知識,設(shè)計(jì)一個網(wǎng)站購物車,用于記錄不同客戶的購物訂單,并能對購物車中商品信息進(jìn)行查詢、修改、刪除、清空、下載等操作,商品信息存儲在數(shù)據(jù)庫中。具體要實(shí)現(xiàn)的功能如下:1:顯示商品展示界面、操作成功界面、購物車展示界面等界面。2:商品信

4、息存儲在數(shù)據(jù)庫中。3:對商品信息能夠進(jìn)行查詢、修改、刪除、清空、下載等操作。4:使用MVC設(shè)計(jì)模式(View(jsp)、Model(javaBean)、Controller(servlet))。5:在瀏覽器中輸入訪問信息進(jìn)行訪問。6:購物車信息分頁顯示。二:概要設(shè)計(jì)本次課程設(shè)計(jì)中使用了MVC設(shè)計(jì)模式,jsp作為View,javaBean作為Model,servlet作為controller,實(shí)現(xiàn)界面與邏輯的分離,模塊之間松耦合,通過傳遞參數(shù)進(jìn)行調(diào)用。Jsp頁面通過發(fā)送一個操作類型變量,從而使得controller獲知應(yīng)當(dāng)進(jìn)行的操作,并通過調(diào)用javabean進(jìn)行實(shí)際的執(zhí)行,這樣頁面與邏輯就得到

5、了分離,互不干涉和影響。使用數(shù)據(jù)庫存儲購物信息,在數(shù)據(jù)庫中對商品信息進(jìn)行增、刪、改、查等操作,此外控制器通過調(diào)用writeexcel類,在每次查看信息之前把當(dāng)前的商品信息寫入到xls文件中進(jìn)行保存,并供用戶下載。具體的設(shè)計(jì)模塊及系統(tǒng)流程如下圖所示:shoppingcarmessage.xlsShoppingcar數(shù)據(jù)庫writeexcel.javacontroloperate.javaoperate.java返回響應(yīng)返回結(jié)果數(shù)據(jù)庫或文件ModelcontrollerView執(zhí)行操作進(jìn)行調(diào)用發(fā)送請求updatesuccess.jspalter.jspshoppingcarplay.jspdefa

6、ult.jspaddsuccess.jsp三:運(yùn)行環(huán)境、開發(fā)語言運(yùn)行環(huán)境:Windows XP 瀏覽器開發(fā)語言:html、jsp、java四:詳細(xì)設(shè)計(jì)1:程序清單 Java課程設(shè)計(jì)網(wǎng)絡(luò)購物車文件功能對應(yīng)表序號 文件名功能 1default.jsp顯示商品信息 2shoppingcarplay.jsp顯示購物車信息 3alter.jsp顯示修改商品頁面 4addsuccess.jsp顯示成功添加商品 5updatesuccess.jsp顯示成功更新商品 6controloperate.java控制進(jìn)行各種操作 7operate.java對數(shù)據(jù)庫進(jìn)行操作 8write.excel.jaava生成e

7、xcel信息文件 9shoppingcarmessage.xls記錄購物車信息2:主要代碼1:顯示商品信息界面用jsp來顯示主界面登錄主頁面歡迎光臨百味書屋!/用表格來排列顯示信息書名:貨幣戰(zhàn)爭書號:0001作者:王一價格:23書名:我的抗戰(zhàn)書號:0002作者:王二價格:33書名:你貓叔了沒書號:0003作者:王三價格:43書名:贊美你書號:0004作者:王四價格:53書名:刀尖書號:0005作者:王五價格:63書名:人脈是設(shè)計(jì)出來的書號:0006作者:王六價格:73書名:龍年運(yùn)程書號:0007作者:王七價格:83書名:最好的時光在路上書號:0008作者:王八價格:93書名:七日談書號:000

8、9作者:王九價格:1032:顯示購物車信息界面用jsp分頁顯示購物車中的商品信息購物車界面您的購物車列表: 書名書號作者 價格數(shù)量 =totalcount)/當(dāng)前頁面為最后一頁 for(int i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下載購物信息 返回主頁 a href=shoppingcarplay.jsp?nowpage=上一頁  第頁   共頁 % Else/不是最后一頁 for(i

9、nt i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下載購物信息 返回主頁 a href=shoppingcarplay.jsp?nowpage=下一頁  第頁   共頁 下載購物信息 返回主頁 a href=shoppingcarplay.jsp?nowpage=上一頁  第頁   共頁 下載購物信息 返回主頁 a href=shoppingcarplay.jsp?nowpag

10、e=上一頁  a href=shoppingcarplay.jsp?nowpage=下一頁  第頁   共頁 書名書號作者 價格數(shù)量 % if(totalcount=3)/總頁面=1 for(int i=0;i form method=post action=alter.jsp?booknum= form method=post action=controloperate?operatetype=delete&booknum= 下載購物信息 返回主頁 1 for(int i=0;i form method=post action=alter.jsp?booknum= f

11、orm method=post action=operate?operatetype=delete&booknum= 下載購物信息 返回主頁 下一頁  第一頁   共頁 您的購物車是空的! 返回主頁 3:顯示修改商品界面用jsp顯示修改商品信息的界面修改購物車界面 /用form來提交修改的變量及書號 form action=controloperate?operatetype=alter&booknum= method=post 您要訂購的數(shù)量: 4:顯示成功添加商品用jsp顯示成功添加操作添加成功界面已成功加入購物車!返回主頁5:顯示成功更新商品用jsp顯示成功更新操作更新成

12、功界面已成功更新您的購物車!6:控制進(jìn)行各種操作功能用java servlet實(shí)現(xiàn)控制器控制進(jìn)行各種操作以及決定返回何種界面package shoppingcar;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class controloperate extends HttpServlet/重寫dopost方法對jsp請求進(jìn)行處理 public void doPost(HttpServletRequest reques

13、t,HttpServletResponse response)throws ServletException,IOException request.setCharacterEncoding(gb2312);/獲取相關(guān)變量 String operatetype=(String)request.getParameter(operatetype); shoppingcar.operate ope=new shoppingcar.operate(); shoppingcar.writeexcel we=new shoppingcar.writeexcel(); HttpSession session

14、 = request.getSession(); if(operatetype.equals(add)/添加操作的處理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); String ip=(String)request.getRemoteAddr(); ope.addbook(booknum,ip); response.sendRedirect(addsuccess.jsp); if(operatetype.equals(scan)/查詢操作的處理 Arra

15、yList rs=ope.getbook(); session.setAttribute(rs,rs); if(rs0!=null) we.write(rs); response.sendRedirect(shoppingcarplay.jsp); if(operatetype.equals(alter)/修改操作的處理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); String count=(String)request.getParameter(cou

16、nt); ope.updatebook(booknum,count); response.sendRedirect(updatesuccess.jsp); if(operatetype.equals(delete)/刪除操作的處理 request.setCharacterEncoding(gb2312); String booknum= (String)request.getParameter(booknum); ope.deletebook(booknum); response.sendRedirect(updatesuccess.jsp); if(operatetype.equals(de

17、leteall)/清空購物車操作的處理 request.setCharacterEncoding(gb2312); ope.deleteallbook(); response.sendRedirect(updatesuccess.jsp); 7:對數(shù)據(jù)庫進(jìn)行操作功能 用javabean通過多個函數(shù)實(shí)現(xiàn)對數(shù)據(jù)庫的多種操作package shoppingcar;import java.sql.*;import java.util.*;public class operate ArrayList a; public void addbook(String booknum,String ip)/對數(shù)據(jù)

18、庫進(jìn)行添加記錄操作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt = conn.createStatement(); String sql1=select * from 購物車 where 書號=+booknum+ and ip地址=+ip+; ResultSet rs=stmt.executeQuery(sql1); String sql2=inser

19、t into 購物車(ip地址,書號,數(shù)量) values(+ip+,+booknum+,1); if(!rs.next()/當(dāng)前不存在該條記錄直接插入 stmt.executeUpdate(sql2); Else/否則進(jìn)行更新操作 int newcount=rs.getInt(數(shù)量);newcount+=1; String sql3=update 購物車 set 數(shù)量=+newcount+ where 書號=+booknum+ and ip地址=+ip+; stmt.executeUpdate(sql3); stmt.close();conn.close(); catch(Exception

20、 e) public void get() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/創(chuàng)建支持游標(biāo)滾動的statement String sql=select 書名 , 書籍.書號 ,

21、作者 , 價格 , 數(shù)量 from 書籍 , 購物車 where 書籍.書號=購物車.書號;/獲取結(jié)果的sql語句 ResultSet rs=stmt1.executeQuery(sql); if(rs.next() rs.last(); Integer rows = rs.getRow(); rs.beforeFirst(); this.a=new ArrayListrows; int l =0; while (rs.next() /將結(jié)果集轉(zhuǎn)換為數(shù)組對象 this.al = new ArrayList(); this.al.add(0,rs.getString(1); this.al.ad

22、d(1,rs.getString(2); this.al.add(2,rs.getString(3); this.al.add(3,rs.getString(4); this.al.add(4,rs.getInt(5); l+; /System.out.println(success5);/判斷該語句是否執(zhí)行成功 else this.a=new ArrayList100; stmt1.close();conn1.close(); catch(Exception e) public ArrayList getbook() get(); return this.a;/返回數(shù)組對象 public v

23、oid updatebook(String booknum,String count)/對數(shù)據(jù)庫執(zhí)行修改操作作 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/創(chuàng)建支持游標(biāo)滾動的stateme

24、nt int bookcount=Integer.parseInt(count); if(bookcount=0) deletebook(booknum); else String sql=update 購物車 set 數(shù)量=+bookcount+ where 書號=+booknum+; stmt1.executeUpdate(sql); stmt1.close();conn1.close(); catch(Exception e) public void deletebook(String booknum)/對數(shù)據(jù)庫執(zhí)行刪除操作 try Class.forName(sun.jdbc.odbc

25、.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/創(chuàng)建支持游標(biāo)滾動的statement String sql=delete 購物車 where 書號=+booknum+; stmt1.executeUpdate(sql); stmt1.close();co

26、nn1.close(); catch(Exception e) public void deleteallbook()/清空購物車 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn1 = DriverManager.getConnection(jdbc:odbc:shoppingcar,sa,); Statement stmt1 = conn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);/創(chuàng)建支持游標(biāo)

27、滾動的statement String sql=truncate table 購物車; stmt1.executeUpdate(sql); stmt1.close();conn1.close(); catch(Exception e) 8:生成excel信息文件用java application引入poi包后,生成exceel文件,生成表格,循 環(huán)添加行數(shù)據(jù),最終生成購物車信息。 package shoppingcar; import java.io.*; import java.text.NumberFormat; import java.util.*; import org.apache.

28、poi.hssf.usermodel.HSSFCell; /引入poi工具包 import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class writeexcel/Excel public void write(ArrayList rs) HSSFWorkbook wb = new HSSFWorkbook(); /相當(dāng)于writeexcel整個

29、文件 FileOutputStream fos = null; try /創(chuàng)建一個文件 fos = new FileOutputStream(D:/apache-tomcat-6.0.33/webapps/shoppingcar/shoppingcarmessage.xls); catch (FileNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); HSSFSheet sheet = wb.createSheet(sheet1); /生成writeexcel中的sheet HSSFRow ro

30、w = sheet.createRow(0); /創(chuàng)建第一行 HSSFCell cell = row.createCell(short) 0); /創(chuàng)建第一個單元格 cell.setEncoding(HSSFCell.ENCODING_UTF_16); /設(shè)定單元格的字符編碼 cell.setCellValue(書名); /設(shè)定單元格的名字 cell = row.createCell(short) 1); /創(chuàng)建第二個單元格 cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(書號); cell = row.createC

31、ell(short) 2); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(作者); cell = row.createCell(short) 3); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(價格); cell = row.createCell(short) 4); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(數(shù)量); int totalcount=rs.

32、length; for (int i = 0; i totalcount; +i) /循環(huán)添加結(jié)果記錄 String bookname=(String)rsi.get(0);String booknum=(String)rsi.get(1);String bookauthor=(String)rsi.get(2);String bookprice=(String)rsi.get(3);int bookcount=Integer.parseInt(rsi.get(4).toString(); row = sheet.createRow(i +1); /創(chuàng)建行 cell = row.createCell(short) 0); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(bookname); /設(shè)定序號 cell = row.createCell(short) 1); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(booknum); cell = row.createCell(short) 2); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCe

溫馨提示

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

評論

0/150

提交評論