通過 今天小老師對 Javaweb 的串講,自己最大收穫是對整個javaWeb有了一個系統的理解,對實現各個步驟的原理有了一個融會貫通,整體知識點也串聯了起來,自己的思想也從以前單純的利用 Java 代碼編寫現實項目程序到應用現有工具方便快捷的發開出項目程序的過。現在回顧之前6章的知識點內容, Javaweb 感覺清晰了很多,從 HTTP 入手,再對 HTTP 中的請求、響應中的 4 個組成部分做依次解析,每個部分都有相應的幾個方法獲取當前目標的屬性,然後到實現過濾器、監聽器的過程,最後引入 JSP 、 EL 、 JSTL 達到編寫無腳本的 JSP 頁面。
JavaWeb 的學習,真正的讓我們接觸到了日後工作中一些項目的開發流程,設計模式以及一些常用的工具。
今天上課後,馮老師也沒有給我們講新課,而是給我們講了購物車的實現,
購物車要點小結:
1. 對於網上購物車而言拒絕用戶的每次操作都連接數據庫,這樣會大大消耗服務器的資源,所以我們應該將操作先保存在服務器的內存中再一次性寫入數據庫。
2. 在服務器啓動的時候我們應該先把數據庫中所有的物品信息一次性讀到 Context 中,讓這些信息作爲一種全局變量使整個 WEB 程序共享。
3. 在進行數據強制轉化的時候要考慮數據的內存結果是否一致,如不能把 String 強制轉化成 int ,只能通過包裝類進行操作。
4. 對於數據庫的連接, DRIVER 只是 sun 公司提供的一個接口,各大數據庫公司提供相應的實現類,我們利用反射得到其類的模板。
5. 從點擊購買商品到結束購買要始終要購物車保存在 Session 中,而購物車用來操作一個 HashMap<Integer,Product> 。當然我們也可以直接把這個集合放入 Session 中,但是這樣就不能體現 Java 中的封裝思想。
6. 在 JDBC 中 PreparedStatement 和 Statement 的選擇上,對於動態的 sql 語句(帶有?的內容)一般選擇 PreparedStatement ,因爲 PreparedStatement 只編譯一次,大大節約了資源。
7. 一般來說,一個不同的請求需要一個 Servlet 進行處理,這樣就會造成很多的 Servlet 需要編寫。對於這類問題我們可以讓一個 Servlet 繼承一個 BaseServlet 類,然後讓 BaseServlet 類繼承 HttpServlet ,覆蓋 HttpServlet 中的 doGet() 和 doPost() 方法,在 doPost() 中實現 doGet() ,在 doGet() 中通過反射方法名調用相應方法,最後我們只需要在一個 Servlet 中編寫相應的方法即可。
8. 對於程序的封裝能實現代碼的複用,減少代碼間的耦合度,提高代碼的耦合度。這在我們平時的編程中很重要。