IDEA+Java+JSP+Mysql+Tomcat实现Web学生信息管理系统
Posted 水坚石青
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA+Java+JSP+Mysql+Tomcat实现Web学生信息管理系统相关的知识,希望对你有一定的参考价值。
学生信息管理系统
一、系统介绍
软件环境
IDEA:2018.2
Java:jdk1.8
mysql:8.0.13
Tomcat:8.5.23
系统功能
1.管理员登录系统
2.增加学生信息
3.修改学生信息
3.删除学生信息
4.查询学生信息
数据库涉及的表
admin
student
二、系统展示
1.登录系统
2.主页面
3.增加学生信息
4.修改学生信息
5.查询学生信息
三、代码实现
AdminDao
package com.sjsq.dao;
import com.sjsq.vo.Admin;
/**
* @author shuijianshiqing
* @date 2021/5/1 9:46
*/
public interface AdminDao {
/**
* 用户登录
* @param admin
* @return
*/
public Admin login(Admin admin);
}
AdminDaoImpl
package com.sjsq.dao.impl;
import com.sjsq.dao.AdminDao;
import com.sjsq.utils.DBUtil;
import com.sjsq.vo.Admin;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @author shuijianshiqing
* @date 2021/5/1 9:49
*/
public class AdminDaoImpl implements AdminDao {
/**
* 用户登录
* @param admin
* @return
*/
@Override
public Admin login(Admin admin) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 1.获取数据库连接
con = DBUtil.getConnection();
// 2.写sql
String sql = "select * from admin where username = ? and password = ?";
// 3.预编译
ps = con.prepareStatement(sql);
// 4.设置值
ps.setObject(1,admin.getUsername());
ps.setObject(2,admin.getPassword());
rs = ps.executeQuery();
Admin adminLogin = null;
if(rs.next()){
adminLogin = new Admin();
// 从数据库中获取值到实体类的setter方法中
adminLogin.setUsername(rs.getString("username"));
adminLogin.setPassword(rs.getString("password"));
// 返回的是你查询出来的完整的对象
return adminLogin;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 关闭资源,避免出现异常
DBUtil.close(con,ps,rs);
}
return null;
}
}
StudentDao
package com.sjsq.dao;
import com.sjsq.vo.Student;
import java.util.List;
/**
* @author shuijianshiqing
* @date 2021/4/30 7:52
*
* 学生信息接口
*/
public interface StudentDao {
/**
* 查询学生信息
* @param sql
* @param arr
* @return
*/
public List<Student> selectAll(String sql, Object[] arr);
/**
* 根据学号进行查询
* @param id
* @return
*/
public Student selectStudent(Integer id);
/**
* 新增学生信息
* @param student
* @return
*/
public boolean addStudent(Student student);
/**
* 修改学生信息
* @param student
* @return
*/
public boolean updateStudent(Student student);
/**
* 删除学生信息
* @param id
* @return
*/
public boolean deleteStudent(Integer id);
}
AdminService
package com.sjsq.service;
import com.sjsq.vo.Admin;
/**
* @author shuijianshiqing
* @date 2021/5/1 11:13
*/
public interface AdminService {
/**
* 用户登录
* @param admin
* @return
*/
public Admin login(Admin admin);
}
AdminServiceImpl
package com.sjsq.service.impl;
import com.sjsq.dao.AdminDao;
import com.sjsq.dao.impl.AdminDaoImpl;
import com.sjsq.service.AdminService;
import com.sjsq.vo.Admin;
/**
* @author shuijianshiqing
* @date 2021/5/1 11:13
*/
public class AdminServiceImpl implements AdminService {
private AdminDao adminDao = new AdminDaoImpl();
@Override
public Admin login(Admin admin) {
return adminDao.login(admin);
}
}
StudentService
package com.sjsq.service;
import com.sjsq.vo.Student;
import java.util.List;
/**
* @author shuijianshiqing
* @date 2021/5/1 8:26
*/
public interface StudentService {
/**
* 查询学生信息
* @param student
* @return
*/
public List<Student> selectAll(Student student);
/**
* 根据学号进行查询
* @param id
* @return
*/
public Student selectStudent(Integer id);
/**
* 新增学生信息
* @param student
* @return
*/
public boolean addStudent(Student student);
/**
* 修改学生信息
* @param student
* @return
*/
public boolean updateStudent(Student student);
/**
* 删除学生信息
* @param id
* @return
*/
public boolean deleteStudent(Integer id);
}
StudentServiceImpl
package com.sjsq.service.impl;
import com.sjsq.dao.StudentDao;
import com.sjsq.dao.impl.StudentDaoImpl;
import com.sjsq.service.StudentService;
import com.sjsq.vo.Student;
import java.util.ArrayList;
import java.util.List;
/**
* @author shuijianshiqing
* @date 2021/5/1 8:26
*/
public class StudentServiceImpl implements StudentService {
private StudentDao studentDao = new StudentDaoImpl();
@Override
public List<Student> selectAll(Student student) {
StringBuffer sql = new StringBuffer("select * from student where 1 = 1 ");
List<Object> list = new ArrayList<Object>();
if(student != null){
// 根据id来查找对应的学生信息
if(student.getId() != null && student.getId() != 0){
sql.append(" and id = ?");
list.add(student.getId());
}
}
return studentDao.selectAll(sql.toString(),list.toArray());
}
@Override
public Student selectStudent(Integer id) {
return studentDao.selectStudent(id);
}
@Override
public boolean addStudent(Student student) {
return studentDao.addStudent(student);
}
@Override
public boolean updateStudent(Student student) {
return studentDao.updateStudent(student);
}
@Override
public boolean deleteStudent(Integer id) {
return studentDao.deleteStudent(id);
}
}
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath %>" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登录</title>
<style type="text/css">
h1{
text-align: center;
}
h4{
text-align: center;color: red;
}
body{
background-color: antiquewhite;
}
a{
text-decoration: none;font-size: 20px;color: black;
}
a:hover{
text-decoration: underline;font-size: 24px;color: red;
}
</style>
</head>
<body>
<form action="check_login.jsp" method="post">
<h1>用户登录</h1>
<hr/>
<table align="center">
<tr>
<td>账号:</td>
<td><input type="text" name="username" placeholder="请输入您的账号" autofocus="autofocus"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" placeholder="请输入您的密码"></td>
</tr>
<tr>
<td colspan="1">
</td>
<td>
<input type="submit" value="登录"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</body>
</html>
check_login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ page import="com.sjsq.service.AdminService"%>
<%@ page import="com.sjsq.service.impl.AdminServiceImpl"%>
<%@ page import="com.sjsq.vo.Admin"%>
<%
// 获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath %>" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登录</title>
<style type="text/css">
h1{
text-align: center;
}
h4{
text-align: center;color: red;
}
body{
background-color: antiquewhite;
}
</style>
</head>
<body>
<h1>用户登录</h1>
<hr>
<%
// 设置接收的编码为UTF-8
request.setCharacterEncoding("utf-8");
// 获取前端传过来的字符串
String username = request.getParameter("username");
String password=request.getParameter("password");
// 定义接受的对象
Admin admin = new Admin();
admin.setUsername(username);
admin.setPassword(password);
// 把数据库里面的Admin获取出来
AdminService adminService = new AdminServiceImpl();
// 注意数据的admin账号密码不能重复
Admin adminLogin = adminService.login(admin);
System.out.println("显示登录用户信息:");
System.out.println(adminLogin);
// 设置session
session.setAttribute("admin",adminLogin);
// 判断adminLogin是否为空
if(!(adminLogin==null)){
// 成功之后重定向到主页面
response.sendRedirect("main.jsp");
} else{
// 失败之后重定向到失败页面
response.sendRedirect("fail.jsp");
}
%>
</body>
</html>
logout.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>退出登录</title>
</head>
<body>
<%
// 会话失效
session.invalidate();
response.sendRedirect("login.jsp");
%>
</body>
</html>
main.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ page import="com.sjsq.service.StudentService" %>
<%@ page import="com.sjsq.service.impl.StudentServiceImpl" %>
<%@ page import="com.sjsq.vo.Student" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查看学生</title>
<style type="text/css">
h1 {
text-align: center;
}
body {
background-color: antiquewhite;
}
th, td {
width: 70px;
height: 35px;
text-align: center;
}
#before {
text-align: center;
}
</style>
</head>
<body>
<%-- 头部 --%>
<jsp:include page="top.jsp"/>
<%
// 设置获取注册时的编码为UTF-8
request.setCharacterEncoding("UTF-8");
StudentService studentService = new StudentServiceImpl();
// 定义一个学生类
Student student = new Student();
// 获取上一个页面传过来的值
if(request.getParameter("id")!=null && request.getParameter("id")!=""){
Integer id = Integer.parseInt(request.getParameter("id"));
student.setId(id);
}
// 获取所有学生
List<Student> studentList = studentService.selectAll(student);
%>
<h1>学生列表</h1>
<hr/>
<div id="before">
<form action="main.jsp" method="post">
请输入姓名:<input type="text" name="id" placeholder="输入学号搜索">
<input type="submit" value="查询" />
</form>
</div>
<br>
<table align="center" cellspacing="0" align="center">
<tr bgcolor="#5f9ea0">
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别以上是关于IDEA+Java+JSP+Mysql+Tomcat实现Web学生信息管理系统的主要内容,如果未能解决你的问题,请参考以下文章
IDEA+Java+JSP+Mysql+Tomcat实现Web教师信息管理系统
IDEA+Java+JSP+Mysql+Tomcat实现Web学生宿舍信息管理系统
IDEA+Java+JSP+Mysql+Tomcat实现Web商品信息管理系统
IDEA+Java+JSP+Mysql+Tomcat实现Web学生成绩管理系统