# notes_manager **Repository Path**: GProReat_admin/notes_manager ## Basic Information - **Project Name**: notes_manager - **Description**: 便利贴管理器 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-11 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Notes Manager - 便利贴管理器 一个基于 Java/Jakarta Servlet 和 HTML5 Canvas 的便利贴管理 Web 应用,部署在 Tomcat 10.1 上。 ![截图](snapshot/snapshot.png) ## 功能特性 - **便利贴管理** — 新建、编辑、拖拽、缩放、复制/粘贴便利贴 - **多页面** — 创建多个页签,独立管理便利贴组 - **格式工具栏** — 粗体、斜体、下划线、删除线、颜色选择 - **用户系统** — 注册、登录、游客浏览,数据按用户隔离 - **游客模式** — `index.html?user=用户名` 直接访问,每 8 秒自动刷新 - **实时天气特效** — 从 Open-Meteo 获取天气数据,Canvas 渲染雨/雪/晴 - **Canvas 动画** — 天气粒子、小猫宠物(带气泡文字) ## 技术栈 | 层 | 技术 | |---|---| | 前端 | HTML5 Canvas、CSS3、JavaScript (Fetch API) | | 后端 | Java 21、Jakarta Servlet API (Tomcat 10.1) | | 数据库 | MySQL 8.0+(utf8mb4) | | 构建 | 手动编译 + WAR 打包 | ## 项目结构 ``` notes_manager/ ├── src/main/ │ ├── java/com/notes/ │ │ ├── dao/DataStore.java — 数据库访问层(MySQL 连接、CRUD) │ │ ├── model/ │ │ │ ├── AppData.java — 应用数据模型(页面列表 + 当前索引) │ │ │ ├── Note.java — 便利贴模型 │ │ │ └── Page.java — 页面模型 │ │ └── servlet/ │ │ ├── LoginServlet.java — 登录/注册/游客 API(/auth/*) │ │ └── NoteServlet.java — 数据加载/保存 API(/api/*) │ └── webapp/ │ ├── index.html — Canvas 主页面 │ ├── login.html — 登录/注册/游客页面 │ └── WEB-INF/web.xml — Web 部署描述符 ├── sql/ │ └── init.sql — MySQL 数据库初始化脚本 ├── snapshot/ │ └── snapshot.png — 应用截图 ├── deploy/ │ └── notes_manager.war — 构建产物 ├── build.bat — 构建脚本 ├── README.md ├── LICENSE — Apache 2.0 └── .gitignore ``` ## 环境要求 - **JDK** 21+ - **Tomcat** 10.1.x - **MySQL** 8.0+(或兼容版本) ## 快速开始 ### 1. 初始化数据库 ```sql source sql/init.sql; ``` 或直接执行: ```sql CREATE DATABASE IF NOT EXISTS notes_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 默认连接参数(在 `DataStore.java` 中修改): - 地址:`localhost:3306` - 用户:`root` - 密码:`1234` - 连接字符串:`useUnicode=true&characterEncoding=UTF-8` ### 2. 构建 ```batch cd notes_manager build.bat ``` 编译 Java 源码 → 打包 WAR → 生成到 `deploy/notes_manager.war` ### 3. 部署 将 `deploy/notes_manager.war` 复制到 Tomcat 的 `webapps/` 目录下,命名为目标路径(例如 `notes.war` 对应 `http://localhost:8080/notes/`)。 ### 4. 访问 | 功能 | 地址 | |---|---| | 登录/注册 | `http://localhost:8080/{path}/login.html` | | 主页面 | `http://localhost:8080/{path}/index.html` | | 游客访问 | `http://localhost:8080/{path}/index.html?user=用户名` | ## API 说明 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/auth/login` | 注册/登录/游客(JSON: `{action, username, password}`) | | GET | `/api/load?user_id=xxx` | 加载用户数据 | | POST | `/api/save?user_id=xxx` | 保存用户数据 | ## 数据库表结构 ```sql users(id VARCHAR(64) PK, username VARCHAR(100) UNIQUE, password VARCHAR(255), created_at DATETIME) pages(id VARCHAR(64) PK, user_id VARCHAR(64) FK→users, name VARCHAR(255), sort_order INT) notes(id VARCHAR(64) PK, page_id VARCHAR(64) FK→pages, name, text TEXT, x,y,w,h DOUBLE, color_idx INT, bold/italic/underline/strike TINYINT, scale DOUBLE, created_at DATETIME) ``` 详细建表语句见 [`sql/init.sql`](sql/init.sql)。 ## 许可证 [Apache License 2.0](LICENSE)