一、項目結構搭建(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接口,定義增刪改查方法(addInfodeleteInfoupdateInfoqueryInfo等);
  • InfoDaoImpl實現類,用 DBUtils 的QueryRunner(基於 c3p0 數據源)實現接口方法;
  • Service 層
  • InfoService接口,封裝 DAO 方法;
  • InfoServiceImpl實現類,調用 DAO 層完成業務邏輯。

3. Controller 層(Servlet)

  • LoginServlet
  1. 接收登錄頁面的用户名 / 密碼參數;
  2. 調用 Service 層驗證(查詢 info 表中是否存在該用户);
  3. 驗證成功:用 Session 保存用户信息,跳轉index.jsp;失敗:提示錯誤並返回登錄頁;
  4. 可選:用 Cookie 保存用户名(實現 “記住我” 功能)。
  • InfoListServlet
  1. 檢查 Session 是否有登錄信息(無則跳登錄頁);
  2. 調用 Service 查詢 info 表所有數據,存入 request;
  3. 轉發到index.jsp顯示列表。
  • AddInfoServlet:接收 add.jsp 的表單數據,調用 Service 新增記錄,重定向到 InfoListServlet。
  • DeleteInfoServlet:接收要刪除的 id 參數,調用 Service 刪除記錄,重定向到 InfoListServlet。
  • EditInfoServlet
  1. 接收 id 參數,查詢該記錄信息,存入 request 並轉發到edit.jsp
  2. 接收 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 會跳轉到登錄頁。