jsp实现学生信息管理系统
时间: 2023-07-18 07:07:11 浏览: 305
学生信息管理系统可以通过 JSP 和 Servlet 技术来实现。下面是一个简单的 JSP 实现学生信息管理系统的示例:
1. 创建数据库
首先,我们需要创建一个名为 student 的数据库,并创建一个名为 student_info 的表。表中包含以下字段:
```
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(11) DEFAULT NULL,
gender varchar(255) DEFAULT NULL,
major varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
```
2. 创建 JSP 页面
在 Web 项目的 WebContent 目录下,创建一个名为 index.jsp 的文件。这个文件是系统的首页,包含两个链接:添加学生和查询学生。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息管理系统</title>
</head>
<body>
<h1>学生信息管理系统</h1>
<ul>
<li><a href="add_student.jsp">添加学生</a></li>
<li><a href="query_student.jsp">查询学生</a></li>
</ul>
</body>
</html>
```
3. 创建添加学生页面
在 WebContent 目录下,创建一个名为 add_student.jsp 的文件。这个文件包含一个表单,用户可以在表单中输入学生信息。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生</title>
</head>
<body>
<h1>添加学生</h1>
<form action="add_student_action.jsp" method="post">
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
性别:<input type="text" name="gender"><br>
专业:<input type="text" name="major"><br>
<input type="submit" value="添加">
</form>
</body>
</html>
```
4. 创建添加学生的 Servlet
在 src 目录下,创建一个名为 AddStudentServlet 的 Servlet。在 doPost 方法中,获取表单提交的学生信息,并将信息插入到数据库中。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/add_student_action.jsp")
public class AddStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String major = request.getParameter("major");
Connection conn = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
stmt = conn.prepareStatement("INSERT INTO student_info (name, age, gender, major) VALUES (?, ?, ?, ?)");
stmt.setString(1, name);
stmt.setInt(2, age);
stmt.setString(3, gender);
stmt.setString(4, major);
stmt.executeUpdate();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
response.sendRedirect("index.jsp");
}
}
```
5. 创建查询学生页面
在 WebContent 目录下,创建一个名为 query_student.jsp 的文件。这个文件包含一个表单,用户可以在表单中输入查询条件。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询学生</title>
</head>
<body>
<h1>查询学生</h1>
<form action="query_student_action.jsp" method="post">
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
性别:<input type="text" name="gender"><br>
专业:<input type="text" name="major"><br>
<input type="submit" value="查询">
</form>
</body>
</html>
```
6. 创建查询学生的 Servlet
在 src 目录下,创建一个名为 QueryStudentServlet 的 Servlet。在 doPost 方法中,获取表单提交的查询条件,并从数据库中查询符合条件的学生信息,并将信息展示在一个表格中。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/query_student_action.jsp")
public class QueryStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String major = request.getParameter("major");
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
StringBuilder sql = new StringBuilder("SELECT * FROM student_info WHERE 1=1");
if (!name.isEmpty()) {
sql.append(" AND name=?");
}
if (age > 0) {
sql.append(" AND age=?");
}
if (!gender.isEmpty()) {
sql.append(" AND gender=?");
}
if (!major.isEmpty()) {
sql.append(" AND major=?");
}
stmt = conn.prepareStatement(sql.toString());
int index = 1;
if (!name.isEmpty()) {
stmt.setString(index++, name);
}
if (age > 0) {
stmt.setInt(index++, age);
}
if (!gender.isEmpty()) {
stmt.setString(index++, gender);
}
if (!major.isEmpty()) {
stmt.setString(index++, major);
}
rs = stmt.executeQuery();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<table border='1'><tr><th>姓名</th><th>年龄</th><th>性别</th><th>专业</th></tr>");
while (rs.next()) {
response.getWriter().println("<tr><td>" + rs.getString("name") + "</td><td>" + rs.getInt("age") + "</td><td>" + rs.getString("gender") + "</td><td>" + rs.getString("major") + "</td></tr>");
}
response.getWriter().println("</table>");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
以上就是一个简单的 JSP 实现学生信息管理系统的示例。当然,这只是一个基础的示例,实际的项目中可能需要更多的功能和细节处理。
阅读全文