MVC模式——学生信息管理系统升级版

本文档详细记录了使用MVC模式构建的学生信息管理系统升级版的开发过程,涵盖了Model、View、Servlet、Service、Dao各层的设计与实现。包括封装学生对象、分页对象、Servlet处理各种操作,如显示所有学生、添加、删除、更新和查询信息,以及分页显示。同时,还涉及到JDBCUtil、TextUtil工具类和c3p0数据库连接池的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习记录贴(三)学生信息管理系统Plus

  • 使用工具Navicat、Eclipse、Firefox

MVC模式

  • M:model —— 模型层 , 用于封装数据
  • V: view —— 视图层 , 用于显示
  • C:controller —— 控制层 , 用于接收页面请求
  • servlet层要调用service层,service层再调用Dao层

数据库

在这里插入图片描述

一、Model层

1、封装学生对象Student

package zjb.domain;

import java.util.Date;

//这是封装的学生对象bean
public class Student {
   
   
	private int id ;
	private String name ;
	private String sex ;
	private String tel ;
	private Date birthday ;
	private String hobby ;
	private String info ;
	
	public Student() {
   
   
		super();
		// TODO 自动生成的构造函数存根
	}

	public Student( int id, String name, String sex, String tel, Date birthday, String hobby, String info) {
   
   
		super();
		this.id = id;
		this.name = name;
		this.sex = sex;
		this.tel = tel;
		this.birthday = birthday;
		this.hobby = hobby;
		this.info = info;
	}
	
	public Student( String name, String sex, String tel, Date birthday, String hobby, String info) {
   
   
		super();
		this.name = name;
		this.sex = sex;
		this.tel = tel;
		this.birthday = birthday;
		this.hobby = hobby;
		this.info = info;
	}
	
	public int getId() {
   
   
		return id;
	}
	public void setId(int id) {
   
   
		this.id = id;
	}
	public String getName() {
   
   
		return name;
	}
	public void setName(String name) {
   
   
		this.name = name;
	}
	public String getSex() {
   
   
		return sex;
	}
	public void setSex(String sex) {
   
   
		this.sex = sex;
	}
	public String getTel() {
   
   
		return tel;
	}
	public void setTel(String tel) {
   
   
		this.tel = tel;
	}
	public Date getBirthday() {
   
   
		return birthday;
	}
	public void setBirthday(Date birthday) {
   
   
		this.birthday = birthday;
	}
	public String getHobby() {
   
   
		return hobby;
	}
	public void setHobby(String hobby) {
   
   
		this.hobby = hobby;
	}
	public String getInfo() {
   
   
		return info;
	}
	public void setInfo(String info) {
   
   
		this.info = info;
	}

	@Override
	public String toString() {
   
   
		return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", tel=" + tel + ", birthday=" + birthday
				+ ", hobby=" + hobby + ", info=" + info + "]";
	}
}

2、封装分页对象Page

package zjb.domain;

import java.util.List;

//用于封装分页信息
public class Page<T> {
   
   
	private int CurrentPage; //当前页码,也就是当前页是第几页
	private int TotalPage; //总页数,也就是一共有多少页
	private int TotalSize; //总记录数,也就是一共有多少个学生信息
	private int PageSize; //每页显示多少个学生信息
	private List<T> list; //当前页显示的学生信息集合
	public int getCurrentPage() {
   
   
		return CurrentPage;
	}
	public void setCurrentPage(int currentPage) {
   
   
		CurrentPage = currentPage;
	}

	public int getTotalPage() {
   
   
		return TotalPage;
	}
	public void setTotalPage(int totalPage) {
   
   
		TotalPage = totalPage;
	}
	public int getTotalSize() {
   
   
		return TotalSize;
	}
	public void setTotalSize(int totalSize) {
   
   
		TotalSize = totalSize;
	}
	public int getPageSize() {
   
   
		return PageSize;
	}
	public void setPageSize(int pageSize) {
   
   
		PageSize = pageSize;
	}
	public List<T> getList() {
   
   
		return list;
	}
	public void setList(List<T> list) {
   
   
		this.list = list;
	}
}

二、View层

1、首页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息管理系统首页</title>
</head>
<body>
	<h3><a href="AllStudentServlet">显示所有学生信息</a></h3>
	<h3><a href="StudentPageServlet?CurrentPage=1">分页显示学生信息</a></h3>
</body>
</html>

2、显示所有学生信息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>所有学生信息</title>

<script type="text/javascript">
	function Delete(id){
		var flag = confirm("是否确定删除?");
		if(flag){
			//window.location.href="DeleteServlet?id="+id;
			location.href="DeleteServlet?id="+id;
		}
	}
</script>

</head>
<body>
<form action="SearchServlet" method="post">
<table border="1" width="700">
		
			<tr >
				<td colspan="8">
					
					按姓名查询:<input type="text" name="name"/>
					&nbsp;
					按性别查询:<select name="sex">
								<option value="">--请选择--
								<option value="男">男
								<option value="女">女
							  </select>
					&nbsp;&nbsp;&nbsp;
					<input type="submit" value="查询">
					&nbsp;&nbsp;&nbsp;
					<a href="add.jsp">添加</a>
				</td>
			</tr>
		
		  <tr align="center">
			<td>编号</td>
			<td>姓名</td>
			<td>性别</td>
			<td>电话</td>
			<td>生日</td>
			<td>爱好</td>
			<td>简介</td>
			<td>操作</td>
		  </tr>
		  
			  <c:forEach items="${list }" var="student">
				  <tr align="center">
					<td>${student.id }</td>
					<td>${student.name }</td>
					<td>${student.sex }</td>
					<td>${student.tel }</td>
					<td>${student.birthday }</td>
					<td>${student.hobby }</td>
					<td>${student.info }</td>
					<td><a href="UpdateServlet?id=${student.id }">更新</a>   <a href="#" "Delete(${student.id})">删除</a></td>
				  </tr>
			  </c:forEach>
		  </table>
</form>
</body>
</html>

3、添加学生信息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生信息页面</title>
</head>
<body>
<form method="post" action="AddStudentServlet">
	  <table border="1" width="600">
  <tr>
	<td>姓名</td>
	<td><input type="text" name="name"></td>
  </tr>
  <tr>
	<td>性别</td>
	<td>
		<input type="radio" name="sex" value="男">男
		<input type="radio" name="sex" value="女">女
	</td>
  </tr>
  <tr>
	<td>电话</td>
	<td><input type="text" name="tel"></td>
  </tr>
  <tr>
	<td>生日</td>
	<td><input type="text" name="birthday"></td>
  </tr>
  <tr>
	<td>爱好</td>
	<td>
		<input type="checkbox" name="hobby" value="游泳">游泳
		<input type="checkbox" name="hobby" value="篮球">篮球
		<input type="checkbox" name="hobby" value="足球">足球
		<input type="checkbox" name="hobby" value="看书">看书
		<input type="checkbox" name="hobby" value="写字">写字
	
	</td>
  </tr>
  <tr>
	<td>简介</td>
	<td><textarea name="info" rows="3" cols="20"></textarea></td>
  </tr>
  <tr>
	<td colspan="2"> <input type="submit" value="添加"> </td>
  </tr>
  </table>
    </form>
</body>
</html>

4、更新学生信息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>更新学生信息页面</title>
</head>
<body>
<form method="post" action="AfterUpdateServlet">
	<input type="hidden" name="id" value="${student.id }">
	  <table border="1" width="600">
  <tr>
	<td>姓名</td>
	<td><input type="text" name="name" value="${student.name }"></td>
  </tr>
  <tr>
	<td>性别</td>
	<td>
		<input type="radio" name="sex" value="男" <c:if test="${student.sex =='男'}">checked</c:if> >男
		<input type="radio" name="sex" value="女" <c:if test="${student.sex =='女'}">checked</c:if> >女
	</td>
  </tr>
  <tr>
	<td>电话</td>
	<td><input type="text" name="tel" value="${student.tel }"></td>
  </tr>
  <tr>
	<td>生日</td>
	<td><input type="text" name="birthday" value="${student.birthday }"></td>
  </tr>
  <tr>
	<td>爱好</td>
	<td>
		<input type="checkbox" name="hobby" value="游泳" <c:if test="${fn:contains(student.hobby,'游泳') }">checked</c:if>>游泳
		<input type="checkbox" name="hobby" value="篮球" <c:if test="${fn:contains(student.hobby,'篮球') }">checked</c:if>>篮球
		<input type="checkbox" name="hobby" value="足球" <c:if test="${fn:contains(student.hobby,'足球') }">checked</c:if>>足球
		<input type="checkbox" name="hobby" value="看书" <c:if test="${fn:contains(student.hobby,'看书') }">checked</c:if>>看书
		<input type="checkbox" name="hobby" value="写字" <c:if test="${fn:contains(student.hobby,'写字') }">checked</c:if>>写字
	
	</td>
  </tr>
  <tr>
	<td>简介</td>
  	<td><input type="text" name="info" value="${student.info }"></td>
  </tr>
  <tr>
	<td colspan="2"> <input type="submit" value="更新"> </td>
  </tr>
  </table>
    </form>
</body>
</html>

5、分页显示学生信息页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>所有学生列表</title>

<script type="text/javascript">
	function Delete(id){
		var flag = confirm("是否确定删除?");
		if(flag){
			//window.location.href="DeleteServlet?id="+id;
			location.href="DeleteServlet?id="+id;
		}
	}
</script>

</head>
<body>
<form action="SearchServlet" method="post">
<table border="1" width="700">
		
			<tr >
				<td colspan="8">
					
					按姓名查询:<input type="text" name="name"/>
					&nbsp;
					按性别查询:<select name="sex">
								<option value="">--请选择--
								<option value="男">男
								<option value="女">女
							  </select>
					&nbsp;&nbsp;&nbsp;
					<input type="submit" value="查询">
					&nbsp;&nbsp;&nbsp;
					<a href="add.jsp">添加</a>
				</td>
			</tr>
		
		  <tr align="center">
			<td>编号</td>
			<td>姓名</td>
			<td>性别</td>
			<td>电话</td>
			<td>生日</td>
			<td>爱好</td>
			<td>简介</td>
			<td>操作</td>
		  </tr>
		  
			  <c:forEach items="${Page.list }" var="student">
				  <tr align="center">
					<td>${student.id }</td>
					<td>${student.name }</td>
					<td>${student.sex }</td>
					<td>${student.tel }</td>
					<td>${student.birthday }</td>
					<td>${student.hobby }</td>
					<td>${student.info }</td>
					<td><a href="UpdateServlet?id=${student.id }">更新</a>   <a href="#" "Delete(${student.id})">删除</a></td>
				  </tr>
			  </c:forEach>
			  
			  <tr>
			  	<td colspan="8">
			  		第 ${Page.currentPage } / ${Page.totalPage }
			  		&nbsp;&nbsp;
			  		每页显示${Page.pageSize }条  &nbsp;&nbsp;&nbsp;
			  		总的记录数${Page.totalSize } &nbsp;&nbsp;&nbsp;
			  		<c:if test="${Page.currentPage !=1 }">
			  			<a href="StudentPageServlet?CurrentPage=1">首页</a>
						| <a href="StudentPageServlet?CurrentPage=${Page.currentPage-1 }">上一页</a>
			  		</c:if>
			  		
			  		<c:forEach begin="1" end="${Page.totalPage }" var="i">
			  			<c:if test="${Page.currentPage == i }">
			  				${i }
			  			</c:if>
			  			<c:if test="${Page.currentPage != i }">
			  				<a href="StudentPageServlet?CurrentPage=${i }">${i }</a>
			  			</c:if>
			  		
			  		</c:forEach>
			  		
			  		
			  		<c:if test="${Page.currentPage !=Page.totalPage }">
			  			<a href="StudentPageServlet?CurrentPage=${Page.currentPage+1 }">下一页</a> | 
			  			<a href="StudentPageServlet?CurrentPage=${Page.totalPage }">尾页</a>
			  		</c:if>
			  	</td>
			  </tr>
		  
		  </table>
</form>
</body>
</html>


三、Servlet层

1、显示所有学生信息的AllStudentServlet

package zjb.servlet;
//查询所有学生信息输出给AllStudentList.jsp
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.Serv
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值