目? 錄
一、實驗目的
二、實驗環境
三、實驗步驟和內容
1、小組成員分工(共計4人)
2、實驗方案
3、實驗結果與分析
4、項目任務評價
四、遇到的問題和解決方法
五、實驗總結
一、實驗目的
? ? ? ? 1、掌握mysql的安裝、數據庫表單創建
? ? ? ? 2、掌握JDBC的鏈接
? ? ? ? 3、理解MVC的概念,掌握bean(entity)、dao、service、dbutils包和相關類的建立
? ? ? ? 4、完成JSP+servlet+JDBC+MySQL實現課程管理
二、實驗環境
????????1、硬件要求:筆記本電腦一臺。
????????2、軟件要求:Windows操作系統,使用Eclipse編譯環境、Tomcat服務器以及Microsoft Edge瀏覽器。
????????3、網絡要求:能訪問互聯網。
三、實驗步驟和內容
1、小組成員分工(共計4人)
? ? ? ? (1)組長——錦鯉
????????完成小組內部成員的分工以及前端界面的設計和把控,制定相關的組內合作機制,組內項目的構建遵從“四模四合三并一詳”制度,即“四模”為相關項目的制作分為四個模塊,每一個人負責一個模塊的制作;“四合”為組內四人之間相互合作,將項目開展過程中出現的問題及時的反饋到小組群內,小組成員一起解決;“三并”為以3天為一個期限合并一次代碼,檢測代碼之間以及網頁之間是否能夠正常的進行銜接和跳轉,即每周周三和周六各進行一次小的代碼合并工作,將過程中出現的問題發到小組群里讓對應負責的同學進行修改和完善,最后在每周的周天進行一次大型的代碼合并,此時所有成員必須全部到場,對運行過程中和演練過程中可以改進的地方進行記錄,全部演示完畢后對自己負責的模塊再進行相應的完善工作;“一詳”為組內所有代碼都要有相應的注釋,確保組內成員都可以看懂各自負責模塊的代碼,方便進行后期代碼的修改工作。
????????使用Eclipse編譯軟件以及MySQL設計一個課程管理頁面,并使用MySQL建立自己需要使用的數據庫和數據表,通過JSP+servlet+JDBC+MySQL實現對應的課程管理功能。
? ? ? ? (2)組員——大瓜
????????使用Eclipse編譯軟件以及MySQL設計一個課程管理頁面,并使用MySQL建立自己需要使用的數據庫和數據表,通過JSP+servlet+JDBC+MySQL實現對應的課程管理功能。
? ? ? ? (3)組員——小瓜
????????使用Eclipse編譯軟件以及MySQL設計一個課程管理頁面,并使用MySQL建立自己需要使用的數據庫和數據表,通過JSP+servlet+JDBC+MySQL實現對應的課程管理功能。
? ? ? ? (4)組員——哈密瓜
????????使用Eclipse編譯軟件以及MySQL設計一個課程管理頁面,并使用MySQL建立自己需要使用的數據庫和數據表,通過JSP+servlet+JDBC+MySQL實現對應的課程管理功能。
2、實驗方案
????????1、根據課本、PPT和老師課堂中講解的內容,使用Eclipse編譯軟件制作各自負責模塊的內容。
????????2、將代碼編寫過程中遇到的問題及時的反饋到小組群內,小組內共同尋找解決方案并將其完美解決。
????????3、使用MySQL建立課程管理系統需要使用的數據庫(myweb810)以及數據表(course810),通過JDBC連接對應的數據庫,并通過調用數據庫中的課程數據進行課程管理系統的添加、修改、刪除、查詢等操作。
????????4、定期討論并總結項目制作過程中出現的問題,對出現的問題進行歸納總結。
????????5、完成最終的項目以及各自的實驗報告,最后進行實驗報告排版的檢測并提交。
3、實驗結果與分析
????????1、使用Eclipse編譯軟件通過JSP+servlet+JDBC+MySQL編寫課程管理的頁面,頁面實現完成后進行項目的運行,項目啟動運行界面如圖3-1:
圖3-1?項目啟動運行界面
????????2、通過JSP+servlet+JDBC+MySQL實現前端頁面的搭建,構建課程基本信息管理系統的四個模塊,即課程信息錄入、課程信息修改、課程信息刪除、課程信息查詢四個模塊,項目啟動后的首頁界面如圖3-2:
圖3-2?首頁界面
????????3、由于還沒有建立數據庫和連接數據庫因此目前頁面無法實現正常模塊的相關操作,在MySQL編譯器中構建myweb810數據庫,并將自己在項目過程中所需要使用的數據表建立在當前數據庫下,數據庫建立及數據表建立界面如圖3-3:
圖3-3?數據庫建立及數據表建立界面
????????4、數據庫建立完畢后,在myweb810數據庫中建立課程信息管理系統需要使用的數據表course,其中數據表中具有id、name、teacher、classroom四個屬性,course數據表界面如圖3-4:
圖3-4?course數據表界面
????????5、導入數據庫驅動包,在自己的電腦上找到自己數據庫驅動包的路徑,然后將自己需要的數據庫驅動包直接拖拽到WEB-INF文件夾下的lib文件夾下,切記在拖拽前先查看自己MySQL的版本,進而確保對應的驅動包版本與之匹配,數據庫驅動文件導入界面如圖3-5:
圖3-5?數據庫驅動文件導入界面
????????6、數據庫驅動文件導入以后右擊將文件添加到對應的路徑之下,具體操作為右擊->構建路徑(Bulid Path)->添加路徑(Add to bulid path)即可完成對應路徑的添加,數據庫文件路徑添加界面如圖3-6:
圖3-6?數據庫文件路徑添加界面
????????7、數據表構建完成后使用JDBC連接需要使用的數據庫,并通過相關的操作對數據庫中的course數據表中的信息進行添加、修改、刪除、查詢等操作,數據庫連接驅動界面如圖3-7:
圖3-7?數據庫連接驅動界面
????????8、數據庫完成連接后運行整個項目,然后在首頁中選擇課程信息錄入模塊進行課程相關信息的錄入,填寫相關的課程名稱、任課教師、上課地點三項內容,輸入完成后點擊保存即可完成相關信息的錄入工作,最后點擊返回主頁即可回到主頁面,課程信息錄入界面如圖3-8:
圖3-8?課程信息錄入界面
????????9、在首頁中選擇課程信息修改模塊進行課程相關信息的修改,點擊此模塊后會顯示課程信息列表,其中包括ID、課程名稱、任課教師、上課地點、操作五項屬性,如果需要修改相關信息只需要點擊操作中的修改即可,最后點擊返回主頁即可回到主頁面,課程信息修改界面如圖3-9:
圖3-9?課程信息修改界面
????????10、進入課程信息修改界面后,對需要修改的信息進行修改時只需要點擊操作中的修改即可,相關的課程名稱、任課教師、上課地點三項內容會自動進行填充,對其中需要修改的地方進行修改后點擊修改即可完成信息內容的修改,最后點擊返回主頁即可回到主頁面,課程信息內容修改界面如圖3-10:
圖3-10?課程信息內容修改界面
????????11、在首頁中選擇課程信息查詢模塊進行課程相關信息的查詢,填寫相關的課程名稱、任課教師、上課地點三項內容中的任意一項即可進行查詢,所輸入的項數目越多查詢到的信息越具體和詳細,輸入完成后點擊查詢即可進行相關信息的查詢操作,最后點擊返回主頁即可回到主頁面,課程信息查詢界面如圖3-11:
圖3-11?課程信息查詢界面
????????12、在首頁中選擇課程信息查詢模塊進行課程相關信息的查詢,填寫相關的課程名稱、任課教師、上課地點三項內容中的任意一項即可進行查詢,所輸入的項數目越多查詢到的信息越具體和詳細,輸入完成后點擊查詢即可進行相關信息的查詢操作,接著就會進入到課程信息列表并顯示相關的ID、課程名稱、任課教師、上課地點四項內容,最后點擊返回主頁即可回到主頁面,課程信息內容查詢界面如圖3-12:
圖3-12?課程信息內容查詢界面
????????13、在首頁中選擇課程信息刪除模塊進行課程相關信息的刪除,填寫需要刪除課程的課程名稱然后點擊查找進行信息的查找操作,進而確定需要刪除的信息時無誤的,最后點擊返回主頁即可回到主頁面,課程信息刪除界面如圖3-13:
圖3-13?課程信息刪除界面
????????14、在首頁中選擇課程信息刪除模塊進行課程相關信息的刪除,填寫需要刪除課程的課程名稱然后點擊查找進行信息的查找操作,進而確定需要刪除的信息時無誤的,接著就會顯示需要刪除課程的相關信息,點擊刪除即可完成選擇信息的刪除,最后點擊返回主頁即可回到主頁面,課程信息內容刪除界面如圖3-14:
圖3-14?課程信息內容刪除界面
4、項目任務評價
????????1、每次完成代碼迭代更新后對應模塊出現的問題大家都可以積極的進行解決,不但提高了對問題的解決效率,而且還加深了我們每一個人處理問題的能力。
????????2、每一個組員在編寫代碼的過程中都可以對自己的代碼進行注釋,每一期合成完畢后的代碼組內的成員都可以看懂其他組員所編寫的代碼,這樣組內的每一位成員都可以詳細的了解我們整個項目的運行,并且在運行后可以比較快速的定位到出現錯誤的地方。
????????3、雖然在項目制作的過程中存在一定的問題,但是我們都會進行及時的調整,總的來說優點是大于缺點的,我們會繼續保持好的的一方面,及時對缺點和不足進行改正和完善,讓小組成員和自己的項目更加完善。
四、遇到的問題和解決方法
????????1、運行問題:編寫的代碼在運行過程中出現了亂碼現象。
解決方法:鼠標右擊->Run As->Run Configurations->Common->在Other后填寫gbk然后點擊Run進行運行后中文可以正常輸出。
????????2、運行問題:代碼編寫完成后進行運行發現網頁無法進行頁面加載,顯示頁面請求失敗。
解決方法:由于沒有在Tomcat服務器上進行運行所導致,先運行服務器然后再運行代碼后頁面可以正常加載。
????????3、運行問題:啟動Tomcat的過程中,有時出現端口被占用的情況。
解決方法:對服務器進行配置,將服務器運行的端口號改為別的端口即可(找到Tomcat安裝目錄下的文件“/conf/server.xml”->使用記事本或寫字板打開文件,在文件中找到“Connector port=8080”->將“8080”改為“8888”,然后保存配置文件->重啟Tomcat服務器)。
????????4、項目問題:多個同名文本框是如何存儲在獲取到的數組里的。
解決方法:以文本框在源代碼中出現的順序,從數組的第0位開始向后放置。
????????5、項目問題:使用定時器讓某個函數隔一段時間之后運行一次的格式是怎樣的。
解決方法:定時器的格式為timer = window.setTimeout("需要運行的函數","時間(用毫秒計)")。
????????6、代碼問題:如果要清除定時器該怎樣操作。
解決方法:使用語句clearTimeout(timer)即可完成對定時器的清除。
????????7、代碼問題:使用對象location完成一個網頁跳轉到另一個網頁。
解決方法:跳轉的方法就是修改location的href屬性,即修改為window.location.href=”page.html”即可完成頁面的跳轉。
????????8、項目問題:<input type="submit" value="登錄">表示提交按鈕,是否可以寫普通按鈕。
解決方法:不可以,如果將該按鈕改為:<input type="button" value="登錄">,顯示效果一樣,但是點擊,沒有提交功能。不過可以用JavaScript進行提交。
????????9、項目問題:除了可以將JavaScript代碼嵌入到HTML中之外,是否還有其他的導入方式。
解決方法:可以專門將JavaScript代碼寫在單獨的文件中window.alert("第一個 JavaScript 程序"); 然后在另外的HTML頁面中插入<script src="code.js" type="text/javascript"></script>來導入需要的JavaScript文件。
????????10、項目問題:JSP頁面無法獲取到JavaBean中的數據。
解決方法:確保JavaBean中需要獲取的數據已經被正確地賦值,可以在JSP頁面中使用EL表達式或者使用Java代碼片段的方式獲取數據。
????????11、項目問題:JSP頁面無法正確地顯示數據。
解決方法:檢查JSP頁面中是否包含錯誤的HTML標簽、CSS樣式或JavaScript代碼,這些代碼可能會干擾數據的顯示,也可以檢查JavaBean中的數據是否被正確地存儲、處理和輸出。
????????12、項目問題:JSP頁面中出現空指針異常。
解決方法:檢查JavaBean對象是否被正確地初始化,或者是是否存在null值。在代碼中可以使用條件語句或者異常處理來避免空指針異常的出現。
????????13、項目問題:JSP頁面中的表單無法提交。
解決方法:檢查表單中的請求方法是否正確,是否存在未填寫的必填項,是否存在重復的表單參數等錯誤。同時,也可以檢查網絡連接是否正常。
????????14、項目問題:JSP頁面中遇到編碼問題。
解決方法:可以先檢查JSP頁面、JavaBean以及數據庫的編碼設置是否一致,可以手動在代碼中設置編碼格式,也可以在web.xml文件中配置全局的編碼過濾器。
????????15、項目問題:無法連接到數據庫。
解決方法:檢查數據庫連接信息是否正確,如數據庫的地址、端口、用戶名、密碼是否正確,是否設置了防火墻或者權限限制等問題,也可以嘗試重啟數據庫或者應用程序來解決。
????????16、項目問題:頁面跳轉異常。
解決方法:檢查代碼實現,確保頁面跳轉的 URL 是否正確,是否遺漏了必要的轉發或者重定向操作;另外還可以通過在瀏覽器中查看控制臺日志來定位問題。
????????17、項目問題:請求參數獲取失敗。
解決方法:檢查代碼實現,確保請求參數的名稱、類型和格式都與服務器端代碼中一致,還可以通過在瀏覽器中查看網絡請求信息來定位問題。
五、實驗總結
????????1、在使用單引號和雙引號的時候要特別注意,輸出單個字符時可以使用單引號,如果同時輸出多個字符時只能使用雙引號進行輸出,不然會報錯。
????????2、在對筆記本電腦進行配置時盡量不要使用C盤。
????????3、JavaScript是一種網頁腳本語言,雖然名字中含有Java,但它與Java語言是完全兩種不同的語言。
????????4、JavaScript代碼可以很容易地嵌入到HTML頁面中。瀏覽器對JavaScript腳本程序進行解釋執行。
????????5、 JavaScript與Java一樣,對大小寫是敏感的,在JavaScript中,注釋有三種寫法:一種是 HTML 注釋的寫法:<!—注釋內容-->,還有兩種分別為:"//單行注釋"和"/*多行注釋*/"。
????????6、JavaScript中的變量為弱變量類型,即變量的類型根據它被賦值的類型改變。
????????7、JavaScript中變量未聲明就使用是不會報錯的,但很容易出現不可預知的錯誤,所以所有變量先聲明后使用。
????????8、除了在代碼里面進行簡單的編程之外,我們還可以通過JavaScript提供的內置對象來對網頁進行操作,內置對象由瀏覽器提供,可以直接使用,不用事先定義。
????????9、history對象包含用戶的瀏覽歷史等信息,用到這個對象的原因,是因為它可以代替后退 (前進)按鈕訪問歷史記錄,該對象從屬于window。
????????10、location對象可以訪問瀏覽器地址欄,也是從屬于window,最常見功能就是跳轉到另一個網頁。
????????11、location對象另一個比較常見的應用是定時跳轉,但是需要結合window的定時器使用。
????????12、注冊功能應當驗證用戶輸入的用戶名、密碼及確認密碼是否相同,以避免輸入錯誤或重復的信息。
????????13、用戶注冊時應當將用戶名、密碼等信息保存到數據庫中,以便用戶登錄時進行驗證。
????????14、注冊過程應當采用AJAX異步提交,不必刷新整個網頁。
????????15、在注冊成功后,應當跳轉到登錄頁面,提醒用戶進行登錄。
????????16、使用JDBC連接MySQL數據庫時,需要先通過DriverManager類加載數據庫驅動,然后通過Connection類建立數據庫連接。
????????17、在進行課程管理操作時,需要先檢查輸入的用戶名和密碼是否合法,可以通過正則表達式進行有效性檢查。
????????18、在注冊時,需要先檢查用戶名是否已經存在于數據庫中,如果存在則提示用戶重新填寫。
????????19、在登錄時,需要先將用戶輸入的密碼進行一定的加密處理,保證密碼的安全性。
????????20、在進行數據庫表操作時,需要先定義SQL語句,然后通過PreparedStatement類進行預處理,最后通過ResultSet類獲取結果集。
????????21、注冊功能應當提供多種注冊方式,如手機號、郵箱等,且應當支持激活碼驗證、邀請碼驗證等方式,以加強注冊安全性。
????????22、在進行數據庫操作時,需要使用try-catch語句捕獲異常,并顯示友好的錯誤信息。
????????24、在進行JDBC操作時,需要注意代碼的復用和靈活性,可以將可復用的功能封裝成JavaBean或者Util類。
????????25、在進行SQL語句拼接時,需要注意SQL注入攻擊,可以通過轉義或者使用Prepared Statement等方式來防御SQL注入。
????????26、在進行用戶權限管理時,需要對不同用戶賦予不同的權限,以允許或禁止其訪問特定內容。
????????27、在開發調試過程中,需要使用Debug技術來查找代碼中的錯誤,如在Eclipse中可以使用Debug Perspective。