JavaWeb搭建学生管理系统(手把手) |
您所在的位置:网站首页 › web用户管理系统完整项目包括哪些 › JavaWeb搭建学生管理系统(手把手) |
本人的博客地址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 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |