提取码: 7sm3 https://www.aliyundrive.com/s/f6tULruwfUx

直接放上代码 ·

知识储备:java、mysql、Servlet、HTML、Jquery、Jscript、

我的个人制作过程大概如下:

数据库的创建——数据库的连接——Dao层——Service层——Servlet程序——页面设计。


思路:首先我们要有被管理的对象——Student。那么我们首先要创建Student数据库表。

 与此同时创建Student类。

package com.atchensong.pojo;public class Student {private Integer id;private String username;private int age;private String gender;private double score;public Student() {}public Student(Integer id, String username, int age, String gender, double score) {this.id = id;this.username = username;this.age = age;this.gender = gender;this.score = score;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}@Overridepublic String toString() {return "Student{" +"id=" + id +", username='" + username + '\'' +", age=" + age +", gender='" + gender + '\'' +", score=" + score +'}';}
}

接下来通过JdbcUtils尝试与数据库连接,并查找数据库中的数据。

配置文件-jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stu_info?characterEncoding=utf8
username=root
password=111111
initialSize=5
maxActive=10

JdbcUtils

package com.atchensong.utils;import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;/*** @author Chensong* @description* @create 2022-02-17 8:56*/
public class JdbcUtils {private static String driver = null;private static String url = null;private static String username = null;private static String password = null;static {try {InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");Properties properties = new Properties();properties.load(inputStream);driver = properties.getProperty("driver");url = properties.getProperty("url");username = properties.getProperty("username");password = properties.getProperty("password");//1.驱动需要加载一次Class.forName(driver);} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}//2.获取连接public static Connection getConnection() throws SQLException {return DriverManager.getConnection(url, username, password);}//3.释放连接public static void release(Connection connection, Statement statement, ResultSet resultSet) {if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement != null)try {statement.close();} catch (SQLException e) {e.printStackTrace();}if (resultSet != null)try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}

确保连接好之后,我们接下来进入页面层面。首先应该实现登录功能。那么登录功能是管理员来登录的,所以应该用管理员的账号与密码。那么在数据库中创建manager表。只需要给上用户名密码就可以了。

与此同时创建Manager类。

package com.atchensong.pojo;public class Manager {private String username;private String password;public Manager() {}public Manager(String username, String password) {this.username = username;this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "Manager{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}
}

编写Dao层实现java程序与数据库的数据交互。

首先创建BaseDao。实现与数据库交互最底层的功能。这段儿代码也可以当作一个模板,适用于其他项目的编写。

package com.atchensong.dao.impl;import com.atchensong.utils.JdbcUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;public abstract class BaseDao {//使用DbUtils操作数据库private QueryRunner queryRunner = new QueryRunner();/** update()方法用来执行:Insert\Update\Delete语句** @return 如果返回-1,说明执行失败</br>返回其他表示影响的行数* */public int update(String sql, Object... args) {Connection connection = null;try {connection = JdbcUtils.getConnection();return queryRunner.update(connection, sql, args);} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.release(connection, null, null);}return -1;}/*** 查询返回一个javaBean的sql语句*  type 返回的对象类型*  sql 执行的sql语句*  args sql对应的参数值*  <T> 返回的类型的泛型** */public <T> T queryForOne(Class<T> type, String sql, Object... args) {Connection connection = null;try {connection = JdbcUtils.getConnection();return queryRunner.query(connection, sql, new BeanHandler<T>(type), args);} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.release(connection, null, null);}return null;}public <T> List<T> queryForList(Class<T> type, String sql, Object... args) {Connection conn = null;try {conn = JdbcUtils.getConnection();return queryRunner.query(conn, sql, new BeanListHandler<T>(type), args);} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.release(conn, null, null);}return null;}public Object queryForSingleValue(String sql, Object... args) {Connection connection = null;try {connection = JdbcUtils.getConnection();return queryRunner.query(connection, sql, new ScalarHandler(), args);} catch (SQLException e) {e.printStackTrace();}return null;}
}

创建ManagerDao接口

package com.atchensong.dao;import com.atchensong.pojo.Manager;public interface ManagerDao {public Manager queryUserByUsernameAndPassword(String username, String password);}

创建Manager实现类。

package com.atchensong.dao.impl;import com.atchensong.dao.ManagerDao;
import com.atchensong.pojo.Manager;public class ManagerDaoImpl extends BaseDao implements ManagerDao {@Overridepublic Manager queryUserByUsernameAndPassword(String username, String password) {String sql = "select * from `manager` where username=? and password = ?";return queryForOne(Manager.class, sql, username, password);}
}

创建Service层:

package com.atchensong.service;import com.atchensong.pojo.Manager;public interface ManagerService {/** 登录业务* */public Manager login(Manager manager);
}
package com.atchensong.service.impl;import com.atchensong.dao.ManagerDao;
import com.atchensong.dao.impl.ManagerDaoImpl;
import com.atchensong.pojo.Manager;
import com.atchensong.service.ManagerService;public class ManagerServiceImpl implements ManagerService {ManagerDao managerDao = new ManagerDaoImpl();@Overridepublic Manager login(Manager manager) {return managerDao.queryUserByUsernameAndPassword(manager.getUsername(), manager.getPassword());}
}

确保能够成功运行以后,我们开始实现页面与java程序的交互。这时要用到Servlet知识。

创建实现登录功能的Servlet代码

package com.atchensong.web;import com.atchensong.pojo.Manager;
import com.atchensong.service.ManagerService;
import com.atchensong.service.impl.ManagerServiceImpl;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class LoginServlet extends HttpServlet {ManagerService managerService = new ManagerServiceImpl();@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");String password = req.getParameter("password");Manager login = managerService.login(new Manager(username, password));if (login == null) {req.setAttribute("msg", "用户名或密码输入错误");req.setAttribute("username", username);req.getRequestDispatcher("/index.jsp").forward(req, resp);System.out.println("登录失败");} else {System.out.println("登录成功");req.getRequestDispatcher("/login_success.jsp").forward(req, resp);}}
}

顺便附上登录页面

<%--Created by IntelliJ IDEA.User: 张宸菘Date: 2022/5/3Time: 15:59To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--<!DOCTYPE html>--%><html>
<head><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><title>管理员登录</title><link type="text/css" rel="stylesheet" href="static/css/index.css"><link type="text/css" rel="stylesheet" href="static/css/iconfont.css"><script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
</head>
<body>
<h1>学 生 管 理 系 统</h1>
<div class="box clearfix"><div class="msg-title">${ empty requestScope.msg ? "请输入用户名和密码:" :requestScope.msg}</div><form action="http://localhost:8080/stu_management/loginServlet" method="post"><div class="box1 iconfont clearfix"><div class="user icon-yonghuming"></div><input type="text" name="username" class="username" value="${requestScope.username}"></div><div class="box2 iconfont clearfix"><div class="pass icon-mima"></div><input type="password" name="password" class="password"><br><input type="submit" value="提交" class="submit"></div></form>
</div>
</body>
</html>

还没有完。在web.xml中配置servlet程序地址。

完成上述工作以后,启动Tomcat,尝试登录操作。

之后的:增删改查操作同登录操作一样:先在Dao层实现与数据库的连接,并编写对应 的方法,在通过Service层调用Dao层的方法。之后编写Servlet程序,配置Servlet程序。

另外:下载过后的小伙伴都说报错404

下边儿说一下解决方法:

下载过后,打开项目

一、右击模块名称 -> open Moudle Settings

二、右击stu_management -> Add->Web

 发现web文件夹已经被标记

三、配置tomcat

运行即可 

JavaWeb学生信息管理系统相关推荐

  1. Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)

    项目源码及数据库: 链接:https://pan.baidu.com/s/1ktUyxbOI9lljWr-HRTRIiQ?pwd=1024 提取码:1024 目录 一.项目介绍 二.运行效果 1.登录 ...

  2. Javaweb学生信息管理系统(源码)

                              关注微信公众号:小诸葛的博客 回复101获取项目源码 1.项目名称:学生成绩管理系统 主要管理学生信息及成绩.教师信息.考试信息等. 2.系统环境: ...

  3. JavaWeb学生信息管理系统_查询V1.0

    项目简介 1)在MySQL数据库中创建一个StudentGradeTable数据表,添加字段FlowId,Type,IdCard,ExamCard,StudentName,Location,Grade ...

  4. 基于C++的学生信息管理系统的实现

    在完成一学期的C++语言学习之后,写一个学生信息管理系统来丰富自己的实战经验. 课设内容的要求有主菜单模块.输入模块.查询模块.更新模块.排序模块.统计模块和输出模块,并且通过主菜单模块调用各个子模块 ...

  5. java web信息管理系统_Java web学生信息管理系统

    [实例简介] 基于Jsp&servlet;+JavaBean的学生信息管理系统,实现了学生成绩.课程.教师的管理 [实例截图] [核心代码] Javaweb学生信息管理系统 └── Java ...

  6. JavaWeb 入门 最简单的学生信息管理系统

    最近在学习JavaWeb,整理一下.写了个很简单的学生信息管理系统.系统只包括简单的对学生信息进行增删改查.系统采用三层设计模式. 先展示一下系统的业务处理逻辑图: 逻辑如图所示,获取前端用户交互信息 ...

  7. JavaWeb之简单的学生信息管理系统(二)

    JavaWeb之简单的学生信息管理系统(一) JavaWeb之简单的学生信息管理系统(二) JavaWeb之简单的学生信息管理系统(三) 今日任务:实现学生管理系统的查找和添加功能! 一. 查询学生信 ...

  8. 基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  9. 基于 Servlet+jsp+mysql 开发 javaWeb 养老院信息管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

最新文章

  1. Happy birthday! Hubble
  2. new housing price at shanghai
  3. [SoapUI] Jenkins 配置不同环境(TP, LIVE)
  4. 在左表或右表的连接字段上建立索引对左、内连接的查询效率的优化情况分析
  5. jmeter压力测试_用Jmeter实现对接口的压力测试
  6. Maven学习(六)————企业Maven项目最佳实践
  7. 线程---生产者消费者问题
  8. 《Python编程从入门到实践》记录之求模运算符
  9. 中职计算机专业学Excel,2013年中职计算机应用专业中文Excel电子表格处理实际操作练习.doc...
  10. Java程序设计24学时轻松掌握_24小时轻松掌握系列——Java程序设计 24学时轻松掌握...
  11. 快手视频下载和转发工具
  12. 用HTML和CSS制作简单的静态网页
  13. 关于GPS定位高德开放平台SDK深度应用
  14. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.8
  15. python用函数绘制椭圆_Python学习笔记——opencv绘制椭圆
  16. 微信小程序万里目_微信小程序加盟千万别忘了几个基本要求
  17. 初识动态规划(一)简单入门动态规划与上手操作
  18. 解开关于人工智能的六个迷思
  19. 3D角色 毛发制作 XGen关于导向的基本操作
  20. Nine Knights

热门文章

  1. nil Foundation blueprint模块代码解析
  2. 聚合支付代理的有利可图之处
  3. Linux常用备份恢复工具(1)
  4. Windows10系统下从库中删除文件夹(保留原始位置的文件)
  5. ~/.profile和/etc/profile的区别
  6. 卡尔曼滤波理论小释之卡尔曼增益
  7. TYPORA的使用手册
  8. 自建团队app公司外包免编程app打包平台优缺点分析
  9. 钢铁集团的混合云灾备
  10. 锐捷客户端解除禁用多网卡设置(包括虚拟机和移动热点)