首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Servlet 實戰:從零構建 MV 模式簡易管理系統

     編輯:Java 綜合教學

Servlet 實戰:從零構建 MV 模式簡易管理系統

本文示範如何純手工打造一個基於 Model-View (MV) 架構 的 JavaWeb 管理系統,不依賴 Spring 等框架,直接使用 Servlet + JSP(或 Servlet 輸出 HTML)實現登入驗證、Session/Cookie 管理、用戶增刪改查與分頁等核心功能,適合理解 JavaWeb 底層運作機制。

系統架構與目錄結構

採用 MV 模式分離關注點:

  • Model:UserBean(實體)、UserBeanCl(業務邏輯/DAO)、ConnDB(連接池)
  • View:各 Servlet 直接輸出 HTML 或轉發 JSP
  • Controller:各 XxxServlet / XxxCl 處理請求分發

系統架構圖

核心模組代碼解析

1. 登入頁面 Login.java

輸出登入表單,支援「記住我」Cookie 功能:

public class Login extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
        res.setContentType("text/html;charset=gbk");
        PrintWriter pw = res.getWriter();
        String info = req.getParameter("info");
        pw.println("<html><body bgcolor=#CDD4FF><center>");
        if (info != null) pw.println("<h4>請正確登錄!</h4>");
        pw.println("<form action=logincl method=post>用戶名:<input name=username><br>");
        pw.println("密碼:<input type=password name=password><br>");
        pw.println("<input type=checkbox name=keep value=2>保存Cookie<br>");
        pw.println("<input type=submit name=login value=login></form></center></body></html>");
    }
    public void doPost(HttpServletRequest req, HttpServletResponse res) { doGet(req, res); }
}

2. 登入驗證 LoginCl.java —— 核心控制器

  • init():啟動時讀取訪問計數文件存入 ServletContext
  • destroy():關寫回計數
  • 驗證成功寫入 Cookie(14天) 與 Session,重導向 Main
public class Logincl extends HttpServlet {
    public void init() {
        // 讀取 e://myDocument.txt 計數器 -> ServletContext
    }
    public void destroy() {
        // 寫回計數器
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res) {
        String u = req.getParameter("username"), p = req.getParameter("password");
        if (new UserBeanCl().checkUser(u, p)) {
            // 寫 Cookie、Session、計數器+1
            res.sendRedirect("Main");
        } else res.sendRedirect("login?info=err");
    }
}

3. 主選單 Main.java、用戶管理 Welcome.java

  • Main:導航入口
  • Welcome:核心管理頁,含分頁查詢、修改/刪除連結、Session/ Cookie 自動復活邏輯、訪問統計、IP 顯示

4. CRUD 操作鏈

Servlet職責
DelUserCl刪除用戶 → 重導 Ok/Err
Update顯示修改表單(預填數據)
UpdateCl執行更新 → 重導 Ok/Err
Ok/Err統一結果提示頁

5. 資料層 ConnDB / UserBeanCl / UserBean

  • ConnDB:採用 JNDI 數據源(連接池),而非硬編碼 DriverManager
  • UserBean:標準 JavaBean 對應 users 表
  • UserBeanCl:封裝 checkUser、getResultByPage、delUser、updateUser 等業務方法

部署與驗證要點

  1. 配置 web.xml 映射所有 Servlet 路徑
  2. Tomcat context.xml 定義 JNDI 數據源 java:comp/env/mydb
  3. 建立資料表 users(id, name, passwd, email, grade)
  4. 啟動測試:登入 → 管理用戶 → 分頁/修改/刪除 → 登出

架構優缺點總結

優點:零框架依賴,透明展示 Servlet 生命週期、Session 機制、MVC 分層本質。
缺點:HTML 硬編碼維護困難、無統一異常處理、SQL 注入風險(建議改用 PreparedStatement)、重導向傳參不安全。
進階建議:引入 JSP/EL/JSTL 分離視圖、Filter 統一編碼/登入攔截、DAO 層抽象、連接池優化、前端模板引擎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved