管理系统-基于javaweb的图书管理系统

基于javaweb的图书管理系统

🍅 作者主页 央顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝

本项目采用eclipse工具开发,jsp+servlet技术编写,样式采用了layui前端框架,数据库采用的是mysql,navicat开发工具。

系统一共分为2个角色分别是:管理员,学生
二、模块简介
管理员

1、登录

2、修改个人信息

3、图书类型管理

4、图书管理

5、图书借阅管理

6、借阅审批管理

7、图书借阅统计

8、学生管理

9、公告管理
学生
1、登录、注册
2、个人信息修改
3、图书借阅
4、借阅管理
5、借阅统计
6、查看公告
、相关截图

项目结构、数据库结构

在这里插入图片描述

登录注册页面

在这里插入图片描述
在这里插入图片描述

图书类型管理
在这里插入图片描述

图书管理
在这里插入图片描述

学生管理
在这里插入图片描述

审批管理
在这里插入图片描述

借阅管理
在这里插入图片描述

公告管理
在这里插入图片描述

管理员统计
在这里插入图片描述

学生统计
在这里插入图片描述

图书借阅
在这里插入图片描述

借阅历史
在这里插入图片描述

四、相关代码

登录代码

用户通过login.jsp页面填写指定的用户名和密码,点击登录按钮,执行servlet里面的方法,后台校验成功后,返回main.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Login Page</title>
		<!-- 样 式 文 件 -->
		<link rel="stylesheet" href="resource/component/pear/css/pear.css" />
		<link rel="stylesheet" href="resource/admin/css/other/login.css" />
	</head>
    <!-- 代 码 结 构 -->
	<body background="resource/admin/images/background.svg" style="background-size: cover;">
		<form class="layui-form" action="LoginServlet?action=login" method="post"  id="loginForm" name="loginForm" >
			<div class="layui-form-item">
				<img class="logo" src="resource/admin/images/logo.png" />
				<div class="title">登&emsp;&emsp;录</div>
				<div class="desc">
					 图  书  管  理  系  统
				</div>
			</div>
			<div class="layui-form-item">
				<input type="text" placeholder="请输入用户名或者手机号" name="userName" id="userName" hover class="layui-input"  />
				<span id="msg3" style="color:red">${message}</span>
			</div>
			<div class="layui-form-item">
				<input id="password" type="password" name="password" placeholder="请输入密码" hover class="layui-input"  />
			</div>
			<div class="layui-form-item" style="text-align: center;">
			      <input type="radio" name="type" id="type" value="1" title="管理员" checked>
                  <input type="radio" name="type" id="type" value="2" title="学生" > 
			</div>
			<div class="layui-form-item">
				<button type="submit" class="pear-btn pear-btn-success login" id="login">
					登录
				</button>
			</div>
			 <div class="layui-form-item">
				<a href="LoginServlet?action=toRegister" class="pear-btn pear-btn-warming  layui-btn-fluid">去注册</a>
			</div> 
		</form>
		<!-- 资 源 引 入 -->
		<script src="resource/component/layui/layui.js"></script>
		<script src="resource/component/pear/pear.js"></script>
		<script>
		layui.use(['layer', 'form','jquery'], function(){
			var form = layui.form,
			 layer = layui.layer,
			 $= layui.jquery;
			 form.render();//这句一定要加,占坑
		   
		$("#login").on("click", function() {
		    var userName = $("#userName").val().trim(); // trim()去除空格
		    var password = $("#password").val().trim();
		    var type = $("#type").val();
		    
		    
		    if(userName == ""){
		    	layer.msg('用户名或者手机号不能为空!');
		    	return false;
		    }
		    if(password == ""){
		    	layer.msg('密码不能为空!');
		    	return false;
		    }
		    if(type == ""){
		    	layer.msg('请选择角色!');
		    	return false;
		    }
 
		});
 
		setTimeout(function(){ $("#msg").html("")},3000);
		setTimeout(function(){ $("#msg2").html("")},3000);
		setTimeout(function(){ $("#msg3").html("")},3000);
		});
		</script>
	</body>
</html>

 
 
	private void login(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		removeAll(request,response);
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		String type = request.getParameter("type");
		if(type.equals("1")){
			Admin admin = new Admin();
			admin.setUserName(userName);
			admin.setPwd(password);
			Admin admin1 = ls.selectAdmin(admin);
			  try {
					 if (admin1 == null){
			        	  request.setAttribute("message", "管理员用户不存在或者密码错误");
						  request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
			         }else {
			        	  request.getSession().setAttribute("admin",admin1);
			        	  request.getSession().setAttribute("flag",1);
			              request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
			         }				
				 } catch (Exception e) {
				 	e.printStackTrace();
				 }
		 }else if(type.equals("2")){
			 Student student = new Student();
			 student.setStno(userName);
			 student.setPwd(password);
			 Student student1 = ls.selectStudent(student);
			  try {
					 if (student1 == null){
			        	  request.setAttribute("message", "学号不存在或者密码错误");
						  request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
			         }else {
			        	  request.getSession().setAttribute("student",student1);
			        	  request.getSession().setAttribute("flag",2);
			              request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
			         }				
				 } catch (Exception e) {
				 	e.printStackTrace();
				 }
		 }else{
			    request.setAttribute("message", "工作人员手机号不存在或者密码错误");
			    try {
				request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
				} 
		 }
	}

注册代码

学生初始化注册自己的账号,填写form表单,提价后,后台进行插入的操作,注册成功后跳转登录页面

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Login Page</title>
		<!-- 样 式 文 件 -->
		<link rel="stylesheet" href="resource/component/pear/css/pear.css" />
		<link rel="stylesheet" href="resource/admin/css/other/login.css" />
	</head>
    <!-- 代 码 结 构 -->
	<body background="resource/admin/images/background.svg" style="background-size: cover;">
		<form class="layui-form" action="StudentServlet?action=addStudent" method="post"  id="loginForm" name="loginForm" >
			 <input id="te" type="hidden" name="te" value="1" />
			<div class="layui-form-item">
				<img class="logo" src="resource/admin/images/logo.png" />
				<div class="title">注&emsp;&emsp;册</div>
				<div class="desc">
					 图  书  管  理  系  统
				</div>
			</div>
			<div class="layui-form-item">
				<input type="text" placeholder="请输入姓名" name="name" id="name" hover class="layui-input"  />
				<span id="msg" style="color:red">${message}</span>
			</div>
			<div class="layui-form-item">
				<input id="stno" type="text" name="stno" placeholder="请输入学号" hover class="layui-input"  />
			</div>
			<div class="layui-form-item">
				<select name="sex" id ="sex">
				        <option value="">请选择性别</option>
				        <option value="男">男</option>
				        <option value="女">女</option>
				      </select>
			</div>
			 <div class="layui-form-item">
				<input id="classes" type="text" name="classes" placeholder="请输入班级" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="time" type="text" name="time" placeholder="请输入入学时间" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="phone" type="text" name="phone" placeholder="请输入手机号" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="pwd" type="text" name="pwd" placeholder="请输入登录密码" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="xy" type="text" name="xy" placeholder="请输入学院" hover class="layui-input"  />
			</div>
			<div class="layui-form-item">
				<button type="submit" class="pear-btn pear-btn-success login" id="login">
					注册
				</button>
			</div>
			 <div class="layui-form-item">
				<a href="LoginServlet?action=toLogin" class="pear-btn pear-btn-warming  layui-btn-fluid">返回</a>
			</div> 
		</form>
		<!-- 资 源 引 入 -->
		<script src="resource/component/layui/layui.js"></script>
		<script src="resource/component/pear/pear.js"></script>
		<script>
		layui.use(['layer', 'form','jquery','laydate'], function(){
			var form = layui.form,
			 layer = layui.layer,
			 laydate=layui.laydate,
			 $= layui.jquery;
			 form.render();//这句一定要加,占坑
		   
			 laydate.render({
				    elem: '#time'
				  });
		$("#login").on("click", function() {
			  var name = $("#name").val();
		        var sex = $("#sex").val();
		        var classes = $("#classes").val();
		        var time = $("#time").val();
		        var xy = $("#xy").val();
		        var phone = $("#phone").val();
		        var pwd = $("#pwd").val();
		        var stno = $("#stno").val();
		        if(sex == null || sex== ""){
		        	layer.msg('性别不能为空!');
		        	return false;
		        }
		        if(name == null || name== ""){
		        	layer.msg('姓名不能为空!');
		        	return false;
		        }
		        if(classes == null || classes== ""){
		        	layer.msg('班级不能为空!');
		        	return false;
		        }
		        if(time == null || time== ""){
		        	layer.msg('入学时间不能为空!');
		        	return false;
		        }
		        if(xy == null || xy== ""){
		        	layer.msg('学院不能为空!');
		        	return false;
		        }
		        if(phone == null || phone== ""){
		        	layer.msg('手机号不能为空!');
		        	return false;
		        }
		        if(pwd == null || pwd== ""){
		        	layer.msg('密码不能为空!');
		        	return false;
		        }
		        if(stno == null || stno== ""){
		        	layer.msg('学号不能为空!');
		        	return false;
		        }
		});
 
		setTimeout(function(){ $("#msg").html("")},3000);
		setTimeout(function(){ $("#msg2").html("")},3000);
		setTimeout(function(){ $("#msg3").html("")},3000);
		});
		</script>
	</body>
</html>

	/**
	 * 新增学生信息
	 * @param request
	 * @param response
	 */
	private void addStudent(HttpServletRequest request,
			HttpServletResponse response) {
		String te = request.getParameter("te");
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		String classes = request.getParameter("classes");
		String time = request.getParameter("time");
		String xy = request.getParameter("xy");
		String phone = request.getParameter("phone");
		String pwd = request.getParameter("pwd");
		String stno = request.getParameter("stno");
		Student stu = new Student();
		stu.setClasses(classes);
		stu.setName(name);
		stu.setPhone(phone);
		stu.setPwd(pwd);
		stu.setSex(sex);
		stu.setState("1");
		stu.setStno(stno);
		stu.setTime(time);
		stu.setXy(xy);
		Student student = ss.selectStudentByPhone(phone);
		Student student1 = ss.selectStudentByStuNo(stno);
		if(te == null || te.equals("")){
			if(student != null){
				request.setAttribute("message", "电话号码重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/student/addStudent.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else if(student1 != null){
				request.setAttribute("message", "学号重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/student/addStudent.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else{
				try {
					ss.saveStudent(stu);
		 			response.sendRedirect(request.getContextPath()+"/StudentServlet?action=studentList");
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}else{
			if(student != null){
				request.setAttribute("message", "电话号码重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else if(student1 != null){
				request.setAttribute("message", "学号重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else{
				try {
					ss.saveStudent(stu);
		 			response.sendRedirect(request.getContextPath()+"/LoginServlet?action=toLogin");
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}
		
	}

学生列表代码

后台分页查询所有学生的信息,返回到studentList.jsp中,进行遍历展示

	/**
	 * 分页查询学生
	 * @param request
	 * @param response
	 */
	private void studentList(HttpServletRequest request,
			HttpServletResponse response) {
		String p=request.getParameter("p");//接收页码
        int pageSize=4;//每页显示5条
        int pageNum=1; //默认第一页
        if(p!=null){
            pageNum= Integer.parseInt(p);
        }
        //调用分页查询
        List<Student> list=ss.getstudentListPage(pageNum,pageSize);
        //携带参数到页面
        int nums=ss.queryStudentCount(); //查询总数
        //计算总页数
        int totalPage=(nums%pageSize==0)? (nums/pageSize):(nums/pageSize+1);
        request.setAttribute("cp",pageNum); //当前页
        request.setAttribute("tp",totalPage); //总页数
		try {
         request.removeAttribute("msg");
         request.setAttribute("list" ,list);
           request.getRequestDispatcher("/WEB-INF/views/student/studentList.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<jsp:include page="/WEB-INF/common/form_header.jsp"/>
 
<body>
 
	<div class="layui-col-md12">
		<div class="layui-card">
			<div class="layui-card-header">学生列表</div>
			<div class="layui-card-body">
				<form action="StudentServlet?action=studentListLike" method="post">
					 <div class="layui-form-item">
						    <div class="layui-inline">
						      <div class="layui-input-inline">
						       		<input type="text" placeholder="根据入学年份查询" name="time" id ="time" class="layui-input"  />
						      </div>
						        <div class="layui-input-inline">
						       		<input type="text" placeholder="根据入学生姓名查询" name="names" id ="names" class="layui-input"  />
						      </div>
						    </div>
						    <div class="layui-inline">
						      <button type="submit" class="layui-btn layui-btn-sm layui-btn-normal">查询</button>
						       <a href="StudentServlet?action=toAddStudent"
					class="layui-btn layui-btn-sm layui-btn-normal">新增学生</a>
						  </div>
						  </div>
					
					<%-- </c:if> --%>
		           </form>   
				<table class="layui-table">
					<thead>
						<tr>
						    <th>姓名</th>
							<th>性别</th>
							<th>班级</th>
							<th>入学时间</th>
							<th>学院</th>
							<!-- <th>能否借阅书籍</th> -->
							<th>手机号</th>
							<th>密码</th>
							<th>学号</th>
							<c:if test="${flag == 1}">
								<th>操作</th>
							</c:if>
						</tr>
					</thead>
					<tbody>
						<c:forEach items="${list}" var="u">
							<tr>
							    <td>${u.name }</td>
								<td>${u.sex }</td>
								<td>${u.classes }</td>
								<td>${u.time }</td>
								<td>${u.xy }</td>
								<%-- <td>
								<c:if test="${u.state == '1'}">
								  <span style="color:green">能</span>
								</c:if>
								
								<c:if test="${u.state == '2'}">
								  <span style="color:red">不能</span>
								</c:if>
                               </td> --%>
								<td>${u.phone }</td>
								<td>${u.pwd }</td>
								<td>${u.stno }</td>
								<c:if test="${flag == 1}">
								<td>  
									<input id ="${u.id}" value="${u.id}" type="hidden" class="weui-input"/>
								
								<a href="StudentServlet?action=toUpdateStudent&id=${u.id}" id="update"
									class="layui-btn layui-btn-sm layui-btn-norma"><i
										class="layui-icon">修改</i></a>
								 <a  href='javascript:void(0)' class="layui-btn layui-btn-sm layui-btn-danger"><i
										class="layui-icon">删除</i></a>
								<%-- <a href="StudentServlet?action=deleteStudent&id=${u.id}" id="delete"
									class="layui-btn layui-btn-sm layui-btn-danger"><i
										class="layui-icon">删除</i></a> --%>
										</td>
								</c:if> 
							</tr>
						</c:forEach>
					</tbody>
				</table>
               <div style="text-align: center">
					<div class="layui-btn-group">
						<a class="layui-btn layui-btn-primary"
							href="StudentServlet?action=studentList&p=1">首页</a>
						<%--        判断是否有上一页--%>
						<c:if test="${cp>1}">
							<a class="layui-btn layui-btn-primary"
								href="StudentServlet?action=studentList&p=${cp-1}">上一页</a>
						</c:if>
						<%--        循环显示页码--%>
						<c:forEach begin="${cp-2>1 ? (cp-2) :1}"
							end="${cp+2>tp?tp:(cp+2)}" var="e">
							<%--            判断是否是当前页--%>
							<c:if test="${cp==e}">
								<a class="layui-btn layui-btn-danger"
									href="StudentServlet?action=studentList&p=${e}">${e}</a>
							</c:if>
							<c:if test="${cp!=e}">
								<a class="layui-btn layui-btn-primary"
									href="StudentServlet?action=studentList&p=${e}">${e}</a>
							</c:if>
 
						</c:forEach>
 
						<%--        判断是否有下一页--%>
						<c:if test="${cp<tp}">
							<a class="layui-btn  layui-btn-primary"
								href="StudentServlet?action=studentList&p=${cp+1}">下一页</a>
						</c:if>
						<a class="layui-btn  layui-btn-primary"
							href="StudentServlet?action=studentList&p=${tp}">尾页</a> <a
							clss="layui-btn" href="StudentServlet?action=studentList&p=2">2</a>
						<a clss="layui-btn" href="StudentServlet?action=studentList&p=3">3</a>
						<a clss="layui-btn" href="StudentServlet?action=studentList&p=4">4</a>
					</div>
				</div>
 
			</div>
		</div>
	</div>
 
	<script src="layui/layui.js"></script>
<script src="layui/jquery-1.9.1.min.js"></script>
	<script type="application/javascript">
 
layui.use([ 'form','jquery','layer','laydate' ], function() {
	var form = layui.form,
	 layer = layui.layer,
	 laydate=layui.laydate,
	 $= layui.jquery;
	 form.render();//这句一定要加,占坑
	 
	 
	 $('a.layui-btn-danger').click(function(e){
	   		            var id = $(e.currentTarget).parent().find('.weui-input').attr('id');
				   		if(confirm("确定要删除吗?")){
				   		  $.post("StudentServlet?action=deleteStudent&id="+id, function(data) {
				   			   layer.msg('删除成功!',{icon:6,offset:"auto",time:2000},function(){
							    	document.location.reload();//当前页面
							    });
				   		   }); 
				   	}
	   		})
	 
	 laydate.render({
		    elem: '#time'
		    ,type: 'year'
	});
 
});
 
</script>
 
</body>
</html>

新增学生代码

点击新增按钮跳转addStudent.jsp页面,用户填写相关信息后提交代码到studentservlet里面,进行插入操作后返回页面,遍历展示信息

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<jsp:include page="/WEB-INF/common/form_header.jsp"/>
<body>
 
 
  <div class="layui-fluid">
    <div class="layui-row layui-col-space15">
      <div class="layui-col-md12">
        <div class="layui-card">
          <div class="layui-card-header">新增学生</div>
          <div class="layui-card-body">
             <form action="StudentServlet?action=addStudent" method="post" id="registerForm" name="registerForm" >
              <div class="layui-form-item">
                <label class="layui-form-label">姓名:</label>
                <div class="layui-input-inline">
				<input name="name" id="name" class="layui-input" /> 
				  <span id="msg3" style="color:red">${message}</span>
                </div>
              </div>
              
                <div class="layui-form-item">
                <label class="layui-form-label">学号:</label>
                <div class="layui-input-inline">
				<input name="stno" id="stno" class="layui-input" /> 
                </div>
              </div>
              
              <div class="layui-form-item">
	               <label class="layui-form-label">性别:</label>
	                    <select name="sex" id ="sex" style="width:13%;height:38px">
				        <option value="">请选择性别</option>
				        <option value="男">男</option>
				        <option value="女">女</option>
				      </select>
              </div>
              
              <div class="layui-form-item">
                <label class="layui-form-label">班级:</label>
                <div class="layui-input-inline">
				<input name="classes" id="classes" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">入学时间:</label>
                <div class="layui-input-inline">
				<input name="time" id="time" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">手机号:</label>
                <div class="layui-input-inline">
				<input name="phone" id="phone" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">登录密码:</label>
                <div class="layui-input-inline">
				<input name="pwd" id="pwd" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">学院:</label>
                <div class="layui-input-inline">
				<input name="xy" id="xy" class="layui-input" /> 
                </div>
              </div>
              
              
              <br>
                <div class="layui-form-item">
                <div class="layui-input-block">
                  <button class="layui-btn" type="submit" id="sub_btn">提交</button>
                  <a href="StudentServlet?action=studentList" class="layui-btn layui-btn-primary" >返回</a>
                </div>
              </div>  
              </form>
            </div>
            
          </div>
        </div>
      </div>
    </div>
		
 
<script src="layui/layui.js"></script>
<script src="layui/jquery-1.9.1.min.js"></script>
<script>
 
layui.use([ 'form','jquery','layer','laydate' ], function() {
	var form = layui.form,
	 layer = layui.layer,
	 laydate=layui.laydate,
	 $= layui.jquery;
	 form.render();//这句一定要加,占坑
	 
	 laydate.render({
		    elem: '#time'
		  });
	 
	 $(function () {
		    // 给注册绑定单击事件i
		    $("#sub_btn").click(function () {
		        var name = $("#name").val();
		        var sex = $("#sex").val();
		        var classes = $("#classes").val();
		        var time = $("#time").val();
		        var xy = $("#xy").val();
		        var phone = $("#phone").val();
		        var pwd = $("#pwd").val();
		        var stno = $("#stno").val();
		        if(sex == null || sex== ""){
		        	layer.msg('性别不能为空!');
		        	return false;
		        }
		        if(name == null || name== ""){
		        	layer.msg('姓名不能为空!');
		        	return false;
		        }
		        if(classes == null || classes== ""){
		        	layer.msg('班级不能为空!');
		        	return false;
		        }
		        if(time == null || time== ""){
		        	layer.msg('入学时间不能为空!');
		        	return false;
		        }
		        if(xy == null || xy== ""){
		        	layer.msg('学院不能为空!');
		        	return false;
		        }
		        if(phone == null || phone== ""){
		        	layer.msg('手机号不能为空!');
		        	return false;
		        }
		        if(pwd == null || pwd== ""){
		        	layer.msg('密码不能为空!');
		        	return false;
		        }
		        if(stno == null || stno== ""){
		        	layer.msg('学号不能为空!');
		        	return false;
		        }
		    });
		    setTimeout(function(){ $("#errorMsg").html("")},3000);
	});
	 setTimeout(function(){ $("#msg3").html("")},3000);
 
});
</script>
</body>
</html>

/**
	 * 新增学生信息
	 * @param request
	 * @param response
	 */
	private void addStudent(HttpServletRequest request,
			HttpServletResponse response) {
		String te = request.getParameter("te");
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		String classes = request.getParameter("classes");
		String time = request.getParameter("time");
		String xy = request.getParameter("xy");
		String phone = request.getParameter("phone");
		String pwd = request.getParameter("pwd");
		String stno = request.getParameter("stno");
		Student stu = new Student();
		stu.setClasses(classes);
		stu.setName(name);
		stu.setPhone(phone);
		stu.setPwd(pwd);
		stu.setSex(sex);
		stu.setState("1");
		stu.setStno(stno);
		stu.setTime(time);
		stu.setXy(xy);
		Student student = ss.selectStudentByPhone(phone);
		Student student1 = ss.selectStudentByStuNo(stno);
		if(te == null || te.equals("")){
			if(student != null){
				request.setAttribute("message", "电话号码重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/student/addStudent.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else if(student1 != null){
				request.setAttribute("message", "学号重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/student/addStudent.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else{
				try {
					ss.saveStudent(stu);
		 			response.sendRedirect(request.getContextPath()+"/StudentServlet?action=studentList");
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}else{
			if(student != null){
				request.setAttribute("message", "电话号码重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else if(student1 != null){
				request.setAttribute("message", "学号重复!");
				try {
					request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}else{
				try {
					ss.saveStudent(stu);
		 			response.sendRedirect(request.getContextPath()+"/LoginServlet?action=toLogin");
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}
		
	}

修改学生代码

页面点击修改按钮,跳转到修改的页面,用户修改制定内容后提交代码,执行action里面的servlet路径,serlvet执行相关代码后,返回到前端展示数据!!!!!

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<jsp:include page="/WEB-INF/common/form_header.jsp"/>
<body>
  <div class="layui-fluid">
    <div class="layui-row layui-col-space15">
      <div class="layui-col-md12">
        <div class="layui-card">
          <div class="layui-card-header">修改学生</div>
          <div class="layui-card-body">
             <form action="StudentServlet?action=updateStudent" method="post" id="registerForm" name="registerForm" >
              <input name="sid" id="sid" value="${student.id }" type="hidden" class="layui-input" /> 
              <div class="layui-form-item">
                <label class="layui-form-label">姓名:</label>
                <div class="layui-input-inline">
				<input name="name" id="name" value="${student.name }"  class="layui-input" /> 
				  <span id="msg3" style="color:red">${message}</span>
                </div>
              </div>
              
                <div class="layui-form-item">
                <label class="layui-form-label">学号:</label>
                <div class="layui-input-inline">
				<input name="stno" id="stno" value="${student.stno }" class="layui-input" /> 
                </div>
              </div>
              
              <div class="layui-form-item">
	               <label class="layui-form-label">性别:</label>
	                    <select name="sex" id ="sex" style="width:13%;height:38px">
				        <option value="">请选择性别</option>
				        <c:if test="${student.sex == '男' }">
					         <option value="男" selected>男</option>
					        <option value="女">女</option>
				        </c:if>
				       <c:if test="${student.sex == '女' }">
					         <option value="男" >男</option>
					        <option value="女" selected>女</option>
				        </c:if>
				      </select>
              </div>
              
              <div class="layui-form-item">
                <label class="layui-form-label">班级:</label>
                <div class="layui-input-inline">
				<input name="classes" id="classes" value="${student.classes }" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">学院:</label>
                <div class="layui-input-inline">
				<input name="xy" id="xy" value="${student.xy }" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">入学时间:</label>
                <div class="layui-input-inline">
				<input name="time" id="time" value="${student.time }" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">手机号:</label>
                <div class="layui-input-inline">
				<input name="phone" id="phone" value="${student.phone }" class="layui-input" /> 
                </div>
              </div>
              
               <div class="layui-form-item">
                <label class="layui-form-label">登录密码:</label>
                <div class="layui-input-inline">
				<input name="pwd" id="pwd" value="${student.pwd }" class="layui-input" /> 
                </div>
              </div>
              
              <br>
                <div class="layui-form-item">
                <div class="layui-input-block">
                  <button class="layui-btn" type="submit" id="sub_btn">提交</button>
                  <c:if test="${flag == 1 }">
                    <a href="StudentServlet?action=studentList" class="layui-btn layui-btn-primary" >返回</a>
                  </c:if>
                  <c:if test="${flag == 2 }">
                     <a href="StudentServlet?action=toUpdateStudent&id=${student.id }" class="layui-btn layui-btn-primary" >重置</a>
                  </c:if>
                 
                </div>
              </div>  
              </form>
            </div>
            
          </div>
        </div>
      </div>
    </div>
		
 
<script src="layui/layui.js"></script>
<script src="layui/jquery-1.9.1.min.js"></script>
<script>
 
layui.use([ 'form','jquery','layer','laydate' ], function() {
	var form = layui.form,
	 layer = layui.layer,
	 laydate=layui.laydate,
	 $= layui.jquery;
	 form.render();//这句一定要加,占坑
	 
	 laydate.render({
		    elem: '#time'
		  });
	 
	 $(function () {
		    // 给注册绑定单击事件
		      $("#sub_btn").click(function () {
		        var name = $("#name").val();
		        var sex = $("#sex").val();
		        var classes = $("#classes").val();
		        var time = $("#time").val();
		        var xy = $("#xy").val();
		        var phone = $("#phone").val();
		        var pwd = $("#pwd").val();
		        var stno = $("#stno").val();
		        if(sex == null || sex== ""){
		        	layer.msg('性别不能为空!');
		        	return false;
		        }
		        if(name == null || name== ""){
		        	layer.msg('姓名不能为空!');
		        	return false;
		        }
		        if(classes == null || classes== ""){
		        	layer.msg('班级不能为空!');
		        	return false;
		        }
		        if(time == null || time== ""){
		        	layer.msg('入学时间不能为空!');
		        	return false;
		        }
		        if(xy == null || xy== ""){
		        	layer.msg('学院不能为空!');
		        	return false;
		        }
		        if(phone == null || phone== ""){
		        	layer.msg('手机号不能为空!');
		        	return false;
		        }
		        if(pwd == null || pwd== ""){
		        	layer.msg('密码不能为空!');
		        	return false;
		        }
		        if(stno == null || stno== ""){
		        	layer.msg('学号不能为空!');
		        	return false;
		        }
		    });
		    setTimeout(function(){ $("#errorMsg").html("")},3000);
	});
	 setTimeout(function(){ $("#msg3").html("")},3000);
 
});
</script>
</body>
</html>

 
	/**
	 * 修改学生信息
	 * @param request
	 * @param response
	 */
	private void updateStudent(HttpServletRequest request,
			HttpServletResponse response) {
		Object flag = request.getSession().getAttribute("flag");
		String sid = request.getParameter("sid");
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		String classes = request.getParameter("classes");
		String time = request.getParameter("time");
		String xy = request.getParameter("xy");
		String phone = request.getParameter("phone");
		String pwd = request.getParameter("pwd");
		String stno = request.getParameter("stno");
		Student stu = new Student();
		stu.setClasses(classes);
		stu.setName(name);
		stu.setPhone(phone);
		stu.setPwd(pwd);
		stu.setSex(sex);
		stu.setStno(stno);
		stu.setTime(time);
		stu.setXy(xy);
		stu.setId(Integer.parseInt(sid));
		try {
			ss.updateStudent(stu);
			if(flag != null && flag.toString().equals("1")){
				response.sendRedirect(request.getContextPath()+"/StudentServlet?action=studentList");
			}else{
				response.sendRedirect(request.getContextPath()+"/StudentServlet?action=toUpdateStudent&id="+sid);
			}
 			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/301204.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python综合数据分析_根据订单求RFM值

文章目录 0.导入数据1.数据可视化2.数据清洗3.特征工程4.构建User用户表5.求R值6.求F值7.求M值 0.导入数据 import pandas as pd #导入Pandas df_sales pd.read_csv(订单.csv) #载入数据 df_sales.head() #显示头几行数据 1.数据可视化 import matplotlib.pyplot as plt #导…

Linux链接的创建,删除,修改

目录 1. 概述2. 硬链接2.1 创建硬链接2.2 删除硬链接 3. 软链接3.1 创建软链接3.2 删除软链接 5. 常用的终端工具下载 计算机基础–Linux详解 1. 概述 在Linux系统中&#xff0c;链接是一种文件系统中的重要概念。链接允许用户在文件系统中创建指向另一个文件的引用&#xff0c…

2024年HCIE认证有什么用?华为HCIE好考吗?

随着信息技术的迅速发展&#xff0c;网络工程师的需求越来越高&#xff0c;而HCIE作为华为认证体系中的最高级别认证&#xff0c;备受从业者关注。本文将深入研究2024年HCIE认证的价值、考试难度以及报名费用等方面的信息。 2024年HCIE认证有什么用? 新的一年即将到来&#x…

Java学习,一文掌握Java之SpringBoot框架学习文集(5)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

NGINX 配置本地HTTPS(免费证书)

生成秘钥key,运行: $ openssl genrsa -des3 -out server.key 2048 会有两次要求输入密码,输入同一个即可。输入密码然后你就获得了一个server.key文件。 以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令: $ op…

2023全球软件研发技术大会(SDCon2023)-核心PPT资料下载

一、峰会简介 本次峰会包含12大会议主题&#xff1a;云原生设施与平台、微服务架构实践、软件质量与效能、大数据实践与前沿、架构设计与演进、高可用与高性能架构、Web与大前端开发、编程语言与平台、AIGC与大模型、推荐系统实践、AI智能应用与研究、机器学习架构实践。 软件…

一款好用的漏洞扫描工具

APIDetector 是一款强大而高效的工具&#xff0c;旨在测试各个子域中公开的 Swagger 端点&#xff0c;并具有独特的智能功能来检测误报。对于从事 API 测试和漏洞扫描的安全专业人员和开发人员来说特别有用。 功能&#xff1a; 灵活输入&#xff1a;接受文件中的单个域或子域列…

【JaveWeb教程】(7)Web前端基础:Vue组件库Element介绍与快速入门程序编写并运行 示例

目录 Element介绍快速入门示例 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主…

2024 年 API 安全:预测和趋势

随着技术以前所未有的速度不断进步&#xff0c;API&#xff08;应用程序编程接口&#xff09;安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增&#xff0c;组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年&#xff0c;预计几个关键…

多线程-互斥锁

从写互斥锁 #include <myhead.h>char buf[128]; //临界资源//1.创建互斥锁 pthread_mutex_t mutex;//定义分支线程 void *task(void *arg) {while(1){//2.获取锁资源pthread_mutex_lock(&mutex);printf("分支线程中:buf %s\n",buf);strcpy(buf,"l…

OpenShift 4 - 在 Jupyter Notebook 中使用 Elyra 执行 AI 处理流水线

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 RHODS 2.50 的环境中验证 说明&#xff1a;请先根据《OpenShift 4 - 管理和使用 OpenShift AI 运行环境》一文完成 MinIO 的安装。 注意&#xff1a;如无特殊说明&#xff0c;和 OpenS…

WWDG---窗口看门狗

一.简介 窗口看门狗跟独立看门狗一样&#xff0c;也是一个递减计数器不断的往下递减计数&#xff0c;必须在一个窗口的上限值&#xff08;用户定义&#xff09;和下限值&#xff08;0X40&#xff0c;固定不能变&#xff09;之间喂狗不会复位&#xff0c;在上限值之前和下限值之…

LabVIEW开发自动光学焊点检测系统

LabVIEW开发自动光学焊点检测系统 LabVIEW于开发了一个自动光学焊点检测系统&#xff0c;旨在提高电子元件焊接的质量和效率。通过利用LabVIEW的高级视觉开发模块&#xff0c;该系统能够准确地识别和分类电路板上的不同焊点类型&#xff0c;如桥接、虚焊、漏焊和多锡。这一进步…

<软考高项备考>《论文专题 - 53 进度管理(4) 》

6 过程5-制定进度计划 6.1 问题 4W1H过程做什么分析活动顺序、持续时间、资源需求和进度制约因素&#xff0c;创建进度模型&#xff0c;从而落实项目执行和监控的过程作用&#xff1a;为完成项目活动而制定具有计划日期的进度模型为什么做为项目制定衡量项目的进度标尺谁来做…

PCL 大地坐标转空间直角坐标(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、算法原理 二、代码实现 头文件及读取保存函数见:PCL 空间直角坐标转大地坐标(直接求解法C…

如何制作活动报名收集系统,支持填表者单选、多选

发布者制作填表信息时&#xff0c;有些信息希望让用户直接选择&#xff0c;能够节省不必要的填写时间。 易查分【无需条件填表】以及【可修改列】功能可以制作支持9种填表类型的信息收集系统&#xff0c;本次就来介绍如何使用此功能。 &#x1f4cc;使用教程 &#x1f4d6;案例…

Win11怎么重置系统?(小白专享篇)

话不多说&#xff0c;直接上干货 重置Windows 11系统的步骤如下&#xff1a; 1.同时按下【Windowsi】键打开系统设置。 2.在当前页面下拉选择【系统】-【恢复】。 3.点击重置此电脑下的【初始化电脑】。 4.点击【删除所有内容】。 5.选择删除所有内容后&#xff0c;继续选…

结算时间和可组合性助力Sui上DeFi蓬勃发展

结算时间是基于Sui交易处理模型的度量标准&#xff0c;确保DeFi用户几乎立即看到交易结果。可组合性则是深深融入Sui的编程环境&#xff0c;扩展了其对对象和智能合约的影响。Sui深度的可组合性赋予DeFi构建者引入创新产品的能力&#xff0c;使其在其他区块链上的DeFi应用中独树…

24 主题切换

效果演示 实现了一个主题切换功能&#xff0c;当用户点击主题切换按钮时&#xff0c;背景颜色和文字颜色会随之改变&#xff0c;同时主体内容的背景颜色会从暗色变为浅色&#xff0c;文字颜色会从黑色变为白色。当用户再次点击主题切换按钮时&#xff0c;背景颜色和文字颜色会再…

SpringMVC源码解析——HTTP请求处理

在SpringMVC源码解析——DispatcherServlet的逻辑处理中&#xff0c;最后介绍到了org.springframework.web.servlet.DispatcherServlet的doDispatch方法中关于处理Web HTTP请求的核心代码是调用AbstractHandlerMethodAdapter类的handle方法&#xff0c;源码如下&#xff1a; /*…