




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、BBS中學到的東西:1.分頁,2.樹狀結(jié)構(gòu)的存儲,3.樹狀結(jié)構(gòu)的展現(xiàn)金尚網(wǎng)上商城:很多東西是同一種技術(shù)在不同業(yè)務里的展現(xiàn),很多程序員做到后來就成了某一個領(lǐng)域的專家通過這個項目展現(xiàn)jsp+javaBean這種編程模式一. 內(nèi)容1. WEB項目一般流程講關(guān)于設(shè)計,關(guān)于軟件工程方面的知識,實際開發(fā)中的東西2. 金尚項目步驟詳解3. 開發(fā)二. WEB項目開發(fā)的一般流程一一總綱1. 需求確定(需求分析)弄明白現(xiàn)在干什么2. 分析與設(shè)計(掌握技術(shù)之后要掌握的東西 )(1) .架構(gòu)分析與設(shè)計(2) .業(yè)務邏輯分析(3) .業(yè)務邏輯設(shè)計(4) .界面設(shè)計3. 開發(fā)環(huán)境搭建4. 開發(fā)-測試-開發(fā)-測試5. 文檔
2、編纂每一個階段產(chǎn)生不同的文檔,不同的文檔由不同的人來寫三. WEB項目開發(fā)的一般流程一一需求確定1. 需求確定(1) .通過各種手段確定系統(tǒng)的功能與性能A. 功能:購物、注冊、瀏覽、搜索 B. 性能:可同時支持 n個并發(fā)訪問,而且響應時間不低于m毫秒C. 手段:a. 頭腦風暴(brain storm)b. 會議c. 詢問d. 原型一界面原型、業(yè)務原型(2) .本階段是項目開發(fā)的最重要階段(3) .在web項目中,通常界面設(shè)計會在本階段進行四. WEB項目開發(fā)的一般流程一分析與設(shè)計之架構(gòu)分析與設(shè)計1. 架構(gòu)分析與設(shè)計(1).邏輯架構(gòu)A. 3層架構(gòu)、n層架構(gòu)B. MVCC. Model 1 (js
3、p直接訪問數(shù)據(jù)庫)or M odel 2 (jsp + javabean訪問數(shù)據(jù)庫)D. -(2) .物理架構(gòu)A. Web服務器的分布B. 數(shù)據(jù)庫服務器的分布C. ,(3) .技術(shù)解決方案的確定A. Java/.netB. Open Source/ 商業(yè)C. ,WE顫目開發(fā)的一般流程一分析與設(shè)計之業(yè)務邏輯分析1. 根據(jù)需求分析業(yè)務邏輯a) 有哪些人會使用本系統(tǒng)b) 他們會使用本系統(tǒng)做什么c) 通常他們使用本系統(tǒng)的步驟是什么樣的d) 會有哪些明顯的類來支撐本系統(tǒng)的運行e) 會有哪些不同的提示會反饋給用戶f) ,2. 本階段與需求的確定緊密相關(guān),通常在確定需求的時候就會進行相關(guān)的分析WE顫目開發(fā)的
4、一般流程一分析與設(shè)計之業(yè)務邏輯設(shè)計1. 業(yè)務邏輯設(shè)計a) .根據(jù)需求的分析來確定具體的類b) .確定類的屬性c) .確定類的接口(方法)d) .確定類之間的關(guān)系e) .確定用戶操作流程在設(shè)計上的反應f) .進行數(shù)據(jù)庫的設(shè)計g) .不同的項目步驟可能不盡相同h) . ,WE顫目開發(fā)的一般流程一分析與設(shè)計之界面設(shè)計1.界面設(shè)計a) 設(shè)計系統(tǒng)的界面風格i. 顏色、styleb) 設(shè)計系統(tǒng)的具體”模擬”界面i.能夠從頭到尾1. 方面進行需求的確定2. 方便JSP程序員的開發(fā)3. ,WE顫目開發(fā)的一般流程一開發(fā)環(huán)境的搭建1.開發(fā)環(huán)境的搭建a) 開發(fā)工具的確定b) 配置管理工具的確定c)測試工具的確定d)
5、文件服務器/配置服務器等的確定e),WE顫目開發(fā)的一般流程一開發(fā)1.開發(fā)-測試-開發(fā)-測試a)按照設(shè)計進行開發(fā)i. 迅速開發(fā)原型ii. 進行迭代開發(fā)iii. 提早進行測試1. 單元測試2. 黑盒子測試3. 性能測試4. 易用性測試5.,金尚網(wǎng)上商城一需求確定1. 普通用戶可以通過系統(tǒng)瀏覽商品(按類別)2. 普通用戶可以通過系統(tǒng)搜索商品(按類別、價位、日期等)3. 普通用戶可以通過系統(tǒng)下訂單(享受市場價)4. 普通用戶可以注冊成為系統(tǒng)會員(免費注冊)5. 會員可以瀏覽和檢索商品6. 會員可以下訂單(享受會員價)7. 會員可以瀏覽自己下過的訂單8. 會員可以管理自己的信息(自服務系統(tǒng))a)修改密碼
6、b)修改送貨地址c)修改聯(lián)系方式9. 會員可以分級別a)不同級別享受不同等級的優(yōu)惠b)通過購物的金額確定級別10. 管理員通過后臺進行會員管理a)會員瀏覽b)會員歷史訂單瀏覽c)會員刪除d)指定會員級別11. 管理員通過后臺進行商品分類的管理a)瀏覽、添加、刪除、修改12. 管理員通過后臺進行產(chǎn)品管理a)新增產(chǎn)品b)產(chǎn)品上柜c)產(chǎn)品下柜d)產(chǎn)品銷量瀏覽e)產(chǎn)品搜索f)產(chǎn)品刪除g)產(chǎn)品修改13. 管理員通過后臺進行訂單的管理a)訂單查詢b)修改訂單狀態(tài)c)訂單搜索d)訂單跟蹤e)訂單提醒金尚網(wǎng)上商城一架構(gòu)分析與設(shè)計1. 邏輯架構(gòu)a)JSP + JavaBean +Databasei. JSP負責
7、表現(xiàn)ii. JavaBean負責業(yè)務邏輯iii. Database負責持久保持數(shù)據(jù)2. 物理架構(gòu)a)Web服務器一臺i.配置b)DataBase服務器一臺i.配置3. 技術(shù)解決方案a)WebServer Tomcat5.5b)Database MySQL5.0金尚網(wǎng)上商城一業(yè)務邏輯分析1. 會員類a)包裝系統(tǒng)會員b)與訂單有一對多的關(guān)系2. 管理員類a)包裝系統(tǒng)管理員3. 產(chǎn)品類a)包裝產(chǎn)品的信息b)與訂單是多對多的關(guān)系4. 類別類a)包裝產(chǎn)品的類別b)樹狀結(jié)構(gòu)c)與產(chǎn)品是一對多的關(guān)系5. 訂單類a)包裝訂單的信息b)與產(chǎn)品是多對多的關(guān)系c)與會員是多對一的關(guān)系6. 購物車類a)包裝購物車的信
8、息b)與產(chǎn)品是多對多的關(guān)系金尚網(wǎng)上商城一業(yè)務邏輯設(shè)計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/訂單&訂單中的一項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ù)庫設(shè)計1. User字段名字段類型說明idint主鍵/自動遞增usernameVarchar用戶名passwordvarchar密碼phonevarchar電話addrvarchar地址rdatedate
12、time注冊日期2. Productidint主鍵/自動遞增namevarchar產(chǎn)品名descrvarchar描述normalpricevarchar市場價memberpricevarchar會員價pdatedatetime上柜日期categoryIDint類別ID/引用Categroy表的id3. Categroy字段名字段類型說明idint主鍵/自動遞增namevarchar分類名descrvarchar描述pidvarchar父id4. SalesOrder字段名字段類型說明idint主鍵/自動遞增useridint用戶idaddrvarchar送貨地址odatedatetime下單時
13、間statusint訂單狀態(tài)/0訂單未處理1處理成功2廢單5. SalesItem字段名字段類型說明idint主鍵/自動遞增productidint產(chǎn)品idunitpricevarchar單價pcountdatetime數(shù)量orderidint訂單id/引用salesorder的id1. 首頁a)b)c)金尚網(wǎng)上商城一界面設(shè)計 前臺index.jsp顯示某類商品根據(jù)id顯示圖片搜索d) 注冊e) 登錄search.jsp searchresult.jspf) 自服務2. 搜索界面3. 搜索結(jié)果4. 注冊a) 注冊頁面register.jspb) 注冊成功registerok.jspc) 注冊失
14、敗registererr.jsp5. 登陸a) 登陸頁面login.jspb) 登陸成功loginok.jspc) 登陸失敗 loginerr.jsp6. 自服務 selfservice.jspa)修改密碼changepassword.jspb)修改成功changepasswordeok.jspc)修改失敗changepassworderr.jspd)修改其他信息changeinfo.jspe)修改其他信息成功changeinfook.jspf)修改其他信息失敗changeinfoerr.jsp7.購物a)購物車瀏覽cart.jspb)結(jié)賬 buy.jsp后臺(admin目錄下)1.登陸頁面l
15、ogin.jsp2.首頁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)上商城一開發(fā)環(huán)境搭建1. 開發(fā)工具a) eclipse3.22. WEB SERVERa) tomcat5.53. DATABASEa) MySQL4. SCMa) Cvs金尚網(wǎng)上商城一開發(fā)1. 先寫用戶2. 再寫分類3. 然后寫產(chǎn)品4. 接下來寫購物5. 最后訂單處理6. 其他功能金尚網(wǎng)上商城一開發(fā)安排1. V0.1a)用戶JavaBean前臺/后臺2. V0.2a)分類JavaBean前臺/后臺3. V0.3a) 產(chǎn)品JavaBe
17、an前臺 /后臺4. V0.4a)購物JavaBean前臺5. V0.5a) 訂單JavaBean 前臺 / 后臺6. V0.6a)其他JavaBean前臺/后臺金尚網(wǎng)上商城文檔編纂1. 需求描述文檔2. 系統(tǒng)分析與設(shè)計3. 數(shù)據(jù)庫設(shè)計4. 開發(fā)接口 API docs &源代碼注釋5. 用戶幫助(前臺)6. 管理員手冊(后臺)7. 測試文檔重點掌握1.初步了解項目開發(fā)流程a)理解并表達b)熟練運用2. 理解后臺與前臺a)理解互動3. 進一步加深對樹狀結(jié)構(gòu)運用的理解4. 熟練掌握session的概念和運用5. 掌握下列技巧a) 圖片的管理b) 上傳組件的運用開始開發(fā)首先搭建環(huán)境先引入需要
18、的類庫,建立數(shù)據(jù)庫表建立數(shù)據(jù)庫連接的封裝類(輔助類)com.bjsxt.shopping.util DB.java不用連接池DB寫成單例模式,或者不用都不大,這里不用單例模式寫這個類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)于分層的一個特別重要的原則:不能越層訪問!首先寫一個User的一個JavaBean, 一般情況下實體類是和數(shù)據(jù)庫表里的字段是一一對應的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ù)庫命名全部小寫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 );用戶注冊頁面的名字:register.jsp創(chuàng)建register.jsp頁面設(shè)置頁面編碼問題:在此頁面點右鍵Preferences Encoding "Chinese, NationalStantard "默認是 “ ISO L
29、atin-1 ”三種中文編碼的區(qū)別:GB18030 > GBK > GB2312用原來講javascript中的表單作為原形:把原來的文件和它的.js文件copy到register.jsp中去 連接服務器瀏覽一下之后修改顯示格式1.首先action改一下action ="register.jsp” 提交到自身這個頁面,如果提交到自身的話這個頁面就有連個入口,一個入口是點鏈接鏈接過來,還有一個入口是我們點“提交”把數(shù)據(jù)提交過去,要區(qū)分是鏈接過來還是提交過來的辦法是什么?多一個hidden 字段提交的頁面寫完了,請保存到數(shù)據(jù)庫里向去,<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");/密碼確認應該在后臺檢查一下String phone = request.getParameter("phone" );String addr = request.get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年洗滌劑用4A沸石合作協(xié)議書
- 農(nóng)村新型生態(tài)農(nóng)業(yè)模式開發(fā)合作協(xié)議
- 產(chǎn)品代理銷售合同附加條款及條件
- 農(nóng)村基礎(chǔ)設(shè)施改造及維護合同書
- 金融科技產(chǎn)業(yè)創(chuàng)新發(fā)展合作合同
- 精密機械制造項目采購合同
- 2025年非調(diào)質(zhì)鋼合作協(xié)議書
- 農(nóng)村新型經(jīng)營主體培育與推進協(xié)議
- 公文處理的效果評估試題及答案
- 企業(yè)經(jīng)營戰(zhàn)略合作協(xié)議書
- 隴南2025年隴南市事業(yè)單位高層次人才和急需緊缺專業(yè)技術(shù)人才引進(第一批)筆試歷年參考題庫附帶答案詳解
- 貴州中考英語復習重點單選題100道及答案
- 課程售賣合同協(xié)議書
- 合伙養(yǎng)牛合同協(xié)議書
- 2025屆廣西邕衡教育名校聯(lián)盟高三下學期新高考5月全真模擬聯(lián)合測試數(shù)學試題及答案
- 2025羽毛球場館租賃合同
- 線上陪玩店合同協(xié)議
- (二模)貴陽市2025年高三年級適應性考試(二)英語試卷(含答案)
- 蓉城小史官考試試題及答案
- 河南省安陽市新鄉(xiāng)市2025屆高三三模語文試題(含答案)
- 2025-2030中國無損檢測(NDT)行業(yè)發(fā)展現(xiàn)狀與前景預測研究報告
評論
0/150
提交評論