JavaWeb学生信息管理系统

JavaWeb学生信息管理系统,第1张

JavaWeb学生信息管理系统

基于Javaweb、MySQL、jsp的简单的学生信息管理系统,查看所有学生信息,登录验证,增加学生信息,修改和删除就不写了,就是在表单中增加两个链接跳转到servlet控制Mysql
总览

数据库

1.连接池

package utils;

import java.sql.*;


public class JDBCUtils {
    static final String DRIVERNAME="com.mysql.cj.jdbc.Driver";
    static final String URL = "jdbc:mysql://127.0.0.1:3306/class?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    static final String USER="root";
    static final String PASSWORD="qwer1234";

    static {
        try {
            Class.forName(DRIVERNAME);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    static Connection connection = null;
    static PreparedStatement statement = null;
    static ResultSet resultSet = null;
    
    public static Connection getconnection(){
        try {
            connection = DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return connection;
    }
    
    public static ResultSet query(String sql,Object... objs){
        //预处理
        getconnection();
        try {
            statement = connection.prepareStatement(sql);
            //判断objs是否为空或为0
            if(objs != null && objs.length > 0){
                for (int i = 0; i < objs.length; i++) {
                    statement.setObject(i+1,objs[i]);
                }
            }
            //查询操作
            resultSet = statement.executeQuery();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        return resultSet;
    }

    
    public static void add(String sql){
        getconnection();
        try {
            statement = connection.prepareStatement(sql);
            System.out.println("影响行数:"+ statement.executeUpdate(sql));
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    
    public static void delete(String sql){
        getconnection();
        try {
            statement = connection.prepareStatement(sql);
            System.out.println("executeUpdate:"+ statement.executeUpdate(sql));
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }


    
    public static void update(String sql){
        getconnection();
        try {
            statement = connection.prepareStatement(sql);
            System.out.println("executeUpdate:"+ statement.executeUpdate(sql));
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }

    
    public static void free(){
        if (null != resultSet){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (null != statement){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (null != connection){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

对登陆界面的控制类

package controller;

import dao.StudentDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;

@WebServlet(name = "LoginServlet",value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设定编码
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html; charset=UTF-8");
        //获取表单数据
        String account = req.getParameter("account");
        String password = req.getParameter("password");
        System.out.println("account = " + account);
        System.out.println("password = " + password);
        //七天免密登录
        cookie cookie = new cookie("nameinfo", URLEncoder.encode(account+"-"+password,"utf-8") );
        //一天免登录,待验证remember
        cookie.setMaxAge(24*60*60);
        //增加cookie到responce
        resp.addcookie(cookie);

        String error;
        //账号密码的非空校验   trim去空格
        if (account == null || account.trim().length() == 0 || password == null || password.trim().length() == 0){
            //告知用户不能为空,同时用户依然停留在登录界面
            error = "用户名或密码不能为空!";
            //资源的跳转:  重定向  转发
            //重定向:根据当前的url进行资源的跳转  /表示是web容器的根路径   但是我们自己想在跳转url的同时携带信息
//            resp.sendRedirect(req.getContextPath() + "/html
    cookie[] cookies = request.getcookies();
    String[] s = null;

    if (cookies!=null){
        for (cookie cookie : cookies) {
            if (URLDecoder.decode(cookie.getName(), "utf-8").equals("nameinfo")){
                String str = URLDecoder.decode(cookie.getValue(),"utf-8" );
                s = str.split("-");
            }
        }
    }
    %>


    





项目源码在Gitee:
代码有些许不足之处后续会优化,没做过多的详细描述,自我感觉看一遍代码,自己打一遍代码,更能提升水平(在理解大部分知识的基础上),此项目运行完全没问题
若想更深入了解原理和映射关系可以去哔哩哔哩搜JavaWeb学生管理系统,那里的老师讲的挺好的,听完一边,自己敲一遍定能查漏补缺。
此项目为个人编写,不涉及复制粘贴问题。项目也是写完好久了,打算把初期写的这个不完整项目总结一下,完整项目是用了SpringBoot,优化完之后会上传进阶版(“”)
Gitee源码请点击访问

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5582728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存