user_table, photo_table| 模組 | Servlet | 主要職責 |
|---|---|---|
| 用戶註冊 | ProRegistServlet | 驗證用戶名唯一、持久化 User、建立 Session |
| 用戶登入 | ProLoginServlet | 帳密比對、Session 綁定、觸發相片列表載入 |
| 用戶名檢查 | ValidateNameServlet | AJAX 即時驗證用戶名可用性 |
| 相片列表 | GetPhotoServlet | 分頁查詢當前用戶相片,回傳 JS 動態渲染 |
| 相片顯示 | ShowImgServlet | 設定 Session 當前圖片,前端更新 img src |
| 翻頁控制 | TurnPageServlet | Session 記憶頁碼,邊界檢查後重新查詢 |
| 上傳相片 | ProUploadServlet | Commons FileUpload 處理 multipart,類型驗證、儲存、持久化 Photo |
| 頁面初始化 | PageLoadServlet | 檢查 Session 登入狀態,自動顯示面板與相片列表 |
com/b510/album/model/User.hbm.xml com/b510/album/model/Photo.hbm.xml
org.hibernate.dialect.MySQLInnoDBDialect
true
$.post("proLogin", $('#user,#pass').serializeArray(), null, "script"); // 登入
$.getScript("getPhoto"); // 載入相片列表
setTimeout("onLoadHandler()", 1000); // 輪詢更新
$("#uploadDiv").dialog({modal:true, width:428, height:220}); // 上傳彈窗
CREATE DATABASE db_ajax;
USE db_ajax;
CREATE TABLE user_table (user_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) UNIQUE, pass VARCHAR(255));
CREATE TABLE photo_table (photo_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), fileName VARCHAR(255), owner_id INT, FOREIGN KEY(owner_id) REFERENCES user_table(user_id));

附件:ajax_jQuery_album_jb51net.rar(含完整源碼、配置、SQL、JAR)