学生管理系统

1 篇文章 1 订阅
订阅专栏
1 篇文章 0 订阅
订阅专栏

目录

基于servlet+jsp的学生管理系统

(一)代码目录结构

(二)最终页面效果

1.登录页面

 2.系统首页​编辑

3.功能页面(以查询页面为例)

​(三)系统功能介绍

(四)功能分析与实现

1.增删改查(以查功能为例)

2.十天内免登录功能


(一)代码目录结构

  • (二)最终页面效果

  • 1.登录页面

  •  2.系统首页

  • 3.功能页面(以查询页面为例)

  • (三)系统功能介绍

  1. 登录,注册功能
  2. 能对学生信息进行增删改查
  3. 利用监听器实现在线用户的统计
  4. 利用cookie实现十天内免登录功能
  5. 利用jstl和el表达式对jsp页面进行修饰

(四)功能分析与实现

1.增删改查(以查功能为例)

  • 实现这些功能,连接数据库是最基础的部分
  • 可以把连接数据库的信息,放到propreties文件,下次若连接别的数据库,或者说连接数据库信息变化时,不用修改java程序
  • 把零散的学生信息封装成学生对象,再把学生对象放到集合中
  • 把集合放在域对象里面
  • servlet做数据处理,jsp做页面展示
  //用容器list来装学生对象
        List<Stu> stus = new ArrayList<>();
        //连接数据库,获取学生信息
        Connection coon = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        ResourceBundle bundle  = ResourceBundle.getBundle("resources.jdbc");
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");
        //获取连接
        try {
            //注册驱动
            Class.forName(driver);
            //获取连接
             coon = DriverManager.getConnection(url, user, password);
            //执行SQL语句
            String sql = "select * from stu";
            ps = coon.prepareStatement(sql);
            rs = ps.executeQuery();
            //处理结果集
            while(rs.next()){
                //从结果集中取出来
                String stuId = rs.getString("stuId");
                String stuName = rs.getString("stuName");
                String stuSex = rs.getString("stuSex");
                String stuAge = rs.getString("stuAge");
                String stuWeight = rs.getString("stuWeight");
                //将以上零散的数据封装成一个java对象
                Stu stu  = new Stu();
                stu.setStuAge(stuAge);
                stu.setStuId(stuId);
                stu.setStuName(stuName);
                stu.setStuSex(stuSex);
                stu.setStuWeight(stuWeight);
                //将学生对象装进去
                stus.add(stu);
            }
            //释放资源
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }  finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (coon != null) {
                try {
                    coon.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
        //将集合放到请求域中
        request.setAttribute("StuList",stus);

        //转发给下一个要展示的jsp页面
        // 转发(不要重定向)
        request.getRequestDispatcher("/lookStudent.jsp").forward(request, response);

  • jsp页面做数据展示
  • jstl,el表达式对jsp页面的Java代码优化
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/functions"  %>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>学生信息查询</title>
    </head>
    <body bgcolor="CCCFFF">
        <center>
            <br> <br> <br> <br> <br>
            你要查询的学生数据表中共有
            <font size="5" color="red">
                ${f:length(StuList)}
            </font>
            人
            <table border="2" bgcolor= "CCCEEE" width="600">
                <tr bgcolor="CCCCCC" align="center">
                    <th>记录条数</th>
                    <th>学号</th>
                    <th>姓名</th>
                    <th>性别</th>
                    <th>年龄</th>
                    <th>体重</th>
                </tr>
            <c:forEach items="${StuList}" varStatus="stuStatus" var="stu">

                <tr align="center">
                    <td>${stuStatus.count}</td>
                    <td>${stu.stuId} </td>
                    <td>${stu.stuName} </td>
                    <td>${stu.stuSex} </td>
                    <td>${stu.stuAge}</td>
                    <td>${stu.stuWeight}</td>
                </tr>

            </c:forEach>

            </table>

        </center>
    </body>
</html>

2.十天内免登录功能

  • 登录页面勾选十天内免登录后,后端处理
  • 创建两个cookie,一个存储账号,一个存储密码,设置cookie有效时间,设置路径,响应给浏览器,登录信息会在电脑硬盘存储10天,下次访问,只要是cookie没有清除,不用 登录就可以访问
  • 可以做一个欢迎页面,访问系统默认访问,通过携带的cookie判段

    protected void doLogin(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        boolean success = false;
        // 你要做一件什么事儿?验证用户名和密码是否正确。
        // 获取用户名和密码
        // 前端你是这样提交的:username=admin&password=123
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 连接数据库验证用户名和密码
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "select * from t_user where username = ? and password = ?";
            // 编译SQL
            ps = conn.prepareStatement(sql);
            // 给?传值
            ps.setString(1, username);
            ps.setString(2, password);
            // 执行SQL
            rs = ps.executeQuery();
            // 这个结果集当中最多只有一条数据。
            if (rs.next()) { // 不需要while循环
                // 登录成功
                success = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }

        // 登录成功/失败
        if (success) {
            // 获取session对象(这里的要求是:必须获取到session,没有session也要新建一个session对象。)
            HttpSession session = request.getSession(); // session对象一定不是null
            //session.setAttribute("username", username);

           User user = new User(username, password);
            session.setAttribute("user", user);

            // 登录成功了,并且用户确实选择了“十天内免登录”功能。
            String f = request.getParameter("f");
            if("1".equals(f)){
                // 创建Cookie对象存储登录名
                Cookie cookie1 = new Cookie("username", username);
                // 创建Cookie对象存储密码
                Cookie cookie2 = new Cookie("password", password); // 真实情况下是加密的。
                // 设置cookie的有效期为十天
                cookie1.setMaxAge(60 * 60 * 24 * 10);
                cookie2.setMaxAge(60 * 60 * 24 * 10);
                // 设置cookie的path(只要访问这个应用,浏览器就一定要携带这两个cookie)
                cookie1.setPath(request.getContextPath());
                cookie2.setPath(request.getContextPath());
                // 响应cookie给浏览器
                response.addCookie(cookie1);
                response.addCookie(cookie2);
            }

            // 成功,跳转到用户列表页面
            response.sendRedirect(request.getContextPath() + "/stuAdmin.jsp");
        } else {
            // 失败,跳转到失败页面
            response.sendRedirect(request.getContextPath() + "/error.jsp");
        }

    }
package com.student.web.action;
import com.student.bean.User;
import com.student.utils.DBUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取cookie
        // 这个Cookie[]数组可能是null,如果不是null,数组的长度一定是大于0的。
        Cookie[] cookies = request.getCookies();
        String username = null;
        String password = null;
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                String name = cookie.getName();
                if("username".equals(name)){
                    username = cookie.getValue();
                }else if("password".equals(name)){
                    password = cookie.getValue();
                }
            }
        }

        // 要在这里使用username和password变量
        if(username != null && password != null){
            // 验证用户名和密码是否正确
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs = null;
            boolean success = false;
            try {
                conn = DBUtil.getConnection();
                String sql = "select * from t_user where username = ? and password = ?";
                ps = conn.prepareStatement(sql);
                ps.setString(1,username);
                ps.setString(2,password);
                rs = ps.executeQuery();
                if (rs.next()) {
                    // 登录成功
                    success = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(conn, ps, rs);
            }

            if (success) {
                // 获取session
                HttpSession session = request.getSession();
                //session.setAttribute("username", username);

                User user = new User(username, password);
                session.setAttribute("user", user);

                // 正确,表示登录成功
                response.sendRedirect(request.getContextPath() + "/stuAdmin.jsp");
            }else{
                // 错误,表示登录失败
                response.sendRedirect(request.getContextPath() + "/index.jsp");
            }
        }else{
            // 跳转到登录页面
            response.sendRedirect(request.getContextPath() + "/index.jsp");
        }

    }
}

初学者,有问题请各位大神指正,若需要源码,请私信,谢谢大家

Python学生管理系统(web网页版)
11-02
Python学生管理系统(web网页版),前面发布了python的控制台版本的学生管理系统和使用tkinter界面版的学生管理系统,这次是使用Django开发基于学生的实体类的增删改查,里面包含项目演示录屏和完整的项目源码与...
马氏大王专属
qq_41813971的博客
12-13 153
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> /*I/O函数*/ #include<stdlib.h> /*其它说明*/ #include<string.h> /*字符串函数*/ #define LEN 15 /* 学号和姓名最大字符数,实际请更改*/ #define N 50 /* 最大学生人数,实际请更改*/ int k = 1, n = 0, m = 0;/* n代表当前记录的学生人数*/ //函数声
学生信息管理系统详解:设计、功能与优势
最新发布
weixin_42518874的博客
09-03 1561
本文还有配套的精品资源,点击获取 简介:学生信息管理系统是一款专为教育机构优化学生信息管理的软件应用。本文详细解读了系统的核心组成部分,包括基本信息管理、档案管理、学生成绩管理等模块。系统的自动化和数据安全功能,提高了管理效率,减少了错误,并支持教学决策和家校互动。 1. 学生信息管理系统概述 系统简介 学生信息管理系统(Student Informa...
学生管理系统(Mysql数据库版)
04-07
《基于Mysql的学生管理系统详解》 学生管理系统是信息化教学中不可或缺的一部分,它旨在方便学校管理学生信息、成绩、出勤等各项数据。本系统采用Mysql数据库作为数据存储引擎,结合C语言进行程序开发,实现了高效...
IDEA+MySql学生管理系统
06-01
【IDEA+MySQL学生管理系统】是一个使用IntelliJ IDEA开发工具和MySQL数据库构建的应用程序,主要功能是管理学生档案、课程信息以及学生的选课记录。这个系统提供了用户友好的界面,使得用户能够方便地进行数据操作,...
python+mysql学生管理系统,可视化界面
05-30
基于Python和MySQL的学生管理系统是一种用于帮助学校或教育机构管理学生信息的计算机软件系统。该系统使用Python作为编程语言,MySQL作为数据库,可以方便地对学生信息进行录入、修改、查询和删除等操作。以下是该...
基于python开发的简单的学生管理系统
10-04
**基于Python开发的简单学生管理系统**是利用Python的Web框架Django实现的一个小型项目,旨在帮助初学者了解和掌握Django的基本用法以及如何构建一个简单的数据库驱动的应用。在这个系统中,用户可以进行学生信息的...
Python实现的学生管理系统
"python学生管理系统" 在本文中,我们将探讨如何使用Python编程语言构建一个学生管理系统。这个系统是一个简单但实用的示例,适用于初学者掌握Python基础和实践面向对象编程的概念。通过这个管理系统,我们可以执行...
写文章

热门文章

  • 位运算学习 4080
  • 学生管理系统 247

分类专栏

  • servlet 1篇
  • jsp 1篇

最新评论

  • 学生管理系统

    Zoro-W: 牛哔

大家在看

  • 启动应用程序出现System.Runtime.InteropServices.dll找不到问题 444
  • 启动应用程序出现System.Runtime.InteropServices.WindowsRuntime.dll找不到问题 544

最新文章

  • 位运算学习
2022年2篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunBoyLisp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司云浮企业网站优化耒阳seo网站优化黎川seo网站优化库尔勒软件优化网站个性化网站关键词优化哪家好肇庆网站优化代理广州网站优化公司咨询便宜的网站优化价格多少昆玉市网站seo优化排名兰州网站整站优化怎么选网站seo优化有什么技巧啊公司的网站诊断及优化方案广州企业网站seo优化哪里好江苏电商网站设计优化价格黔西网站seo优化价格网站的优化崇贤甜柚网络福州网站收录优化滨海网站优化费用滁州网站长尾关键词优化天津大型网站优化网站的优化重选云速捷实力最新网站优化芜湖网站首页优化哪家好优化网站首页去掉html郑州网站优化会黑龙江有实力的网站优化韶关外贸网站关键词优化哪家好网站怎么优化热卖云速捷热门seo网站排名优化工具二七区企业网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化