JSP学生信息管理系统设计

JSP学生信息管理系统设计攻略

学生信息管理系统可以帮助学校和教师更好地管理学生信息,提高工作效率。JSP作为JavaWeb的一个重要组成部分,可以方便快捷地搭建一个学生信息管理系统。下面是一个完整的JSP学生信息管理系统设计攻略,包含以下步骤:

1.需求分析

在开始设计之前,需要了解业务需求,也就是学生信息管理系统需要实现哪些功能,这是设计的关键。在相关人员的讨论下,我们列出如下的基本功能需求:

  • 学生信息录入和存储
  • 学生成绩查询和统计
  • 学生信息修改和删除
  • 学生成绩数据报表导出和打印

2.数据库设计

为了存储学生信息和成绩数据,我们需要一个数据库。这里我们使用MySQL数据库,并创建一个名为student的数据库,其中包含两张表,分别是student和score表。两张表都包含学生的姓名和学号属性,而score表还包含课程名称和成绩属性。

示例代码如下:

CREATE DATABASE student;
USE student;

CREATE TABLE student (
  id INT(11) NOT NULL AUTO_INCREMENT, 
  name VARCHAR(20) NOT NULL, 
  number VARCHAR(20) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE score (
  id INT(11) NOT NULL AUTO_INCREMENT, 
  name VARCHAR(20) NOT NULL, 
  number VARCHAR(20) NOT NULL,
  course VARCHAR(20) NOT NULL,
  score INT(11),
  PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3.JSP页面设计

在了解了需求和数据库设计之后,我们需要设计JSP页面,方便用户进行学生信息的操作和数据查询。我们设计了三个页面:首页、学生信息管理页面和学生成绩管理页面,每个页面都有相应的功能。

3.1 首页

首页包含站点 Logo、导航菜单,方便用户进行页面切换。

示例代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>学生信息管理系统</title>
</head>
<body>
<header>
  <img src="logo.png" alt="学生信息管理系统" width="150" height="100">
  <nav>
    <a href="student.jsp">学生信息管理</a>
    <a href="score.jsp">学生成绩管理</a>
  </nav>
</header>
<main>
  <h1>欢迎使用学生信息管理系统</h1>
  <p>请选择相应的功能进行操作</p>
</main>
<footer>&copy; 2021 学生信息管理系统</footer>
</body>
</html>

3.2 学生信息管理页面

学生信息管理页面包括学生信息的录入、查询、修改和删除功能。通过JSP页面和数据库交互,用户可以进行这些操作。

示例代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
  <title>学生信息管理</title>
</head>
<body>
<header>
  <img src="logo.png" alt="学生信息管理系统" width="150" height="100">
  <nav>
    <a href="student.jsp">学生信息管理</a>
    <a href="score.jsp">学生成绩管理</a>
  </nav>
</header>
<main>
  <h1>学生信息管理</h1>
  <table>
    <thead>
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody>
      <% 
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM student");
        while(rs.next()){
          String number = rs.getString("number");
          String name = rs.getString("name");
      %>
      <tr>
        <td><%= number %></td>
        <td><%= name %></td>
        <td><a href="edit.jsp?number=<%= number %>">修改</a> <a href="delete.jsp?number=<%= number %>">删除</a></td>
      </tr>
      <% } %>
    </tbody>
  </table>
  <h2>添加学生</h2>
  <form method="POST" action="add.jsp">
    <label for="number">学号:</label>
    <input type="text" name="number" required><br>
    <label for="name">姓名:</label>
    <input type="text" name="name" required><br>
    <input type="submit" value="添加">
  </form>
</main>
<footer>&copy; 2021 学生信息管理系统</footer>
</body>
</html>

3.3 学生成绩管理页面

学生成绩管理页面包括成绩的录入、查询和统计功能。用户可以通过填写相应的表单和选择查询条件快速地查询成绩信息,并且计算出学生成绩的平均分。

示例代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
  <title>学生成绩管理</title>
</head>
<body>
<header>
  <img src="logo.png" alt="学生信息管理系统" width="150" height="100">
  <nav>
    <a href="student.jsp">学生信息管理</a>
    <a href="score.jsp">学生成绩管理</a>
  </nav>
</header>
<main>
  <h1>学生成绩管理</h1>
  <h2>添加成绩</h2>
  <form method="POST" action="addscore.jsp">
    <label for="number">学号:</label>
    <input type="text" name="number" required><br>
    <label for="name">姓名:</label>
    <input type="text" name="name" required><br>
    <label for="course">课程:</label>
    <input type="text" name="course" required><br>
    <label for="score">成绩:</label>
    <input type="text" name="score" required><br>
    <input type="submit" value="添加">
  </form>
  <h2>查询成绩</h2>
  <form method="POST" action="">
    <label for="number">学号:</label>
    <input type="text" name="number"><br>
    <label for="name">姓名:</label>
    <input type="text" name="name"><br>
    <input type="submit" value="查询">
  </form>
  <table>
    <thead>
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>课程</th>
        <th>成绩</th>
      </tr>
    </thead>
    <tbody>
      <% 
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
        Statement stmt = conn.createStatement();
        String number = request.getParameter("number");
        String name = request.getParameter("name");
        String sql = "SELECT * FROM score";
        if(number != null && !number.equals("")){
          sql += " WHERE number='" + number + "'";
        }
        if(name != null && !name.equals("")){
          sql += " WHERE name='" + name + "'";
        }
        ResultSet rs = stmt.executeQuery(sql);
        int count = 0;
        int totalScore = 0;
        while(rs.next()){
          String num = rs.getString("number");
          String n = rs.getString("name");
          String course = rs.getString("course");
          int score = rs.getInt("score");
          count++;
          totalScore += score;
      %>
      <tr>
        <td><%= num %></td>
        <td><%= n %></td>
        <td><%= course %></td>
        <td><%= score %></td>
      </tr>
      <% } %>
      <tr>
        <td colspan="3">平均分</td>
        <td><%= count > 0 ? totalScore/count : 0 %></td>
      </tr>
    </tbody>
  </table>
</main>
<footer>&copy; 2021 学生信息管理系统</footer>
</body>
</html>

4.JSP和数据库交互

在设计完JSP页面之后,我们需要将页面和数据库进行交互,完成数据的增删改查等操作。这里我们使用JDBC进行连接和数据处理。在JSP页面中使用Java代码,在MySQL数据库中进行读写操作。

示例代码如下:

4.1 添加学生信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%
  String number = request.getParameter("number");
  String name = request.getParameter("name");
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
  PreparedStatement pstmt = conn.prepareStatement("INSERT INTO student (number, name) VALUES (?, ?)");
  pstmt.setString(1, number);
  pstmt.setString(2, name);
  pstmt.executeUpdate();
  pstmt.close();
  conn.close();
  response.sendRedirect("student.jsp");
%>

4.2 修改学生信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%
  String number = request.getParameter("number");
  String name = request.getParameter("name");
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
  PreparedStatement pstmt = conn.prepareStatement("UPDATE student SET name=? WHERE number=?");
  pstmt.setString(1, name);
  pstmt.setString(2, number);
  pstmt.executeUpdate();
  pstmt.close();
  conn.close();
  response.sendRedirect("student.jsp");
%>

4.3 删除学生信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%
  String number = request.getParameter("number");
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
  PreparedStatement pstmt = conn.prepareStatement("DELETE FROM student WHERE number=?");
  pstmt.setString(1, number);
  pstmt.executeUpdate();
  pstmt.close();
  conn.close();
  response.sendRedirect("student.jsp");
%>

4.4 添加成绩信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%
  String number = request.getParameter("number");
  String name = request.getParameter("name");
  String course = request.getParameter("course");
  int score = Integer.parseInt(request.getParameter("score"));
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf-8", "root", "password");
  PreparedStatement pstmt = conn.prepareStatement("INSERT INTO score (number, name, course, score) VALUES (?, ?, ?, ?)");
  pstmt.setString(1, number);
  pstmt.setString(2, name);
  pstmt.setString(3, course);
  pstmt.setInt(4, score);
  pstmt.executeUpdate();
  pstmt.close();
  conn.close();
  response.sendRedirect("score.jsp");
%>

5.部署和测试

在完成以上的工作之后,我们需要将代码部署到Web服务器上,并进行测试。可以选择Tomcat、Jetty等Web服务器进行部署。在Web服务器上启动我们的学生信息管理系统,测试其是否能够正常运行。

6.总结

通过以上的步骤,我们完成了一个简单的JSP学生信息管理系统。设计过程中涉及的知识点包括需求分析、数据库设计、JSP页面设计、JSP和数据库的交互等。同时,我们还学习了如何使用JDBC进行数据库的读写操作,和如何将代码部署到Web服务器上进行测试。当然,这只是一个简单的示例,真正实现一个完整的学生信息管理系统需要更多的思考和代码实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP学生信息管理系统设计 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 地牢之魂怎么放技能_地牢之魂按键操作具体说明

    下面是《地牢之魂》放技能和按键操作的具体说明攻略。 地牢之魂怎么放技能 在《地牢之魂》中,放技能有两种方式:一种是通过快捷键直接放出,另一种是通过按住魔法键再释放。 通过快捷键放技能 打开游戏设置(左下角菜单中),进入“控制”选项卡 找到“技能”选项 选择要设置的技能,并在“快捷键”一栏中设置对应的键位 在游戏中按下设置的快捷键即可放出技能 注:不同职业和不…

    Java 2023年6月15日
    00
  • java编译时与运行时概念与实例详解

    Java编译时与运行时概念与实例详解 在Java程序员的日常工作中,熟练掌握Java编译时和运行时的概念非常重要。本文将详细介绍Java编译时和运行时的相关知识以及一些实例。 Java编译时 概念 Java编译时是指将Java源代码编译为class文件的过程。在Java程序开发中,一般先编写Java源代码,然后通过JDK中的javac命令将Java源代码编译…

    Java 2023年5月20日
    00
  • EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码

    EasyUI tabs 组件是一个基于jQuery的选项卡插件,用于在网页中实现多标签页显示。要实现 EasyUI tabs 组件的高度与宽度根据 IE 窗口的变化自适应,需要进行如下步骤: 第一步:设定 HTML 结构 首先需要设置 HTML 的标记结构,如下所示: <div class="easyui-tabs" data-op…

    Java 2023年6月15日
    00
  • Java中switch的三种用法方式

    当我们在Java程序中需要根据不同的值来执行不同的操作时,我们可以使用switch语句。在Java中,switch语句有三种不同的用法方式:匹配一个具体的值、匹配一段范围、以及匹配一个枚举值。 匹配一个具体的值 当我们需要根据不同的值来执行不同的操作时,我们通常会使用switch语句的第一种用法方式:匹配一个具体的值。以下是一个示例: int num = 4…

    Java 2023年5月23日
    00
  • Spring Security单项目权限设计过程解析

    Spring Security 单项目权限设计过程解析 在一个Web应用中,权限管理一般是必不可少的功能。Spring Security 提供了强大的组件和方法,使得我们可以轻松地在应用中添加认证和授权的功能。针对单个应用的权限管理,一般需要经过以下步骤: 步骤一:添加依赖 在项目的 pom.xml 文件中,我们需要添加以下依赖: <dependenc…

    Java 2023年5月20日
    00
  • 如何使用MAVEN打JAR包(直接使用)

    下面是如何使用MAVEN打JAR包的完整攻略。 步骤一:创建Maven项目 首先需要创建一个Maven项目,可以使用Maven自带的命令创建,具体步骤如下: 打开控制台,执行如下命令创建项目: mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifac…

    Java 2023年5月20日
    00
  • Centos6.x服务器配置jdk+tomcat+mysql环境(jsp+mysql)

    以下是CentOS 6.x服务器配置JDK+Tomcat+MySQL环境的攻略: 1. 安装JDK 在CentOS 6.x系统上安装JDK可以使用如下命令: yum install java-1.8.0-openjdk-devel 安装完毕之后,可以通过下面的命令查看是否已经安装成功: java -version 2. 安装Tomcat CentOS 6.x…

    Java 2023年5月19日
    00
  • Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    Java中的多态和接口是两个重要的概念,对于Java开发者来说必须要掌握其使用方法和相关规则。本次攻略将详细讲解Java多态和实现接口的类的对象赋值给接口引用的方法。 一、Java多态 Java多态是指同一个方法在不同的对象上会有不同的行为。它是面向对象编程中一种重要的概念,提高了程序的可扩展性和可维护性。 1.1 多态的实现方式 Java多态一般有两种实现…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部