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

JBuilder 2005 Servlet 專題:重構 JSP 專案,導入自動快取、系統日誌、檔案下載

     編輯:Java 相關知識

原專案純 JSP 實現登入模組,存在三大痛點:無統一登入驗證、登入頁每次查資料庫、缺乏系統級日誌與下載功能。本文規劃完整改造藍圖,引入 Servlet 解決上述問題。

原專案三大問題

  1. 無統一驗證:每個 JSP 都要貼判斷代碼,漏網之魚風險高,違反 DRY 原則。
  2. 重複查資料庫:登入頁下拉選單每次刷新都查 T_USER,效能差。
  3. 缺系統級功能:無啟動/關閉日誌、無檔案下載機制。

改造方案:四大功能點

1. Servlet Filter 統一登入驗證

單一 LoginCheckFilter 攔截所有請求,Session 檢查 ses_userBean,未登入導向 login.jsp。排除登入/處理頁。

2. 自動啟動 Servlet 預載用戶快取

UserCacheServlet 配合 <load-on-startup>2</load-on-startup>,容器啟動時執行 UserList.fillUser() 將用戶 ID/名稱載入靜態 Map。登入頁改讀快取,手動呼叫 Servlet 可刷新。

3. Servlet Listener 記錄系統啟動/關閉日誌

實作 ServletContextListener,contextInitialized() 寫入啟動時間,contextDestroyed() 寫入關閉時間,輸出 Excel 格式日誌檔。

4. 下載 Servlet 提供日誌檔下載

ExcelFileServlet 設定 Content-Disposition: attachment,依年月參數讀取日誌目錄輸出二進位流,瀏覽器彈出存檔對話框。

事前準備

  • 新建 bookStore 專案 + webModule Web 模組
  • 複製舊專案原始碼覆蓋對應目錄
  • 維護類別庫:Oracle JDBC JAR、JSTL 時間標籤庫 JAR

架構演進對比

層面原專案 (純 JSP)改造後 (Servlet + JSP)
登入驗證各頁面手寫判斷Filter 統一攔截
用戶下拉選單每次查 DB啟動快取 + 手動刷新
系統日誌無Listener 記錄 + Servlet 下載
程式碼結構業務與呈現混雜關注點分離

後續文章將逐一實作各功能模組。

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