JavaWeb搭建学生管理系统(手把手)

您所在的位置:网站首页 web用户管理系统完整项目包括哪些 JavaWeb搭建学生管理系统(手把手)

JavaWeb搭建学生管理系统(手把手)

2024-07-16 07:29:20| 来源: 网络整理| 查看: 265

本人的博客地址www.aogu181.top

本文章仅供参考,适合新手搭建JavaWeb,学习此文章来打打基础还是可以的,如果有错误或者写的不好的地方,请多多指教。

最后本项目只是提供一个框架和思路,对前端界面不做美化

目录

开发工具与环境

工具包

 功能说明

项目结构

操作步骤

1.创建数据库

(一)创建数据库

(二)创建数据表

 (三)插入数据

 2.创建JavaWeb界面

(一)登入界面

(二)主页界面

(三)增加学生界面

(四)修改界面

(五)查询界面

3.创建Java类实现功能

(一)创建对象类

(二)创建数据访问层(Dao层)

(三)创建servlet

(四)配置过滤器

源码

开发工具与环境

1.IntelliJ IDEA  2021.2.2

2.MySQL   8.0.20

3.jdk 1.8.0_144

4.Tomcat

工具包

因为项目需要连接数据库,所以需要一个连接数据库的jar包

本项目用的是mysql8.0所以jar对应的就是8.0版本,如图所示,需要的自取jar包,提取码:miek

 不同数据库版本对应的jar包是不一样的,具体jar包的下载地址:Jar包下载,怎么下载这里就不多介绍了

 功能说明

1.登入功能

2.增

3.删

4.改

5.查

项目结构

项目结构如图所示:

编译器的不同具体也不完全相同,但大致一样就行

src下创建com.公司名. xxx  的形式

bean包下放需要操作的对象

dao包下面放对需要操作对象的操作,例如增删改查

filter包下放过滤器,一般是放编码过滤器和权限过滤器

servlet包下放servlet对象

private包下放需要权限的页面

lib包下放需要导入的库(jar包)

web.xml是配置文件

操作步骤 1.创建数据库 (一)创建数据库 create database rg56; (二)创建数据表

        这里设置了 id 为主键且不为空,其他设置根据自己的需求更改

create table stuno( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30), password CHAR(30), );

最终如下图所示:

 (三)插入数据 INSERT INTO stuno(id, name,password) VALUES (1,'小方','123456');

结果如下图所示,如需插入多个可自行选择,

 2.创建JavaWeb界面

完整项目放在最后,注意事项和解释全放在代码段里面了

(一)登入界面

 代码如下:

登入界面 学号: 密码: function condition() { var id_1 = document.getElementById("id").value;//获取id为id的值 var pwd_2 = document.getElementById("password").value;//获取id为password的值; if(id_1==""){ alert("学号不能为空!"); return false; } if(pwd_2==""){ alert("密码不能为空!"); return false; } return true; } (二)主页界面

 代码如下:

学生信息 学号 姓名 密码 增加学生;;;;查询学生 删除;; 修改

(三)增加学生界面

添加学生 学号: 姓名: 密码: function condition() { var id_1 = document.getElementById("id").value;//获取id为id的值 var name_2 = document.getElementById("name").value;//获取id为name的值 var pwd_3 = document.getElementById("password").value;//获取id为password的值; if(id_1==""){ alert("学号不能为空!"); return false; } if(name_2==""){ alert("姓名不能为空!"); return false; } if(pwd_3==""){ alert("密码不能为空!"); return false; } return true; } (四)修改界面

 代码如下:

修改学生信息 学号: 姓名: 密码: (五)查询界面

 代码如下:

检查添加学生信息

3.创建Java类实现功能 (一)创建对象类

代码如下:

package com.bean; public class Student { private int id; private String password; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

(二)创建数据访问层(Dao层)

        1.创建连接数据库操作对象类,BaseDao.java

package com.dao; import java.sql.*; /* * 连接数据库 * * */ public class BaseDao { static{ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection(){ Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/rg56?useUnicode=yes&characterEncoding=utf8", "root", "131488"); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void closeAll(ResultSet rs,PreparedStatement pStmt,Connection conn){ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(pStmt != null){ try { pStmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

(二)创建操作对象类

package com.dao; import com.bean.Student; import java.sql.*; import java.util.ArrayList; import java.util.List; /* * 用来对学生进行操作 * */ public class StudentDao { //获取学生信息列表 public static List getList() { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List list = new ArrayList(); try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement("SELECT * FROM stuno"); rs = stmt.executeQuery(); while (rs.next()) { Student stu = new Student(); stu.setId(rs.getInt(1)); stu.setName(rs.getString(2)); stu.setPassword(rs.getString(3)); list.add(stu); } } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(rs, stmt, conn); } return list; } //增加学生信息 public static void add(Student stu) { Connection con = null; PreparedStatement pStmt = null; ResultSet rs = null; try { con = BaseDao.getConnection(); pStmt = con.prepareStatement("insert into stuno(id,name,password) values(?,?,?)"); pStmt.setInt(1, stu.getId()); pStmt.setString(2, stu.getName()); pStmt.setString(3, stu.getPassword()); pStmt.executeUpdate();//更新数据 } catch (SQLException e) { e.printStackTrace(); } } //根据学号删除学生信息 public static void delete(int id) { Connection con = null; PreparedStatement pStmt = null; try { con = BaseDao.getConnection(); pStmt = con.prepareStatement("delete from stuno where id=?"); pStmt.setInt(1, id); pStmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } //获取单个学生对象 public static Student getStudent(int id) { Student s = new Student(); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement("select * from stuno where id=?"); stmt.setInt(1, id); rs = stmt.executeQuery(); if (rs.next()) { s.setId(rs.getInt("id")); s.setName(rs.getString("name")); s.setPassword(rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(rs, stmt, conn); } return s; } //修改功能 public static void updateStudent(Student student) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = BaseDao.getConnection(); String sql = "UPDATE stuno SET id=?,name=?,password=? where id=?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, student.getId()); stmt.setString(2, student.getName()); stmt.setString(3, student.getPassword()); stmt.setInt(4, student.getId()); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(rs, stmt, conn); } } //查询功能,根据模糊查询学号返回所有学生信息 public static List getStudentList(int id) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; List allStudent = new ArrayList(); try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement("select * from stuno where id like ?"); stmt.setString(1, "%" + id + "%"); rs = stmt.executeQuery(); while (rs.next()) { Student stu = new Student(); stu.setId(rs.getInt(1)); stu.setName(rs.getString(2)); stu.setPassword(rs.getString(3)); allStudent.add(stu); } } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(rs, stmt, conn); } return allStudent; } } (三)创建servlet

我只把查找功能交给了servlet,可根据自己需求添加

package com.sevlet; import com.dao.StudentDao; import com.bean.Student; import javax.servlet.ServletException; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; /** * /search 是注解也可以在 web.xml中配置servlet * */ @WebServlet("/search") public class SearchSevlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); int id = Integer.parseInt(req.getParameter("id")); List list = StudentDao.getStudentList(id); req.setAttribute("list", list); req.getRequestDispatcher("searchStudent.jsp").forward(req, resp); super.doPost(req, resp); } }

(四)配置过滤器

1.配置字符码过滤器

package com.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { private static String encoding; // 定义变量接收初始化的值 public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 设置字符编码链锁 request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); } // 初始化 public void init(FilterConfig config) throws ServletException { // 接收web.xml配置文件中的初始参数 encoding = config.getInitParameter("CharsetEncoding"); } }

创建完了还需要在web.xml中配置

charsetEncodingFilter com.filter.EncodingFilter CharsetEncoding UTF-8 charsetEncodingFilter /*

(2)创建权限过滤器

package com.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class PrivateFilter implements Filter { private FilterConfig filterConfig; @Override public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); //这里的 name 是登入成功后在登入成功界面加一个 session.setAttribute("name","xxx"); String name = (String) session.getAttribute("name"); if (name == null) { if (request.getRequestURI().indexOf("../firstLogin.jsp") > -1) { filterChain.doFilter(servletRequest, servletResponse); } else { response.sendRedirect("../firstLogin.jsp"); } } else { request.getRequestDispatcher("index.jsp").forward(request,response); return; } } @Override public void destroy() { } }

同样需要在web.xml中配置

PrivateFilter com.filter.PrivateFilter PrivateFilter /private/* 源码

最后大致就大功完成了,感谢支持。喜欢了可以帮忙点个赞哦

最后附上我自己学习时做的班费管理系统班费管理系统

本篇文章的源码也附上链接:源码 提取码:hx38



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭