JavaWeb图书管理系统day01
- 視頻+資料+筆記【鏈接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ? ?提取碼:zjxs】
- JavaWeb圖書管理系統【bookEstore文檔】
- JavaWeb圖書管理系統【源碼 + 效果展示】
目錄
公開課安排
一、功能分析與設計
數據表之間的關系
導入sql文件
設置域名(虛擬主機配置)
二、注冊與登錄操作
三、添加商品操作
四、顯示商品信息
公開課安排
第一天
第二天
第三天
一、功能分析與設計
數據表之間的關系
訂單與用戶之間存在關系:1 對 多 ?
?? ??? ?要在訂單表中生成一個外鍵來描述關系。
?? ??? ?
訂單項:描述的商品與訂單之間的關系
?? ??? ?多對多關系
?? ??? ?
需要一個中間表(orderitem)來描述它們的關系
導入sql文件
創建數據庫后,進入數據庫,通過 source導入sql文件:
???
設置域名(虛擬主機配置)
關于在瀏覽器上直接輸入 ?http://www.bookEstore.com 就可以訪問工程的問題。
?? ??? ?
1.在tomcat/conf/server.xml文件中,配置一個虛擬主機
?? ??? ??? ?<Host name="www.bookEstore.com" ?appBase="D:\j2eeWorkspaces\bookEstore"
?? ??? ??? ??? ?unpackWARs="true" autoDeploy="true">
?? ??? ??? ??? ?<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
?? ??? ??? ??? ? ? prefix="localhost_access_log." suffix=".txt"
?? ??? ??? ??? ? ? pattern="%h %l %u %t "%r" %s %b" />
?? ??? ??? ??? ??
?? ??? ??? ??? ?<Context path="" docBase="D:\j2eeWorkspaces\bookEstore\WebRoot"/> ?
?? ??? ??? ??? ? ??
?? ??? ? ?</Host>
?? ??? ? ?
2.需要在C:\Windows\System32\drivers\etc路徑下,查找一個配置文件hosts
?? ??? ??? ?在這個文件中配置
?? ??? ??? ?127.0.0.1 ? ? ? www.bookEstore.com
?? ??? ??? ?
?? ??? ??? ?
3.可以在server.xml文件中,配置:
?? ??? ??? ?<Engine name="Catalina" defaultHost="www.bookEstore.com">
二、注冊與登錄操作
1.注冊
?? ??? ??? ?1.注冊功能演示
?? ??? ??? ?2.代碼實現
?? ??? ??? ??? ?regist.jsp頁面------>UserServlet----->UserDao
?? ??? ??? ??? ?
?? ??? ??? ??? ?UserServlet中:
?? ??? ??? ??? ??? ?1.獲取驗證碼,判斷它是否正確,如果正確,向下執行.
?? ??? ??? ??? ??? ? ?如果不正確,跳轉到regist.jsp頁面,顯示錯誤信息
?? ??? ??? ??? ??? ? ?
?? ??? ??? ??? ??? ?2.將所有請求參數封裝到User對象中,在User類中創建一個validateRegist方法,
?? ??? ??? ??? ??? ?這個方法會對請求參數進行校驗,將錯誤信息封裝到一個Map集合,在Servlet中
?? ??? ??? ??? ??? ?判斷集合長度是否>0,這樣就可以判斷是否有錯誤信息,如果有,跳轉到regist.jsp顯示錯誤信息.
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?3.調用UserService去完成注冊操作 ?調用regist方法,傳遞User參數
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?4.在regist方法中做了兩件事情
?? ??? ??? ??? ??? ??? ?1.調用UserDao完成注冊操作
?? ??? ??? ??? ??? ??? ?2.給注冊的用戶發送了一封激活郵件
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ?關于md5加密:
?? ??? ??? ??? ??? ?在mysql數據庫中通過 ?md5(字段);
?? ??? ??? ??? ??? ??? ?update users set password=md5(password);
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?在java中可以通過代碼實現
?? ??? ??? ??? ??? ??? ?MessageDigest.getInstance("md5")
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ?
2.登錄操作
?? ??? ??? ?index.jsp---->page.jsp頁面 有登錄窗口
?? ??? ??? ?
?? ??? ??? ?會有登錄窗口,提交時會訪問UserServlet,會帶一個請求參數 ?method=login
?? ??? ??? ?在UserServlet中就可以判斷當前操作是登錄操作
?? ??? ??? ?就會調用UserServlet中的login方法
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?UserServlet---UserService----->UserDao
?? ??? ??? ??? ?
?? ??? ??? ??? ?1.userServlet中收集了用戶名與密碼
?? ??? ??? ??? ?2.UserService中調用UserDao中查找用戶操作 ?findUserByUserNameAndPassword
?? ??? ??? ??? ?3.在UserService中判斷了一下得到的User對象是否為null,如果為null,直接拋出一個自定義異常.
?? ??? ??? ??? ?4.如果查找到了用戶,但是用戶未激活,那么也不能登錄成功,拋出了一個自定義異常.
?? ??? ??? ??? ?5.在UserServlet中捕獲自定義異常,在page.jsp頁面顯示錯誤信息.
?? ??? ??? ??? ?6.在UserServlet中判斷用戶不為空,就將User存儲到session中,并跳轉到首頁index.jsp,
?? ??? ??? ??? ? ?自動跳轉到page.jsp頁面。
?? ??? ??? ??? ? ?
?? ??? ??? ?
?? ??? ??? ?1.記住用戶名
?? ??? ??? ??? ?當用戶登錄成功后,并且勾選了記住用戶名操作,我們將用戶的username存儲到cookie中,
?? ??? ??? ??? ?持久化存儲,并攜帶到瀏覽器端.
?? ??? ??? ??? ?在頁面上通過el表達式獲取username顯示出來.
?? ??? ??? ??? ?
?? ??? ??? ??? ?在cookie中是不能存儲中文,那么要是用戶名是中文,我們可以存儲username的utf-8碼.
?? ??? ??? ??? ?在頁面上,通過js將utf-8碼解碼.
?? ??? ??? ??? ?
?? ??? ??? ?2.自動登錄操作
?? ??? ??? ??? ?當用戶登錄成功后,并且勾選自動登錄操作,我們將username,password都存儲到cookie中,
?? ??? ??? ??? ?持久化存儲,并攜帶到瀏覽器端.
?? ??? ??? ??? ?
?? ??? ??? ??? ?當下一次在訪問時,我們可以通過Filter來攔截我們請求,判斷cookie中是否有我們存儲username,
?? ??? ??? ??? ?passowrd的這個cookie
?? ??? ??? ??? ?
?? ??? ??? ??? ?注意:自動登錄時,有以下情況是不需要進行自動登錄的.
?? ??? ??? ??? ??? ?1.用戶已經登錄
?? ??? ??? ??? ??? ?2.用戶訪問的路徑是 ?login ?regist這樣的操作。
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ?
?? ??? ??? ?3.注銷操作
?? ??? ??? ??? ?我們用戶登錄成功后,會將用戶存儲到session中。
?? ??? ??? ??? ?注銷操作就是將session銷毀就可以以。
?? ??? ??? ??? ?session.invalidate()方法.
?? ??? ??? ??? ?
?? ??? ??? ??? ?點擊注銷訪問UserServlet?method=logout
三、添加商品操作
3.關于商品的添加
?? ??? ??? ?添加商品操作,其實是一個文件上傳操作。添加商品時,需要添加一個商品圖片,我們使用文件上傳。
?? ??? ??? ?commons-fileupload
?? ??? ??? ?
?? ??? ??? ?瀏覽器:
?? ??? ??? ??? ?1.method=post
?? ??? ??? ??? ?2.encType="multipart/form-data"
?? ??? ??? ??? ?3.<input type="file" name="f">組件
?? ??? ??? ??? ?
?? ??? ??? ?點擊添加圖書鏈接,會訪問 addProduct.jsp頁面?? ?
?? ??? ??? ?
?? ??? ??? ?AddProductServlet這個servlet中有兩個工作:
?? ??? ??? ??? ?1.完成書箱圖片的保存(上傳操作)
?? ??? ??? ??? ?2.將信息存儲到數據庫
?? ??? ??? ?創建了一個Map<String,String[]>它用于封裝所有請求參數
?? ??? ??? ?通過BeanUtils.populate方法將請求參數直接封裝到Product類中。
?? ??? ??? ?可以調用ProductService中的添加圖書的方法,完成圖書添加操作
?? ??? ??? ?當圖片添加成功后,我們會跳轉到index.jsp頁面。
四、顯示商品信息
4.關于查詢圖書操作
?? ??? ??? ?
?? ??? ??? ?1.查詢全部
?? ??? ??? ??? ?index.jsp頁面直接跳轉到ProductServlet中
?? ??? ??? ??? ?執行findAll操作,也就是查詢出全部信息
?? ??? ??? ??? ?
?? ??? ??? ??? ?調用ProductService----ProductDao完成查詢操作,得到所有商品信息List<Product>
?? ??? ??? ??? ?
?? ??? ??? ??? ?轉發到page.jsp頁面,在page.jsp頁面展示所有商品信息.
?? ??? ??? ??? ?
?? ??? ??? ?2.根據id查詢
?? ??? ??? ??? ?點擊“搶購書籍”,會訪問ProductServlet,
?? ??? ??? ??? ?product?method=findById&id=xxx
?? ??? ??? ??? ?會將這本書籍的id也攜帶到服務器端.
?? ??? ??? ??? ?
?? ??? ??? ??? ?會調用ProductService的findByid方法,根據id查找書籍,也就是得到一個Product對象。
?? ??? ??? ??? ?
?? ??? ??? ??? ?查找到商品后,跳轉到productInfo.jsp頁面,展示商品信息。
?? ??? ??? ??? ?
?? ??? ??? ??? ?上傳的所有圖片 大小不確定的,怎樣保證顯示商品時,它的大小?
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?通過一個工具類可以保證當前的商品的圖片大小一致。
?? ??? ??? ??? ?
?? ??? ??? ??? ?PicUtils putils = new PicUtils(this.getServletContext().getRealPath(product.getImgurl()));
?? ??? ??? ??? ?putils.resize(200, 200);
?? ??? ??? ??? ?
?? ??? ??? ??? ?當添加商品時,會生成商品圖片的一個縮略圖,以方便我們在頁面上顯示。
?? ??? ??? ??? ??
?? ??? ??? ??? ?在Product類中提供了一個getImgurl_s方法,這個方法,會根據商品圖片的路徑,獲取到縮略圖片的路徑,
?? ??? ??? ??? ?我們就可以直接在頁面上通過el表達式,獲取縮略圖的路徑,顯示出這個縮略圖。
總結
以上是生活随笔為你收集整理的JavaWeb图书管理系统day01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb黑马旅游网-学习笔记01【
- 下一篇: JavaWeb图书管理系统day02