




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、BBS中學(xué)到的東西:1.分頁(yè),2.樹(shù)狀結(jié)構(gòu)的存儲(chǔ),3.樹(shù)狀結(jié)構(gòu)的展現(xiàn)金尚網(wǎng)上商城:很多東西是同一種技術(shù)在不同業(yè)務(wù)里的展現(xiàn),很多程序員做到后來(lái)就成了某一個(gè)領(lǐng)域的專家通過(guò)這個(gè)項(xiàng)目展現(xiàn)jsp+javaBean這種編程模式一. 內(nèi)容1. WEB項(xiàng)目一般流程講關(guān)于設(shè)計(jì),關(guān)于軟件工程方面的知識(shí),實(shí)際開(kāi)發(fā)中的東西2. 金尚項(xiàng)目步驟詳解3. 開(kāi)發(fā)二. WEB項(xiàng)目開(kāi)發(fā)的一般流程一一總綱1. 需求確定(需求分析)弄明白現(xiàn)在干什么2. 分析與設(shè)計(jì)(掌握技術(shù)之后要掌握的東西 )(1) .架構(gòu)分析與設(shè)計(jì)(2) .業(yè)務(wù)邏輯分析(3) .業(yè)務(wù)邏輯設(shè)計(jì)(4) .界面設(shè)計(jì)3. 開(kāi)發(fā)環(huán)境搭建4. 開(kāi)發(fā)-測(cè)試-開(kāi)發(fā)-測(cè)試5. 文檔
2、編纂每一個(gè)階段產(chǎn)生不同的文檔,不同的文檔由不同的人來(lái)寫(xiě)三. WEB項(xiàng)目開(kāi)發(fā)的一般流程一一需求確定1. 需求確定(1) .通過(guò)各種手段確定系統(tǒng)的功能與性能A. 功能:購(gòu)物、注冊(cè)、瀏覽、搜索 B. 性能:可同時(shí)支持 n個(gè)并發(fā)訪問(wèn),而且響應(yīng)時(shí)間不低于m毫秒C. 手段:a. 頭腦風(fēng)暴(brain storm)b. 會(huì)議c. 詢問(wèn)d. 原型一界面原型、業(yè)務(wù)原型(2) .本階段是項(xiàng)目開(kāi)發(fā)的最重要階段(3) .在web項(xiàng)目中,通常界面設(shè)計(jì)會(huì)在本階段進(jìn)行四. WEB項(xiàng)目開(kāi)發(fā)的一般流程一分析與設(shè)計(jì)之架構(gòu)分析與設(shè)計(jì)1. 架構(gòu)分析與設(shè)計(jì)(1).邏輯架構(gòu)A. 3層架構(gòu)、n層架構(gòu)B. MVCC. Model 1 (js
3、p直接訪問(wèn)數(shù)據(jù)庫(kù))or M odel 2 (jsp + javabean訪問(wèn)數(shù)據(jù)庫(kù))D. -(2) .物理架構(gòu)A. Web服務(wù)器的分布B. 數(shù)據(jù)庫(kù)服務(wù)器的分布C. ,(3) .技術(shù)解決方案的確定A. Java/.netB. Open Source/ 商業(yè)C. ,WE顫目開(kāi)發(fā)的一般流程一分析與設(shè)計(jì)之業(yè)務(wù)邏輯分析1. 根據(jù)需求分析業(yè)務(wù)邏輯a) 有哪些人會(huì)使用本系統(tǒng)b) 他們會(huì)使用本系統(tǒng)做什么c) 通常他們使用本系統(tǒng)的步驟是什么樣的d) 會(huì)有哪些明顯的類來(lái)支撐本系統(tǒng)的運(yùn)行e) 會(huì)有哪些不同的提示會(huì)反饋給用戶f) ,2. 本階段與需求的確定緊密相關(guān),通常在確定需求的時(shí)候就會(huì)進(jìn)行相關(guān)的分析WE顫目開(kāi)發(fā)的
4、一般流程一分析與設(shè)計(jì)之業(yè)務(wù)邏輯設(shè)計(jì)1. 業(yè)務(wù)邏輯設(shè)計(jì)a) .根據(jù)需求的分析來(lái)確定具體的類b) .確定類的屬性c) .確定類的接口(方法)d) .確定類之間的關(guān)系e) .確定用戶操作流程在設(shè)計(jì)上的反應(yīng)f) .進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)g) .不同的項(xiàng)目步驟可能不盡相同h) . ,WE顫目開(kāi)發(fā)的一般流程一分析與設(shè)計(jì)之界面設(shè)計(jì)1.界面設(shè)計(jì)a) 設(shè)計(jì)系統(tǒng)的界面風(fēng)格i. 顏色、styleb) 設(shè)計(jì)系統(tǒng)的具體”模擬”界面i.能夠從頭到尾1. 方面進(jìn)行需求的確定2. 方便JSP程序員的開(kāi)發(fā)3. ,WE顫目開(kāi)發(fā)的一般流程一開(kāi)發(fā)環(huán)境的搭建1.開(kāi)發(fā)環(huán)境的搭建a) 開(kāi)發(fā)工具的確定b) 配置管理工具的確定c)測(cè)試工具的確定d)
5、文件服務(wù)器/配置服務(wù)器等的確定e),WE顫目開(kāi)發(fā)的一般流程一開(kāi)發(fā)1.開(kāi)發(fā)-測(cè)試-開(kāi)發(fā)-測(cè)試a)按照設(shè)計(jì)進(jìn)行開(kāi)發(fā)i. 迅速開(kāi)發(fā)原型ii. 進(jìn)行迭代開(kāi)發(fā)iii. 提早進(jìn)行測(cè)試1. 單元測(cè)試2. 黑盒子測(cè)試3. 性能測(cè)試4. 易用性測(cè)試5.,金尚網(wǎng)上商城一需求確定1. 普通用戶可以通過(guò)系統(tǒng)瀏覽商品(按類別)2. 普通用戶可以通過(guò)系統(tǒng)搜索商品(按類別、價(jià)位、日期等)3. 普通用戶可以通過(guò)系統(tǒng)下訂單(享受市場(chǎng)價(jià))4. 普通用戶可以注冊(cè)成為系統(tǒng)會(huì)員(免費(fèi)注冊(cè))5. 會(huì)員可以瀏覽和檢索商品6. 會(huì)員可以下訂單(享受會(huì)員價(jià))7. 會(huì)員可以瀏覽自己下過(guò)的訂單8. 會(huì)員可以管理自己的信息(自服務(wù)系統(tǒng))a)修改密碼
6、b)修改送貨地址c)修改聯(lián)系方式9. 會(huì)員可以分級(jí)別a)不同級(jí)別享受不同等級(jí)的優(yōu)惠b)通過(guò)購(gòu)物的金額確定級(jí)別10. 管理員通過(guò)后臺(tái)進(jìn)行會(huì)員管理a)會(huì)員瀏覽b)會(huì)員歷史訂單瀏覽c)會(huì)員刪除d)指定會(huì)員級(jí)別11. 管理員通過(guò)后臺(tái)進(jìn)行商品分類的管理a)瀏覽、添加、刪除、修改12. 管理員通過(guò)后臺(tái)進(jìn)行產(chǎn)品管理a)新增產(chǎn)品b)產(chǎn)品上柜c)產(chǎn)品下柜d)產(chǎn)品銷量瀏覽e)產(chǎn)品搜索f)產(chǎn)品刪除g)產(chǎn)品修改13. 管理員通過(guò)后臺(tái)進(jìn)行訂單的管理a)訂單查詢b)修改訂單狀態(tài)c)訂單搜索d)訂單跟蹤e)訂單提醒金尚網(wǎng)上商城一架構(gòu)分析與設(shè)計(jì)1. 邏輯架構(gòu)a)JSP + JavaBean +Databasei. JSP負(fù)責(zé)
7、表現(xiàn)ii. JavaBean負(fù)責(zé)業(yè)務(wù)邏輯iii. Database負(fù)責(zé)持久保持?jǐn)?shù)據(jù)2. 物理架構(gòu)a)Web服務(wù)器一臺(tái)i.配置b)DataBase服務(wù)器一臺(tái)i.配置3. 技術(shù)解決方案a)WebServer Tomcat5.5b)Database MySQL5.0金尚網(wǎng)上商城一業(yè)務(wù)邏輯分析1. 會(huì)員類a)包裝系統(tǒng)會(huì)員b)與訂單有一對(duì)多的關(guān)系2. 管理員類a)包裝系統(tǒng)管理員3. 產(chǎn)品類a)包裝產(chǎn)品的信息b)與訂單是多對(duì)多的關(guān)系4. 類別類a)包裝產(chǎn)品的類別b)樹(shù)狀結(jié)構(gòu)c)與產(chǎn)品是一對(duì)多的關(guān)系5. 訂單類a)包裝訂單的信息b)與產(chǎn)品是多對(duì)多的關(guān)系c)與會(huì)員是多對(duì)一的關(guān)系6. 購(gòu)物車(chē)類a)包裝購(gòu)物車(chē)的信
8、息b)與產(chǎn)品是多對(duì)多的關(guān)系金尚網(wǎng)上商城一業(yè)務(wù)邏輯設(shè)計(jì)1. Usera) propertiesi. idii. usernameiii. passwordiv. phonev. addrvi. rdateb) methodsi. getOraders()ii. save()iii. change()iv. delete()v. static search()2. Administratora) Propertiesi. U sernameii. P asswordb) methodsi. login()3. Producta) Propertiesi. idii. nameiii. descri
9、v. normalPricev. memgerPricevi. pdatevii. categoryb) methodsi. getCategory()ii. getSalerCount()iii. save() , change(), search()4. Categroya) Propertiesi. idii. nameiii. descriv. pid (parent: Category)b) methodsi. getProductCounts()ii. save(), change() 等5. SalesOrder & SaleItem/訂單&訂單中的一項(xiàng)a) Pr
10、opertiesi. idii. useridiii. addriv. SalesItemv. Odateb) methodsi. getTotalPrice()ii. save(), chage()iii. getSalesltems()6. SalesOrder & SaleItema) Propertiesi. idii. productIDiii. unitPriceiv. pCountb) methodsi. getTotalPrice()ii. save(), change()7. ShoppingCart & CartItema) Propertiesi. use
11、ridii. CartItemb) methodei. getTotalPrice()ii. save(), change()iii. getCartItems()8. ShoppingCart & CartItema) Propertiesi. productIDii. unitPriceiii. pCountb) methodsi. getTotalPrice()金尚網(wǎng)上商城一數(shù)據(jù)庫(kù)設(shè)計(jì)1. User字段名字段類型說(shuō)明idint主鍵/自動(dòng)遞增usernameVarchar用戶名passwordvarchar密碼phonevarchar電話addrvarchar地址rdatedate
12、time注冊(cè)日期2. Productidint主鍵/自動(dòng)遞增namevarchar產(chǎn)品名descrvarchar描述normalpricevarchar市場(chǎng)價(jià)memberpricevarchar會(huì)員價(jià)pdatedatetime上柜日期categoryIDint類別ID/引用Categroy表的id3. Categroy字段名字段類型說(shuō)明idint主鍵/自動(dòng)遞增namevarchar分類名descrvarchar描述pidvarchar父id4. SalesOrder字段名字段類型說(shuō)明idint主鍵/自動(dòng)遞增useridint用戶idaddrvarchar送貨地址odatedatetime下單時(shí)
13、間statusint訂單狀態(tài)/0訂單未處理1處理成功2廢單5. SalesItem字段名字段類型說(shuō)明idint主鍵/自動(dòng)遞增productidint產(chǎn)品idunitpricevarchar單價(jià)pcountdatetime數(shù)量orderidint訂單id/引用salesorder的id1. 首頁(yè)a)b)c)金尚網(wǎng)上商城一界面設(shè)計(jì) 前臺(tái)index.jsp顯示某類商品根據(jù)id顯示圖片搜索d) 注冊(cè)e) 登錄search.jsp searchresult.jspf) 自服務(wù)2. 搜索界面3. 搜索結(jié)果4. 注冊(cè)a) 注冊(cè)頁(yè)面register.jspb) 注冊(cè)成功registerok.jspc) 注冊(cè)失
14、敗registererr.jsp5. 登陸a) 登陸頁(yè)面login.jspb) 登陸成功loginok.jspc) 登陸失敗 loginerr.jsp6. 自服務(wù) selfservice.jspa)修改密碼changepassword.jspb)修改成功changepasswordeok.jspc)修改失敗changepassworderr.jspd)修改其他信息changeinfo.jspe)修改其他信息成功changeinfook.jspf)修改其他信息失敗changeinfoerr.jsp7.購(gòu)物a)購(gòu)物車(chē)瀏覽cart.jspb)結(jié)賬 buy.jsp后臺(tái)(admin目錄下)1.登陸頁(yè)面l
15、ogin.jsp2.首頁(yè)index.jspa)用戶管理b)產(chǎn)品管理c)類別管理d)訂單管理3.用戶管理a)顯示用戶userlist.jspb)刪除用戶userdelete.jspc)搜索用戶usersearch.jsp4.產(chǎn)品管理a)產(chǎn)品顯示productlist.jspb)產(chǎn)品添加productadd.jspc)產(chǎn)品更改productchange.jspd)產(chǎn)品刪除productdelelte.jspe)產(chǎn)品搜索productSearch.jsp5.類別管理a)類別顯示categorylist.jspb)類別添加categoryadd.jspc)類別刪除categorydeltete.jsp
16、d)類別修改categorychange.jsp6.訂單管理a)訂單瀏覽salesorderlist.jspb)訂單處理salesorderdeal.jsp金尚網(wǎng)上商城一開(kāi)發(fā)環(huán)境搭建1. 開(kāi)發(fā)工具a) eclipse3.22. WEB SERVERa) tomcat5.53. DATABASEa) MySQL4. SCMa) Cvs金尚網(wǎng)上商城一開(kāi)發(fā)1. 先寫(xiě)用戶2. 再寫(xiě)分類3. 然后寫(xiě)產(chǎn)品4. 接下來(lái)寫(xiě)購(gòu)物5. 最后訂單處理6. 其他功能金尚網(wǎng)上商城一開(kāi)發(fā)安排1. V0.1a)用戶JavaBean前臺(tái)/后臺(tái)2. V0.2a)分類JavaBean前臺(tái)/后臺(tái)3. V0.3a) 產(chǎn)品JavaBe
17、an前臺(tái) /后臺(tái)4. V0.4a)購(gòu)物JavaBean前臺(tái)5. V0.5a) 訂單JavaBean 前臺(tái) / 后臺(tái)6. V0.6a)其他JavaBean前臺(tái)/后臺(tái)金尚網(wǎng)上商城文檔編纂1. 需求描述文檔2. 系統(tǒng)分析與設(shè)計(jì)3. 數(shù)據(jù)庫(kù)設(shè)計(jì)4. 開(kāi)發(fā)接口 API docs &源代碼注釋5. 用戶幫助(前臺(tái))6. 管理員手冊(cè)(后臺(tái))7. 測(cè)試文檔重點(diǎn)掌握1.初步了解項(xiàng)目開(kāi)發(fā)流程a)理解并表達(dá)b)熟練運(yùn)用2. 理解后臺(tái)與前臺(tái)a)理解互動(dòng)3. 進(jìn)一步加深對(duì)樹(shù)狀結(jié)構(gòu)運(yùn)用的理解4. 熟練掌握session的概念和運(yùn)用5. 掌握下列技巧a) 圖片的管理b) 上傳組件的運(yùn)用開(kāi)始開(kāi)發(fā)首先搭建環(huán)境先引入需要
18、的類庫(kù),建立數(shù)據(jù)庫(kù)表建立數(shù)據(jù)庫(kù)連接的封裝類(輔助類)com.bjsxt.shopping.util DB.java不用連接池DB寫(xiě)成單例模式,或者不用都不大,這里不用單例模式寫(xiě)這個(gè)類package com.bjsxt.shopping.util;import java.sql.*;public classDB static try Class. forName ("com.mysql.jdbc.Driver"); catch (ClassNotFoundException e) e.printStackTrace();private static Connection ge
19、tConn() Connection conn = null ;try conn =DriverManager. getConnection ( "jdbc:mysql:/localhost:3306/mydata?user= root&password=root" ); catch (SQLException e) e.printStackTrace();return conn;private static Statement getStmt(Connection conn) Statement stmt = null ;try stmt = conn.creat
20、eStatement(); catch (SQLException e) e.printStackTrace();return stmt;private static PreparedStatement getPStmt(Connection conn, String sql) PreparedStatement pStmt =null ;try pStmt = conn.prepareStatement(sql); catch (SQLException e) e.printStackTrace();return pStmt;stmt, String sql) private staticR
21、esultSet executeQuery(StatementResultSet rs = null ; try rs = stmt.executeQuery(sql);) catch (SQLException e) e.printStackTrace();)return rs;)private void closeConn(Connection conn) if (conn!= null ) try conn.close();) catch (SQLException e) e.printStackTrace();) conn = null ;)private void closeStmt
22、(Statement stmt) if (stmt!= null ) try stmt.close();) catch (SQLException e) e.printStackTrace();) stmt = null ;)private void closePStmt(Statement pStmt) if (pStmt != null ) try pStmt.close();) catch (SQLException e) e.printStackTrace();) pStmt = null ;)private void closeRs(ResultSet rs) if (rs != n
23、ull ) try rs.close();) catch (SQLException e) e.printStackTrace();) rs = null ;)關(guān)于分層的一個(gè)特別重要的原則:不能越層訪問(wèn)!首先寫(xiě)一個(gè)User的一個(gè)JavaBean, 一般情況下實(shí)體類是和數(shù)據(jù)庫(kù)表里的字段是一一對(duì)應(yīng)的User.javapackage com.bjsxt.shopping;import java.util.*;public class User privateintid ;privateStringusernameprivateStringpasswordprivateStringphone ;pri
24、vateStringaddr ;privateDaterdate ;publicString getAddr() return addrpublic void setAddr(String addr) this . addr = addr;public int getId() return id ;public void setId( int id) this . id = id;public String getPassword() return password ;public void setPassword(String password) this . password = pass
25、word;public String getPhone() return phone ;public void setPhone(String phone) this . phone = phone;public Date getRdate() return rdate ;public void setRdate(Date rdate) this . rdate = rdate;) public String getUsername() (returnusername ;)public void setUsername(String username) ( this . username =
26、username;)Shopping.sql-數(shù)據(jù)庫(kù)命名全部小寫(xiě)create database shopping;use shopping;create tableuser(id int primary key auto_increment,usernamevarchar(40),passwordvarchar(16),phone varchar addr varchar rdate datetime );(40),(255),create tablecategory(id int primary key auto_increment,name varchardescr varchar(255
27、),(255),pid int, isleaf int, #0 grade int );表示leaf 1 表示非leafcreate tableproduct(id int primary key auto_increment,name varchar descr varchar normalprice memberprice(255),(255), double , double ,pdate datetime,categoryid int );referencescatetory(id)create tablesalesorder(id int primary key auto_incre
28、ment, userid int,addr varchar(255),odate datetime, status intcreate tablesalesitem(id int primary key auto_increment, productid int, unipirce double ,pcount int, orderid int );用戶注冊(cè)頁(yè)面的名字:register.jsp創(chuàng)建register.jsp頁(yè)面設(shè)置頁(yè)面編碼問(wèn)題:在此頁(yè)面點(diǎn)右鍵Preferences Encoding "Chinese, NationalStantard "默認(rèn)是 “ ISO L
29、atin-1 ”三種中文編碼的區(qū)別:GB18030 > GBK > GB2312用原來(lái)講javascript中的表單作為原形:把原來(lái)的文件和它的.js文件copy到register.jsp中去 連接服務(wù)器瀏覽一下之后修改顯示格式1.首先action改一下action ="register.jsp” 提交到自身這個(gè)頁(yè)面,如果提交到自身的話這個(gè)頁(yè)面就有連個(gè)入口,一個(gè)入口是點(diǎn)鏈接鏈接過(guò)來(lái),還有一個(gè)入口是我們點(diǎn)“提交”把數(shù)據(jù)提交過(guò)去,要區(qū)分是鏈接過(guò)來(lái)還是提交過(guò)來(lái)的辦法是什么?多一個(gè)hidden 字段提交的頁(yè)面寫(xiě)完了,請(qǐng)保存到數(shù)據(jù)庫(kù)里向去,<input type ="
30、;hidden"name ="action"value ="register"/><%request.setCharacterEncoding("GB18030");String action = request.getParameter("action" );if (action !=null && action.equals("register") String username = request.getParameter("username");String password = request.getParameter("password");/密碼確認(rèn)應(yīng)該在后臺(tái)檢查一下String phone = request.getParameter("phone" );String addr = request.get
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 考研復(fù)習(xí)-風(fēng)景園林基礎(chǔ)考研試題【模擬題】附答案詳解
- 2025年黑龍江省五常市輔警招聘考試試題題庫(kù)含答案詳解(預(yù)熱題)
- 2025年河北省定州市輔警招聘考試試題題庫(kù)及答案詳解(全優(yōu))
- 銷售演示 試題及答案
- 吸氧試題及答案
- 2025年山西省太原市八年級(jí)中考二模生物試題 (含答案)
- 2025購(gòu)物中心商鋪?zhàn)赓U合同
- 智慧種植解決方案全面詳解
- 2025網(wǎng)絡(luò)版設(shè)計(jì)施工合同樣式
- 強(qiáng)化家電產(chǎn)品質(zhì)量控制與售后服務(wù)
- 2025年安全生產(chǎn)考試題庫(kù):安全生產(chǎn)隱患排查治理安全教育培訓(xùn)試題
- 上海韻達(dá)java面試題及答案
- T/CIQA 32-2022出入境生物安全消毒服務(wù)機(jī)構(gòu)質(zhì)量管理要求
- 電競(jìng)店加盟合同協(xié)議書(shū)
- 6s安全管理考試試題及答案
- 2025國(guó)開(kāi)電大《個(gè)人與團(tuán)隊(duì)管理》形考任務(wù)1-10答案
- 湖南2024生地會(huì)考試卷及答案
- GB/T 196-2025普通螺紋基本尺寸
- 清掃保潔綠化養(yǎng)護(hù) 投標(biāo)方案(技術(shù)標(biāo) )
- 血橙生產(chǎn)技術(shù)規(guī)程
- GB/T 8626-2007建筑材料可燃性試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論