最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【計(jì)算機(jī)畢業(yè)設(shè)計(jì)】基于jsp網(wǎng)上書店(源代碼+論文)

2022-12-04 20:35 作者:考研保研直通車  | 我要投稿

網(wǎng)上書店系統(tǒng)

1.需求分析。

參考設(shè)計(jì)要求,及可行性的分析,我們確定了如下的需求:

1.數(shù)據(jù)庫設(shè)計(jì)科學(xué)合理。

2.網(wǎng)站主頁面簡潔美觀,可以天藍(lán)色為主色調(diào)。

3.網(wǎng)站主頁顯示各個(gè)分類的及總的暢銷表、新書榜、推薦榜,顯示論壇新帖。

4.單本圖書的詳細(xì)資料頁面顯示同類圖書的暢銷榜,同一作者的暢銷榜,購買了同一本書的讀者此外還購買的圖書。

5.可按作者,或者書名,或者出版社搜索圖書。

6.用戶注冊登錄后可以使用購物車、訂單等功能,可以修改密碼、個(gè)人資料,還可以在論壇發(fā)表新帖、回復(fù)。

7.具備友好的用戶界面,提供適當(dāng)?shù)牟僮魈崾?,如用戶登錄時(shí)的密碼錯(cuò)誤等。

8.網(wǎng)站管理員可通過后臺管理界面,修改密碼,添加、刪除用戶,添加、刪除、修改圖書的詳細(xì)資料。

2.總的設(shè)計(jì)思想、系統(tǒng)平臺、開發(fā)工具。

團(tuán)隊(duì)工作模式:以組長為核心,充分溝通與交流,保證概念的完整性與進(jìn)度的良好控制。

采用自頂向下的設(shè)計(jì)方法,策略上采取復(fù)用、分而治之。

首先,清晰的結(jié)構(gòu)和表達(dá)方式更容易對需求和模塊功能進(jìn)行精確的描述。其次,模塊分割和模塊獨(dú)立性避免了系統(tǒng)級的bug。另外,細(xì)節(jié)的隱藏使結(jié)構(gòu)上的缺陷更加容易識別。第四,設(shè)計(jì)在每個(gè)精化步驟的層次上是可以測試的,所以測試可以盡早開始,并且每個(gè)步驟的重點(diǎn)可以放在合適的級別上。

一次添加一個(gè)構(gòu)件(功能模塊)。在添加了新的構(gòu)件(功能模塊)之后,用它們來測試子系統(tǒng)。因?yàn)槟切┰瓉砜梢栽谧酉到y(tǒng)上成功運(yùn)行的用例,必須在現(xiàn)有系統(tǒng)上重新運(yùn)行,對系統(tǒng)進(jìn)行回歸測試。

精確、完整地定義接口、功能模塊時(shí),將具有一定集成度并可以重復(fù)使用的模塊抽象出來,經(jīng)驗(yàn)證后發(fā)放給組員以供復(fù)用,盡可能地避免代碼的重復(fù)生產(chǎn),提高代碼的重用率,從而合理化、并簡化開發(fā)過程,減少總的開發(fā)工作量與維護(hù)代價(jià),提高生產(chǎn)率。

通過QQ、郵箱、局域網(wǎng)內(nèi)的共享等,共享調(diào)試記錄。

系統(tǒng)平臺:Windows XP SP2 。

開發(fā)工具:Tomcat,JDK 1.5,Eclipse,Access 2003,Macromedia Dreamweaver MX 2004。

3.數(shù)據(jù)結(jié)構(gòu)。

在 Microsoft Office Access 2003 中建立數(shù)據(jù)庫。

表-1 book ,圖書的詳細(xì)資料。

字段名稱數(shù)據(jù)類型意義說明bookId自動編號圖書編號(主鍵)bookTitle文本書名bookAuthor文本作者bookDate日期/時(shí)間出版日期形如:2007-01-22bookPublish文本出版社bookPrice數(shù)字標(biāo)價(jià)bookStorage數(shù)字庫存bookSold數(shù)字售出數(shù)量bookPhoto備注封面圖片的路徑和文件名bookSort文本類別科技、文藝、管理、經(jīng)濟(jì),等bookIsbn文本ISBN號bookWords數(shù)字字?jǐn)?shù)bookYC數(shù)字印次bookBC數(shù)字版次bookSheet文本紙張bookValue數(shù)字售價(jià)bookSummary備注內(nèi)容提要bookAuthorInformation備注作者簡介bookComment備注評論bookCommend文本推薦方式inAll(全局推薦)、inSort(在其所屬類別內(nèi)推薦)

表-2 user , 用戶的詳細(xì)資料。

字段名稱數(shù)據(jù)類型意義說明userId自動編號用戶編號(主鍵)userName文本用戶名userFigure文本身份總管、讀者userSex文本性別男、女userAge數(shù)字年齡>0 , <150userBirthday日期/時(shí)間出生日期形如:2007-01-22userAddress文本現(xiàn)居住地userHome文本籍貫userPwd文本密碼userNumber文本身份證號

表-3 orderTotal ,訂單的整體屬性資料。

字段名稱數(shù)據(jù)類型意義說明orderId數(shù)字訂單編號(主鍵)userId數(shù)字用戶編號orderDate日期/時(shí)間訂購日期形如:2007-01-22checkDate日期/時(shí)間審核日期形如:2007-01-22totalValue數(shù)字總價(jià)

表-4 orderItem ,訂單中的圖書條目資料。

字段名稱數(shù)據(jù)類型意義說明orderId數(shù)字訂單編號bookId數(shù)字圖書編號buyNum數(shù)字購買數(shù)量bookSta文本圖書狀態(tài)缺書、待審、已發(fā)bookValue數(shù)字圖書售價(jià)

表-5 topic ,論壇的主帖的詳細(xì)資料。

字段名稱數(shù)據(jù)類型意義說明topicId數(shù)字主帖編號(主鍵)topicDate日期/時(shí)間發(fā)表日期形如:2007-01-22topicContent備注內(nèi)容topicTitle備注標(biāo)題userName文本發(fā)表的用戶名followTotal數(shù)字回復(fù)數(shù)userId文本發(fā)表的用戶編號

表-6 topic_follow ,主帖與回帖的對應(yīng)關(guān)系。

字段名稱數(shù)據(jù)類型意義說明followId數(shù)字回帖編號(主鍵)topicId數(shù)字主帖編號followUserId數(shù)字回帖的用戶編號

表-7 follow ,回帖的詳細(xì)資料

字段名稱數(shù)據(jù)類型意義說明followId數(shù)字回帖編號(主鍵)followDate日期/時(shí)間發(fā)表日期followContent備注內(nèi)容followTitle文本標(biāo)題

表-8 hotSearch ,熱門搜索關(guān)鍵詞的詳細(xì)資料。

字段名稱數(shù)據(jù)類型意義說明hotSearchId自動編號編號(主鍵)searchMode文本搜索方式作者、書名、出版社searchWord文本搜索關(guān)鍵詞

4.功能模塊。

4.1首頁 index-main.jsp 部分代碼—1。

變量、函數(shù)的聲明,網(wǎng)頁標(biāo)題的顯示。

<%@ page language="java" contentType="text/html; charset=gb2312"

import="java.sql.*,myPk.*" %>

<% request.setCharacterEncoding("gb2312"); %>

<html><head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<link rel="stylesheet" type="text/css" href="blue.css">

<%!

//轉(zhuǎn)換字符集

public String toChi(String str)

{

if (str==null)

return "";

try

{

String temp_p=str;

byte[] temp_t=temp_p.getBytes("ISO8859-1");

String temp=new String(temp_t);

return temp;

}

catch(Exception e) { }

return str;

}

%>

<%

String sort=null;

String pageTitle="首頁";//網(wǎng)頁標(biāo)題

String bookHot="";//欄目的標(biāo)題

String sql="select * from book";

Pageable rs=null;

Pageable rsNew=null;

Pageable rsHot=null;

Pageable rsCam=null;

if(request.getParameter("sort")!=null)

{

/*Javascript腳本中頁面跳轉(zhuǎn)時(shí)傳遞的參數(shù),

 以及HTML中鏈接(<a href="***.jsp?p1=z1">跳轉(zhuǎn)</a>)時(shí)傳遞的參數(shù),

 即使在發(fā)送端用了 request.setCharacterEncoding("GB2312");

 接收時(shí),仍然要用自定義的函數(shù)轉(zhuǎn)換字符集,否則參數(shù)中的中文會顯示為亂碼。

*/

sort=toChi(request.getParameter("sort"));

pageTitle="["+sort+"]";

bookHot=pageTitle;

sql=sql+" where bookSort='"+sort+"'";

}

%>

<title><%=pageTitle %>--網(wǎng)上書店</title></head>

4.2首頁 index-main.jsp 部分代碼—2。

顯示全局推薦、類別內(nèi)推薦的書目。

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td>

<div id="titleBg">

<div id="titleText"><%=bookHot %>推薦</div><br></div></td></tr>

<tr>

<td align="left">

<%

Conn con=null;

try

{

String comSql="";

if(request.getParameter("sort")!=null)

comSql+=sql+" and bookCommend='inSort'";

else

comSql+=sql+" where bookCommend='inAll'";

comSql+=" order by bookSold desc";

con=new Conn();

Pageable rsCom=con.getRs(comSql);

rsCom.setPageSize(10);

rsCom.gotoPage(1);

for(int i=0;i<rsCom.getPageRowsCount();i++)

{

if(sort==null)

{

%>

<ahref='index-main.jsp?sort=<%=rsCom.getString("bookSort") %>'>[<%=rsCom.getString("bookSort") %>]</a>

<%

}

%>

<ahref='book-information.jsp?id=<%=rsCom.getString("bookId") %>'><%=rsCom.getString("bookTitle")%>&nbsp;&nbsp;

<%=rsCom.getString("bookAuthor")%>&nbsp;&nbsp;

<%=rsCom.getString("bookDate").substring(0,10) %></a><br>

<%

rsCom.next();

}

con.closeRs();

}catch(Exception e) { out.print(e.toString()); }

%>

</td></tr></table>

4.3訂單處理文件 deal-order.jsp 的部分代碼—1。

函數(shù)聲明。

<%@ page language="java" contentType="text/html; charset=gb2312" import="java.sql.*,myPk.*" %>

<% request.setCharacterEncoding("gb2312"); %>

<%!

/*訂單(session) order 形如 -bookId,buyNum-bookId,buyNum- ,

依次為  -圖書編號,購買數(shù)量-圖書編號,購買數(shù)量-*/

/* 如果字符串 str 的長度小于 n ,則在其左邊填充足夠的 * 號,使其長度為 n 。<-左,右-> */

public?String appString(String str,int?n)

{

int?strLen=str.length();

if(strLen>=n)

return?str;

String sTem="";

String sBlank="*";

for(int?i=0;i<(n-strLen);i++)

sTem+=sBlank;

sTem+=str;

return?sTem;

}

/* 將 str 以 - 為標(biāo)志分段,于各小段中再以 , 分為兩段(形如段a,段b),在每個(gè)段a的左邊填充 * 號,使每個(gè)段a的長度均為 n */

public?String appLongStr(String str,int?n){

String[] sTem=str.split("-");

String sRet="";

for(int?i=0;i<sTem.length;i++){

String[] splitByDot=sTem[i].split(",");

splitByDot[0]=appString(splitByDot[0],n);

sTem[i]=splitByDot[0]+","+splitByDot[1];

}

if(sTem.length==1)

return?sTem[0];

for(int?i=0;i<(sTem.length-1);i++)

sRet+=sTem[i]+"-";

sRet+=sTem[sTem.length-1];

return?sRet;

}

%>

4.4訂單處理文件 deal-order.jsp 的部分代碼—2。

放棄購物車中的指定書本。

<%

if(act.equals("del")){

//將某書從購物車中移除

if(sOrderSession.indexOf("-")==-1)

sTem="";//刪除的是 session order 中僅有的一個(gè)記錄項(xiàng)

else{

sSessionLeft=sOrderSession.substring(0,sOrderSession.indexOf(bookId+","));

sSessionRight=sOrderSession.substring(sOrderSession.indexOf(bookId+","));

if((sSessionLeft.indexOf("-")==-1)&&(sSessionRight.indexOf("-")!=-1))

sTem=sSessionRight.substring(sSessionRight.indexOf("-")+1);//刪除的是 session order 中最左的記錄項(xiàng)。

else?if((sSessionLeft.indexOf("-")!=-1)

&&(sSessionRight.indexOf("-")==-1))

sTem=sSessionLeft.substring(0,sSessionLeft.lastIndexOf("-"));//刪除的是 session order 中最右的記錄項(xiàng)

else

sTem=sSessionLeft.substring(0,sSessionLeft.lastIndexOf("-"))+sSessionRight.substring(sSessionRight.indexOf("-"));//刪除的是 session order 中間位置的記錄項(xiàng)

}

}//if(act.equals("del")

%>

5.運(yùn)行結(jié)果。

5.1首頁。

5.2智能圖書搜索。

搜索欄的輸入框的下邊有相應(yīng)搜索方式的熱門搜索關(guān)鍵詞??煞謩e按作者、書名、出版社搜索圖書,同時(shí)支持模糊搜索,如,按“出版社”搜索“長江[空格]人民”可搜索到出版社名字中含有“長江”、“人民”的圖書(全圖)。

5.3購物車。

5.4訂單列表。

5.5論壇。

5.6添加圖書。

5.7管理圖書。

6.總結(jié)。

伴隨著第一場雪的降臨,這個(gè)課程設(shè)計(jì)才接近了尾聲。在這次課程設(shè)計(jì)里,可以說是全身心地投入,――正式開始動工之前,有很多關(guān)于網(wǎng)站架設(shè)的想法,覺得網(wǎng)站無非就是數(shù)據(jù)庫+標(biāo)簽,真正下手后,深刻體會到了其中的艱辛,特別是當(dāng)?shù)谝粓鲅﹪W啦啦地下下來,而我卻不得不坐在電腦前繼續(xù)調(diào)試時(shí)。

雖然沒能趕在第一場雪的時(shí)候去堆雪人,不過現(xiàn)在看著埋頭做了一個(gè)多星期的設(shè)計(jì)結(jié)果,有點(diǎn)苦盡甘來的味道。

這次的課程設(shè)計(jì),有兩個(gè)方面的收獲,一個(gè)是心態(tài),一個(gè)是技術(shù)。

在心態(tài)上,端正了之前的心浮氣躁、眼高手高,更加磨練了韌勁,增強(qiáng)了團(tuán)隊(duì)合作精神,提高了對軟件開發(fā)中的工程設(shè)計(jì)思路的認(rèn)識和理解。

技術(shù)上,在JSP動態(tài)網(wǎng)站開發(fā)方面積累了實(shí)踐經(jīng)驗(yàn)。對CSS有了新的認(rèn)識,提高了對HTML的熟練程度及使用技巧,尤其是與Javascript聯(lián)手打造胖客戶端的一些方法和思路。

在做這個(gè)網(wǎng)上書店系統(tǒng)的論壇時(shí),帖子的發(fā)表功能采用的方法是UBB編輯器,通過開發(fā)UBB編輯器,接觸到正則表達(dá)式并可以靈活運(yùn)用。在開發(fā)的過程中,無意中發(fā)現(xiàn)UBB編輯器的一個(gè)不足之處,它在獲取當(dāng)前激活選中區(qū),即高亮文本塊,或文檔中用戶可執(zhí)行某些操作的其它元素的時(shí)候,用的是document.selection.createRange().duplicate() ,所以當(dāng)選中非編輯區(qū)的文本時(shí)(如同一個(gè)頁面內(nèi)的導(dǎo)航時(shí)),然后單擊UBB編輯器的功能按鈕,非編輯區(qū)的文本會響應(yīng)UBB編輯器,這是開發(fā)人員不想看到的--它會導(dǎo)致頁面凌亂。查找相關(guān)資料也未能找到解決辦法,除非摒棄UBB編輯器,改用HTML在線編輯器。

在實(shí)現(xiàn)購物車、訂單的功能時(shí),一開始想全部用數(shù)據(jù)庫實(shí)現(xiàn)??紤]到購物車中的書本并不一定是讀者最終要購買的,如果用數(shù)據(jù)庫實(shí)現(xiàn),那么購物車的每次變動都要更新數(shù)據(jù)庫,這必然會給數(shù)據(jù)庫增加無謂的負(fù)擔(dān)。思考再三,自定義了一個(gè)固定形式的session來保存購物車的書目,當(dāng)讀者確定支付購買時(shí),再將這個(gè) session“解密”后將購買信息寫入數(shù)據(jù)庫。這個(gè)session的格式為:。。。。。。-圖書編號,購買數(shù)量-圖書編號,購買數(shù)量-。。。。。。 ,當(dāng)對購物車中的書目進(jìn)行添加、更改、刪除時(shí),通過判斷需要添加、更改、刪除的書目在這個(gè)session中的位置(session為空,或是session中僅有的一個(gè)書目,或是session中最左的一個(gè)書目,或是session中最右的一個(gè)書目)來作不同的操作。

在測試中,發(fā)現(xiàn)這樣實(shí)現(xiàn)的購物車功能有bug,原因是一本書的編號(如1)可能跟另一本書的編號(如21)的低位相同,于是我就想到,每次在操作這個(gè)session時(shí)先將其中的圖書編號從左邊用*號填充至10位,操作完成后去除所有*號還原。問題迎刃而解。

整個(gè)網(wǎng)站系統(tǒng)共用一個(gè)信息提示的處理頁面tip.jsp,該頁面通過讀取傳進(jìn)來的tip變量判斷輸出給用戶的友好提示信息,傳進(jìn)來的desPage變量則為tip.jsp頁面3秒倒計(jì)時(shí)后前往的頁面地址。

網(wǎng)頁頭部頁面head.jsp中調(diào)用了包java.text,其中通過實(shí)例化SimpleDateFormat類獲取并格式化日期,所以在Eclipse中加載此項(xiàng)目時(shí),除了正確配置數(shù)據(jù)源,還需要在項(xiàng)目的配置中加載Tomcat\common\lib\servlet-api.jar 。

7.參考資料。

1.電子版網(wǎng)頁制作完全手冊(含DHTML參考、HTML參考、CSS屬性參考),手冊的內(nèi)容全部來自Microsoft MSDN Library,由 lemon 整理編輯,資料從clgigi.8u8.com下載。

2.電子版JScript 語言參考手冊(含正則表達(dá)式簡介),手冊的內(nèi)容全部來自Microsoft MSDN Library。

3.《JSP動態(tài)網(wǎng)站開發(fā)實(shí)用教程》,機(jī)械工業(yè)出版社,寶貝工作室 策劃。

4.電子版《JSP 2.0技術(shù)手冊》,林上杰、林康司 著,電子工業(yè)出版社。


【計(jì)算機(jī)畢業(yè)設(shè)計(jì)】基于jsp網(wǎng)上書店(源代碼+論文)的評論 (共 條)

分享到微博請遵守國家法律
江孜县| 高尔夫| 上思县| 德化县| 建昌县| 黑水县| 邵阳市| 桐城市| 高淳县| 漳州市| 澄城县| 廉江市| 灵石县| 商城县| 永川市| 司法| 清河县| 武汉市| 沂水县| 嘉峪关市| 平潭县| 柯坪县| 渝北区| 藁城市| 铁力市| 隆昌县| 蓬安县| 浦县| 中宁县| 新绛县| 尼勒克县| 南昌市| 北宁市| 中山市| 泾源县| 武川县| 蒙城县| 广元市| 沁阳市| 兴和县| 铜川市|