一、項目結構搭建(MVC 分層)
在 IDEA 中創建 Web 項目,建立以下目錄結構:
項目名
├─ src/main/java
│ ├─ com.xxx.entity // Model層:實體類
│ ├─ com.xxx.dao // Model層:數據訪問接口
│ ├─ com.xxx.dao.impl // Model層:數據訪問實現
│ ├─ com.xxx.service // 業務邏輯層接口
│ ├─ com.xxx.service.impl // 業務邏輯層實現
│ └─ com.xxx.servlet // Controller層:Servlet
├─ web
│ ├─ login.jsp // View層:登錄頁
│ ├─ index.jsp // View層:主頁面(顯示info列表)
│ ├─ add.jsp // View層:新增頁面
│ ├─ edit.jsp // View層:修改頁面
│ └─ WEB-INF
│ ├─ lib // 存放Jar包
│ └─ web.xml // 項目配置文件
└─ c3p0-config.xml // c3p0連接池配置文件(放src目錄)
三、核心模塊實現
1. 基礎配置
- c3p0 配置:編寫
c3p0-config.xml,配置 MySQL 連接信息(驅動、URL、用户名、密碼); - web.xml 配置:配置 Servlet 映射、歡迎頁(比如默認跳轉到
login.jsp)、Session 超時時間。
2. Model 層實現
- 實體類(Info.java):對應
info表字段,編寫屬性、getter/setter 方法; - DAO 層:
- 寫
InfoDao接口,定義增刪改查方法(addInfo、deleteInfo、updateInfo、queryInfo等); - 寫
InfoDaoImpl實現類,用 DBUtils 的QueryRunner(基於 c3p0 數據源)實現接口方法;
- Service 層:
- 寫
InfoService接口,封裝 DAO 方法; - 寫
InfoServiceImpl實現類,調用 DAO 層完成業務邏輯。
3. Controller 層(Servlet)
- LoginServlet:
- 接收登錄頁面的用户名 / 密碼參數;
- 調用 Service 層驗證(查詢 info 表中是否存在該用户);
- 驗證成功:用 Session 保存用户信息,跳轉
index.jsp;失敗:提示錯誤並返回登錄頁; - 可選:用 Cookie 保存用户名(實現 “記住我” 功能)。
- InfoListServlet:
- 檢查 Session 是否有登錄信息(無則跳登錄頁);
- 調用 Service 查詢 info 表所有數據,存入 request;
- 轉發到
index.jsp顯示列表。
- AddInfoServlet:接收 add.jsp 的表單數據,調用 Service 新增記錄,重定向到 InfoListServlet。
- DeleteInfoServlet:接收要刪除的 id 參數,調用 Service 刪除記錄,重定向到 InfoListServlet。
- EditInfoServlet:
- 接收 id 參數,查詢該記錄信息,存入 request 並轉發到
edit.jsp; - 接收 edit.jsp 的修改數據,調用 Service 更新記錄,重定向到 InfoListServlet。
- QueryInfoServlet:接收查詢條件參數,調用 Service 按條件查詢,轉發到
index.jsp顯示結果。
4. View 層(JSP 頁面)
(1)login.jsp:編寫登錄表單,提交到 LoginServlet;可讀取 Cookie 自動填充用户名。
(2)index.jsp:
- 顯示 info 表數據列表(用 JSTL/EL 表達式遍歷 request 中的數據);
- 增加 “新增” 按鈕(跳 add.jsp)、每條記錄的 “修改”“刪除” 按鈕(對應 Servlet);
- 增加查詢表單,提交到 QueryInfoServlet。
(3)add.jsp/edit.jsp:編寫表單,提交到對應 Servlet,實現數據錄入 / 回顯。
四、測試與優化
1、功能測
啓動 Tomcat,測試登錄、增刪改查是否正常(檢查數據庫數據變化、頁面顯示是否正確);
2、異常處
添加空值判斷、數據庫操作異常捕獲,給出友好提示;
3、Session 驗
確保未登錄時直接訪問 Servlet 會跳轉到登錄頁。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。