java代码JSP机试测试:大学生管理系统1 语言和环境11 实现语言JSP+Servlet12 环境要求JDK 8、MySQL 55以上版本。2 功能要求21 功能概述使用 JSP+Servlet 来实现一个大学生系统的部分功能分页查询学生信息功能和新增学生功能以 MySQL 作为后台数据库。要实现的主要功能包括: 分页查看所有的学生信息学号、姓名、性别、所属专业、手机号码、Email 根据
以下是一个示例的JSP+Servlet代码实现大学生管理系统的部分功能:
- 学生类(Student.java):
public class Student {
private int id;
private String name;
private String studentId;
private String gender;
private String major;
private String phoneNumber;
private String email;
// 构造方法和getter/setter方法省略
}
- 数据库操作类(DBUtil.java):
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/student_course?useUnicode=true&characterEncoding=utf8mb4";
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
public static void closeConnection(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- 查询学生信息的Servlet(QueryStudentServlet.java):
@WebServlet("/queryStudent")
public class QueryStudentServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int currentPage = 1;
int pageSize = 10;
if (request.getParameter("currentPage") != null) {
currentPage = Integer.parseInt(request.getParameter("currentPage"));
}
if (request.getParameter("pageSize") != null) {
pageSize = Integer.parseInt(request.getParameter("pageSize"));
}
String name = request.getParameter("name");
try {
Connection conn = DBUtil.getConnection();
String sql = "SELECT * FROM t_student WHERE 1=1";
if (name != null && !name.trim().isEmpty()) {
sql += " AND name LIKE '%" + name + "%'";
}
sql += " ORDER BY studentId ASC LIMIT ?, ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, (currentPage - 1) * pageSize);
stmt.setInt(2, pageSize);
ResultSet rs = stmt.executeQuery();
List<Student> studentList = new ArrayList<>();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setStudentId(rs.getString("studentId"));
student.setGender(rs.getString("gender"));
student.setMajor(rs.getString("major"));
student.setPhoneNumber(rs.getString("phoneNumber"));
student.setEmail(rs.getString("email"));
studentList.add(student);
}
request.setAttribute("studentList", studentList);
sql = "SELECT COUNT(*) FROM t_student WHERE 1=1";
if (name != null && !name.trim().isEmpty()) {
sql += " AND name LIKE '%" + name + "%'";
}
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
int totalRecords = 0;
if (rs.next()) {
totalRecords = rs.getInt(1);
}
int totalPages = (int) Math.ceil((double) totalRecords / pageSize);
request.setAttribute("currentPage", currentPage);
request.setAttribute("pageSize", pageSize);
request.setAttribute("totalPages", totalPages);
request.setAttribute("name", name);
DBUtil.closeConnection(conn, stmt, rs);
request.getRequestDispatcher("student.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- 新增学生信息的Servlet(AddStudentServlet.java):
@WebServlet("/addStudent")
public class AddStudentServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String studentId = request.getParameter("studentId");
String gender = request.getParameter("gender");
String major = request.getParameter("major");
String phoneNumber = request.getParameter("phoneNumber");
String email = request.getParameter("email");
try {
Connection conn = DBUtil.getConnection();
String sql = "SELECT COUNT(*) FROM t_student WHERE studentId = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, studentId);
ResultSet rs = stmt.executeQuery();
if (rs.next() && rs.getInt(1) > 0) {
request.setAttribute("duplicateError", "学号已存在");
request.getRequestDispatcher("add_student.jsp").forward(request, response);
} else {
sql = "INSERT INTO t_student (name, studentId, gender, major, phoneNumber, email) VALUES (?, ?, ?, ?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, studentId);
stmt.setString(3, gender);
stmt.setString(4, major);
stmt.setString(5, phoneNumber);
stmt.setString(6, email);
stmt.executeUpdate();
DBUtil.closeConnection(conn, stmt, rs);
response.sendRedirect("queryStudent");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- JSP页面(student.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息</title>
<style>
table {
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 5px;
}
</style>
</head>
<body>
<h1>学生信息</h1>
<form action="queryStudent" method="get">
<input type="text" name="name" value="${name}" placeholder="请输入学生姓名">
<input type="submit" value="查询">
</form>
<table>
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>所属专业</th>
<th>手机号码</th>
<th>Email</th>
</tr>
<c:forEach var="student" items="${studentList}">
<tr>
<td>${student.studentId}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.major}</td>
<td>${student.phoneNumber}</td>
<td>${student.email}</td>
</tr>
</c:forEach>
</table>
<p>共 ${totalPages} 页,当前第 ${currentPage} 页</p>
<p>
<c:if test="${currentPage > 1}">
<a href="queryStudent?currentPage=${currentPage-1}&pageSize=${pageSize}&name=${name}">上一页</a>
</c:if>
<c:if test="${currentPage < totalPages}">
<a href="queryStudent?currentPage=${currentPage+1}&pageSize=${pageSize}&name=${name}">下一页</a>
</c:if>
</p>
<a href="add_student.jsp">新增学生</a>
</body>
</html>
- 新增学生页面(add_student.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增学生</title>
</head>
<body>
<h1>新增学生</h1>
<form action="addStudent" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="studentId">学号:</label>
<input type="text" id="studentId" name="studentId" required><br>
<label for="gender">性别:</label>
<input type="radio" id="gender" name="gender" value="男" required>男
<input type="radio" id="gender" name="gender" value="女" required>女<br>
<label for="major">所属专业:</label>
<select id="major" name="major" required>
<option value="计算机科学与技术">计算机科学与技术</option>
<option value="软件工程">软件工程</option>
<option value="信息安全">信息安全</option>
</select><br>
<label for="phoneNumber">手机号码:</label>
<input type="text" id="phoneNumber" name="phoneNumber" required><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required><br>
<input type="submit" value="提交">
<input type="button" value="返回" onclick="window.history.back()">
</form>
<p style="color: red">${duplicateError}</p>
</body>
</html>
以上代码实现了分页查询学生信息和新增学生功能。在数据库中创建名为student_course的数据库,并按规范设计学生表和专业表
原文地址: https://www.cveoy.top/t/topic/hWQ5 著作权归作者所有。请勿转载和采集!