# 实验5 测评模拟 **Repository Path**: javaweb-dev-tech/lab5 ## Basic Information - **Project Name**: 实验5 测评模拟 - **Description**: 第5次实验,根据所学知识完成servlet+JDBC框架下的系统接口开发和登录鉴权。 使用MySqlHelper及fastjson的JSON - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-01 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实验5 测评模拟 ## 项目简介 这是一个基于 Java Servlet 的轻量级 Web 应用程序实验项目,主要用于教学演示 Web 开发流程。项目实现了基本的 HTTP 请求处理与响应功能,采用传统分层架构设计,无 Spring 等高级框架依赖,贴近底层 Servlet 规范。 ## 技术栈 - **开发语言**: Java 17 - **Web 框架**: Jakarta Servlet API 6.1.0 - **数据库**: MySQL 8.0+ - **JSON 处理**: FastJSON 1.2.83 - **测试框架**: JUnit Jupiter 5.13.2 - **构建工具**: Maven - **打包方式**: WAR (Web Application Archive) ## 项目结构 ``` lab5/ ├── src/main/java/edu/wtbu/lab5/lab5/ │ ├── dao/ # 数据访问层 │ │ └── UserDao.java │ ├── helper/ # 数据库帮助类 │ │ └── MySqlHelper.java │ ├── pojo/ # 实体类 │ │ └── Result.java │ ├── servlet/ # Servlet 控制器 │ │ └── UserLoginServlet.java │ └── HelloServlet.java ├── src/main/webapp/ │ ├── WEB-INF/ │ │ └── web.xml │ └── index.jsp # 首页 ├── sql/ │ └── labdb.sql # 数据库脚本 └── pom.xml # Maven 配置文件 ``` ## 环境要求 - **JDK**: 17 或更高版本 - **Maven**: 3.6+ - **MySQL**: 8.0+ - **Servlet 容器**: Tomcat 10+ 或其他支持 Jakarta EE 9+ 的容器 - **操作系统**: Windows/Linux/macOS ## 快速开始 ### 1. 克隆项目 ```bash git clone cd lab5 ``` ### 2. 配置数据库 1. 创建 MySQL 数据库: ```sql CREATE DATABASE examdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 导入数据库脚本: ```bash mysql -u root -p examdb < sql/labdb.sql ``` ### 3. 配置数据库连接 修改 `MySqlHelper.java` 中的数据库连接参数(如果尚未配置): - 主机地址 - 端口号 - 数据库名 - 用户名和密码 ### 4. 构建项目 ```bash mvn clean package ``` 构建成功后会在 `target/` 目录下生成 `lab5-1.0-SNAPSHOT.war` 文件。 ### 5. 部署运行 将生成的 WAR 文件部署到 Tomcat 或其他 Servlet 容器中: ```bash # 复制到 Tomcat 的 webapps 目录 cp target/lab5-1.0-SNAPSHOT.war $CATALINA_HOME/webapps/ # 启动 Tomcat $CATALINA_HOME/bin/startup.sh # Linux/macOS %CATALINA_HOME%\bin\startup.bat # Windows ``` ### 6. 访问应用 打开浏览器访问: - 首页: http://localhost:8080/lab5-1.0-SNAPSHOT/ - Hello Servlet: http://localhost:8080/lab5-1.0-SNAPSHOT/hello-servlet - 用户登录接口: http://localhost:8080/lab5-1.0-SNAPSHOT/user/login ## 功能说明 ### 已实现功能 1. **基础 Servlet 示例** (`HelloServlet`) - 提供基本的 HTTP GET 请求处理 - 返回 "Hello World" 页面 2. **用户登录接口** (`UserLoginServlet`) - URL: `/user/login` - 支持 GET 和 POST 请求 - 返回 JSON 格式结果 - ⚠️ 注意:当前为示例实现,实际登录逻辑待完善(见代码中的 TODO) 3. **数据库操作基础** - `UserDao`: 用户数据访问对象(待完善) - `MySqlHelper`: MySQL 数据库连接辅助类 ### 数据库表结构 项目包含以下核心数据表: - **user**: 用户信息表 - uid, username, password - **department**: 部门信息表 - deptId, deptName, labId - **laboratory**: 实验室信息表 - labId, labName, location - **equipment**: 设备信息表 - eqId, eqName, deptId, status ## 开发指南 ### 运行测试 ```bash mvn test ``` ### 代码规范 - 使用 UTF-8 编码 - 遵循 Java 命名规范 - Servlet 使用注解方式配置 (`@WebServlet`) - 采用 MVC 分层架构 ### 添加新功能 1. 在 `servlet` 包中创建新的 Servlet 类 2. 使用 `@WebServlet` 注解配置访问路径 3. 在 `dao` 包中添加数据访问方法 4. 在 `pojo` 包中定义实体类 ## 常见问题 ### 1. 编译错误:找不到 jakarta.servlet 包 确保你的 IDE 已正确配置 Maven 依赖,或者运行: ```bash mvn clean install ``` ### 2. 数据库连接失败 检查: - MySQL 服务是否启动 - 数据库连接参数是否正确 - 数据库用户权限是否足够 ### 3. 中文乱码问题 确保: - 数据库使用 utf8mb4 字符集 - JSP 页面设置 `pageEncoding="UTF-8"` - Servlet 响应设置正确的 Content-Type ## 后续改进方向 - [ ] 完善用户登录验证逻辑 - [ ] 实现完整的 CRUD 操作 - [ ] 添加会话管理(Session) - [ ] 实现前端页面交互 - [ ] 添加输入验证和安全防护 - [ ] 编写单元测试用例 ## 许可证 本项目仅用于教学和学习目的。 ## 联系方式 如有问题,请联系课程教师或助教。