# keshe **Repository Path**: bactdt/keshi ## Basic Information - **Project Name**: keshe - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-28 - **Last Updated**: 2025-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大学竞赛管理系统 ## 系统简介 这是一个基于Java Servlet的大学竞赛管理系统,支持学生报名、作品提交、评委评分和管理员管理等功能。 ## 系统账户 系统预置了以下测试账户: | 角色 | 用户名 | 密码 | 功能 | |------|--------|------|------| | 管理员 | admin | admin | 发布竞赛、管理评委 | | 评委 | judge1 | 123 | 评审作品、打分 | | 学生 | stu1 | 123 | 报名竞赛、提交作品 | | 学生 | stu2 | 123 | 报名竞赛、提交作品 | ## 功能说明 ### 学生功能 1. **查看竞赛** - 查看所有可报名的竞赛 2. **创建队伍** - 为竞赛创建参赛队伍 3. **提交作品** - 提交竞赛作品 4. **申诉** - 对评分结果进行申诉 ### 评委功能 1. **查看作品** - 查看所有待评审的作品 2. **评分** - 对作品进行评分(0-100分) 3. **添加评语** - 对作品添加评审意见 ### 管理员功能 1. **系统概览** - 查看竞赛、用户、队伍统计 2. **竞赛管理** - 发布新竞赛、删除竞赛 3. **评委管理** - 添加新评委账户 ## 项目结构 ``` keshe/ ├── src/ # Java源代码 │ └── com/keshe/ │ ├── db/ # 数据库层 │ │ └── MockDatabase.java │ ├── filter/ # 过滤器 │ │ └── AuthFilter.java │ ├── model/ # 数据模型 │ │ ├── User.java │ │ ├── Competition.java │ │ ├── Team.java │ │ ├── Submission.java │ │ └── Appeal.java │ ├── servlet/ # Servlet控制器 │ │ ├── AuthServlet.java │ │ ├── StudentServlet.java │ │ ├── JudgeServlet.java │ │ └── ManagerServlet.java │ └── util/ # 工具类 │ └── SecurityUtil.java ├── web/ # Web资源 │ ├── WEB-INF/ │ │ ├── web.xml # Web配置 │ │ ├── classes/ # 编译后的class文件 │ │ └── lib/ # 依赖库 │ ├── login.jsp # 登录页面 │ ├── register.jsp # 注册页面 │ ├── dashboard_student.jsp # 学生控制台 │ ├── dashboard_judge.jsp # 评委控制台 │ ├── dashboard_manager.jsp # 管理员控制台 │ └── error.jsp # 错误页面 ├── .project # Eclipse项目配置 ├── .classpath # Eclipse类路径 └── build.sh # 编译脚本 ``` ## Eclipse运行指南 ### 1. 导入项目 1. 打开Eclipse 2. `File` → `Import` → `General` → `Existing Projects into Workspace` 3. 选择项目目录 `/Users/txg/project/java/keshe` 4. 勾选项目后点击 `Finish` ### 2. 配置Tomcat服务器 1. `Window` → `Preferences` → `Server` → `Runtime Environments` 2. 点击 `Add...` 3. 选择 `Apache Tomcat v9.0`(或其他版本) 4. 指定Tomcat安装目录 5. 点击 `Finish` ### 3. 添加服务器运行时 1. 右键项目 → `Properties` → `Targeted Runtimes` 2. 勾选已配置的Tomcat 3. 点击 `Apply and Close` ### 4. 部署并运行 1. 右键项目 → `Run As` → `Run on Server` 2. 选择已配置的Tomcat服务器 3. 点击 `Finish` 4. 等待服务器启动 ### 5. 访问系统 浏览器打开:`http://localhost:8080/keshe/` ## 操作流程 ### 管理员操作流程 1. 使用 `admin / admin` 登录 2. 在"管理中心"查看系统概览 3. 发布新竞赛:填写竞赛名称、描述、截止日期 4. 添加评委:填写用户名、密码、姓名 ### 学生操作流程 1. 使用 `stu1 / 123` 登录(或注册新账号) 2. 查看"可报名竞赛"列表 3. 选择竞赛,填写队伍名称,点击"创建队伍" 4. 在"我的队伍与作品"中提交作品 5. 评分后可进行申诉 ### 评委操作流程 1. 使用 `judge1 / 123` 登录 2. 查看"待评审作品"列表 3. 输入分数(0-100)和评语 4. 点击"评分"提交 ## 安全特性 本系统实现了以下安全措施: - ✅ **密码哈希** - 使用SHA-256+盐值存储密码 - ✅ **CSRF防护** - 所有表单包含CSRF Token - ✅ **XSS防护** - 所有输出进行HTML转义 - ✅ **权限控制** - 过滤器统一验证登录和角色 - ✅ **会话安全** - 登录时重建会话,防止会话固定 - ✅ **输入校验** - 后端统一校验输入长度和格式 - ✅ **HttpOnly Cookie** - 防止JS读取会话Cookie ## 技术栈 - **后端**: Java Servlet 3.1 - **前端**: JSP, HTML, CSS - **服务器**: Apache Tomcat 9.0 - **数据存储**: 内存模拟数据库 ## 常见问题 ### Q: 登录后跳转404 **A**: 请确保已正确编译项目并部署到Tomcat。在Eclipse中右键项目 → `Project` → `Clean`,然后重启服务器。 ### Q: 中文显示乱码 **A**: 确保所有文件使用UTF-8编码。在Eclipse中:`Window` → `Preferences` → `General` → `Workspace` → `Text file encoding` 设置为 `UTF-8`。 ### Q: 找不到servlet-api.jar **A**: 确保项目已配置Tomcat运行时环境。