项目概述
技术栈选择
后端技术
- Java Servlet + JSP:采用传统的MVC架构
- MySQL 8.0:关系型数据库存储
- JDBC:数据访问层
- Log4j:日志管理
- JSTL:JSP标准标签库
前端技术
- HTML5 + CSS3:页面结构和样式
- Bootstrap + Tailwind CSS:响应式UI框架
- JavaScript + jQuery:前端交互逻辑
开发环境
- IDE:IntelliJ IDEA / Eclipse
- 服务器:Apache Tomcat
- 构建工具:Maven(隐含)
核心模块
- 用户认证模块:登录、注册、权限验证
- 用户管理模块:管理员对用户的CRUD操作
- 成绩管理模块:成绩的增删改查和统计
- 权限控制模块:基于角色的访问控制
数据库设计
核心表结构
CREATE TABLE login (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
level INT NOT NULL DEFAULT 0 COMMENT '0-学生, 1-管理员'
);
成绩表 (grades)
CREATE TABLE grades (
id INT AUTO_INCREMENT PRIMARY KEY,
student_id VARCHAR(10) NOT NULL COMMENT '学号',
student_name VARCHAR(50) NOT NULL,
course_name VARCHAR(100) NOT NULL,
score DECIMAL(5,2) NOT NULL,
semester VARCHAR(50) NOT NULL
);
数据关系
- 用户表通过level字段区分管理员(1)和普通用户(0)
- 成绩表通过student_name与用户表关联
- 支持多学期、多课程的成绩记录
核心功能实现
1. 用户认证系统
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
int level = Integer.parseInt(request.getParameter("level"));
LoginService service = new LoginServiceIMPL();
Login currentUser = service.getUserByLogin(new Login(username, password, level));
if(currentUser != null) {
HttpSession session = request.getSession();
session.setAttribute("currentUser", currentUser);
if(level == 1) { // 管理员
request.getRequestDispatcher("index").forward(request, response);
} else { // 学生
request.getRequestDispatcher("guest").forward(request, response);
}
} else {
response.sendRedirect("login.jsp");
}
}
}
2. 权限控制机制
- 管理员权限:用户管理、成绩管理、系统维护
- 学生权限:查看个人成绩、修改个人信息
<%
Login currentUser = (Login)session.getAttribute("currentUser");
if(currentUser == null || currentUser.getLevel() != 1) {
response.sendRedirect("login.jsp");
return;
}
%>
3. 成绩管理功能
- 添加成绩:支持单条和批量录入
- 编辑成绩:实时更新学生成绩
- 删除成绩:单条删除和批量删除
- 查询成绩:按学号、姓名、课程等条件搜索
public class Grade {
private int id;
private String studentId;
private String studentName;
private String courseName;
private double score;
private String semester;
// 构造方法、getter/setter方法...
}
前端界面设计
响应式设计
- 移动端适配:支持手机、平板等设备
- 现代化UI:渐变色彩、圆角设计、阴影效果
- 用户体验:流畅的动画过渡、友好的交互反馈
关键页面
- 登录页面:简洁的登录表单,支持角色选择
- 管理员后台:功能完整的用户和成绩管理界面
- 学生端:专注于成绩查看的简洁界面
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
- 最新
- 最热
查看全部