目錄
??1 前言
1.1?項目所需要的知識
1.2?開發(fā)項目的環(huán)境和工具
??2 系統(tǒng)結(jié)構(gòu)
2.1系統(tǒng)流程圖(E-R圖)
2.2配置pom.xml
??3 程序設(shè)計及運(yùn)行
3.1添加課程信息
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
3.2學(xué)生已修課程
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
3.3添加教師信息
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
3.4添加學(xué)生信息
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
3.5修改學(xué)生信息
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
3.6用戶登入頁面
(1)功能描述
(2)實(shí)現(xiàn)代碼
(3)實(shí)現(xiàn)截圖
心得體會
??1 前言
本文教務(wù)信息管理系統(tǒng)于2022年3月12日——2022年5月17日開發(fā)完畢,總歷時兩個多月。論文答辯也已近順利進(jìn)行,接下來就期待一個好成績。感謝CSDN提供的技術(shù)交流平臺,在做該項目的時候經(jīng)常遇到一些棘手的bug,不能經(jīng)常問老師(我害怕把老師問煩了,畢竟他可以教我,也可以不教我,老是麻煩老師,也覺得不好意思的),所以大多數(shù)都在網(wǎng)上搜尋解決措施,很高興有一部分bug能在CSDN平臺上找到對應(yīng)的解決辦法。我有強(qiáng)迫癥,看到有bug我就想消除它,不消除就不睡覺,有一段時間一連好幾天通宵到天亮,頭發(fā)掉了很多,只是因為看bug不爽。笑死,哪個程序員都不想看到bug,關(guān)鍵一個bug被我弄的變成了10個,20個,30個.......我直接當(dāng)初氣哭o(╥﹏╥)o啊嘞,先不閑聊了,我要抓緊往下面寫了,歡迎有不懂的小伙伴評論、留意、私信,我們一起學(xué)習(xí),一起進(jìn)步。
本項目參考書籍《Java EE入門到實(shí)戰(zhàn)》主編為孫濱、李戀、陳強(qiáng)。出版社為:哈爾濱工程大學(xué)出版社。
1.1?項目所需要的知識
后端知識:Spring+SpringMVC+Mybatis(SSM)
(1)Spring:Spring是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面編程(AOP)的開源框架。
(2)SpringMVC:Spring MVC是Spring Framework中的一個模塊,是 Spring Framework 在Web領(lǐng)域?qū)崿F(xiàn) MVC設(shè)計模式的具體方案,主要是基于DispatcherServer的前端路由處理和ViewResolver視圖解析器來簡化開發(fā)者的工作效率。
(3)Mybatis:mybatis是一個用Java編寫的持久層框架,使用ORM實(shí)現(xiàn)了結(jié)果集的封裝。
數(shù)據(jù)庫:MySQL
MySQL:MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
Spring學(xué)習(xí)筆記(1):了解Spring_她與劍意皆失的博客-CSDN博客??目錄??Spring簡介:??Spring常用框架:??Spring Framework??SpringMVC??SpringBoot??SpringCloud??SpringData??MongoDB??Spring系統(tǒng)架構(gòu):??(1)核心層?? (2)AOP層 ??(3)數(shù)據(jù)層?? (4)Web層?? (5)Test層??IOC、IOC容器、Bean、DI??1. IOC(Inversion of Control)控制反轉(zhuǎn)??2. DI(Dependency ...https://blog.csdn.net/long_0901/article/details/124534654
1.2?開發(fā)項目的環(huán)境和工具
Spring、SpringMVC、Mybatis、MySQL、jdk1.8、Tomcat8.5、Maven、IntelliJ IDEA 2022.1
??2 系統(tǒng)結(jié)構(gòu)
2.1系統(tǒng)流程圖(E-R圖)
?
?E-R圖是我最討厭畫的圖之一,畫的不好看,丑死了
?
?
?
?
?
?
?
2.2配置pom.xml
由于教務(wù)信息管理系統(tǒng)是基于SSM框架開發(fā),導(dǎo)入下載一些包是不可避免的,下面是我配置的pom.xml,可供大家參考學(xué)習(xí)。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaohuo</groupId>
<artifactId>EduMessage</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.4.Final</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.19</version>
</dependency>
<!-- servletAPI-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- shiro依賴-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.9.0</version>
</dependency>
<!-- spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.19</version>
</dependency>
<!-- springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.19</version>
</dependency>
<!-- springMVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.19</version>
</dependency>
<!-- spring tx事務(wù)處理-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.19</version>
</dependency>
<!-- spring aop-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.19</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.9.1</version>
</dependency>
<!-- spring- jdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.19</version>
</dependency>
<!-- jstl-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!-- mybatis逆向工程-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.1</version>
</dependency>
<!-- mybatis spring 整合包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!-- hibernate 數(shù)據(jù)校驗器-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.4.Final</version>
</dependency>
<!-- c3p0鏈接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!-- Mysql數(shù)據(jù)庫驅(qū)動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations-java5</artifactId>
<version>22.0.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.5.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.7</version>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
<configuration>
<!--允許移動生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆蓋 -->
<overwrite>true</overwrite>
<!-- 自動生成的配置 -->
<configurationFile>
src/main/resources/generatorConfig.xml
</configurationFile>
</configuration>
</plugin>
</plugins>
</build>
</project>
??3 程序設(shè)計及運(yùn)行
3.1添加課程信息
(1)功能描述
該功能可以實(shí)現(xiàn)對課程信息中的課程號、課程名稱、授課老師編號、上課時間、周數(shù)、課程類型、學(xué)分的添加。
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
<!-- 引入JQuery bootstrap.js-->
<script src="<c:url value="js/jquery-3.2.1.min.js"/>"></script>
<script src="<c:url value="/js/bootstrap.min.js"/>"></script>
</head>
<body>
<!-- 頂欄 -->
<jsp:include page="top.jsp"></jsp:include>
<!-- 中間主體 -->
<div class="container" id="content">
<div class="row">
<jsp:include page="menu.jsp"></jsp:include>
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<h1 style="text-align: center;">添加課程信息</h1>
</div>
</div>
<div class="panel-body">
<form class="form-horizontal" role="form" action="../admin/addCourse" id="editfrom" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">課程號</label>
<div class="col-sm-10">
<input type="number" class="form-control" id="inputEmail3" name="courseid" placeholder="請輸入課程號">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">課程名稱</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputPassword3" name="coursename" placeholder="請輸入課程名稱">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">授課老師編號</label>
<div class="col-sm-10">
<select class="form-control" name="teacherid">
<c:forEach items="${teacherList}" var="item">
<option value="${item.userid}">${item.username}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">上課時間</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="coursetime" placeholder="請輸入上課時間">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">上課地點(diǎn)</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="classroom" placeholder="上課地點(diǎn)">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">周數(shù)</label>
<div class="col-sm-10">
<input type="number" class="form-control" name="courseweek" placeholder="請輸入周數(shù)">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="coursetype">課程的類型:</label>
<div class="col-sm-10">
<select class="form-control" name="coursetype">
<option value="必修課">必修課</option>
<option value="選修課">選修課</option>
<option value="公共課">公共課</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">所屬院系</label>
<div class="col-sm-10">
<select class="form-control" name="collegeid">
<c:forEach items="${collegeList}" var="item">
<option value="${item.collegeid}">${item.collegename}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">學(xué)分:</label>
<div class="col-sm-10">
<input type="number" class="form-control" name="score" placeholder="請輸入學(xué)分">
</div>
</div>
<div class="form-group" style="text-align: center">
<button class="btn btn-default" type="submit">提交</button>
<button class="btn btn-default" type="reset">重置</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="container" id="footer">
<div class="row">
<div class="col-md-12"></div>
</div>
</div>
</body>
<script type="text/javascript">
$("#nav li:nth-child(1)").addClass("active")
</script>
</html>
(3)實(shí)現(xiàn)截圖
3.2學(xué)生已修課程
(1)功能描述
該功能可以看到學(xué)生本人自身已經(jīng)選修過了的課程,學(xué)生可以清楚的看到自己已經(jīng)選修的課程號、課程名稱、授課老師編號、上課時間、周數(shù)、課程類型、學(xué)分、以及考試成績。
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<title>課程信息顯示</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
<!-- 引入JQuery bootstrap.js-->
<script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
<script src="<c:url value="/js/bootstrap.min.js"/>"></script>
<%--<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">--%>
</head>
<body>
<!-- 頂欄 -->
<jsp:include page="top.jsp"></jsp:include>
<!-- 中間主體 -->
<div class="container" id="content">
<div class="row">
<jsp:include page="menu.jsp"></jsp:include>
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<h1 class="col-md-5">已修課程</h1>
</div>
</div>
<table class="table table-bordered">
<thead>
<tr>
<th>課程號</th>
<th>課程名稱</th>
<th>授課老師編號</th>
<th>上課時間</th>
<th>上課地點(diǎn)</th>
<th>周數(shù)</th>
<th>課程類型</th>
<th>學(xué)分</th>
<th>成績</th>
</tr>
</thead>
<tbody>
<c:forEach items="${selectedCourseList}" var="item">
<%--輸出已修完的課程--%>
<c:if test="${item.over}">
<tr>
<td>${item.couseCustom.courseid}</td>
<td>${item.couseCustom.coursename}</td>
<td>${item.couseCustom.teacherid}</td>
<td>${item.couseCustom.coursetime}</td>
<td>${item.couseCustom.classroom}</td>
<td>${item.couseCustom.courseweek}</td>
<td>${item.couseCustom.coursetype}</td>
<td>${item.couseCustom.score}</td>
<td style="color: red">${item.mark}</td>
</tr>
</c:if>
</c:forEach>
</tbody>
</table>
<div class="panel-footer">
<c:if test="${pagingVO != null}">
<nav style="text-align: center">
<ul class="pagination">
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.upPageNo}"/>">«上一頁</a></li>
<li class="active"><a href="">${pagingVO.curentPageNo}</a></li>
<c:if test="${pagingVO.curentPageNo+1 <= pagingVO.totalCount}">
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+1}"/>">${pagingVO.curentPageNo+1}</a></li>
</c:if>
<c:if test="${pagingVO.curentPageNo+2 <= pagingVO.totalCount}">
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+2}"/>">${pagingVO.curentPageNo+2}</a></li>
</c:if>
<c:if test="${pagingVO.curentPageNo+3 <= pagingVO.totalCount}">
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+3}"/>">${pagingVO.curentPageNo+3}</a></li>
</c:if>
<c:if test="${pagingVO.curentPageNo+4 <= pagingVO.totalCount}">
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+4}"/>">${pagingVO.curentPageNo+4}</a></li>
</c:if>
<li><a href="<c:url value="/student/showCourse?page=${pagingVO.totalCount}"/>">最后一頁»</a></li>
</ul>
</nav>
</c:if>
</div>
</div>
</div>
</div>
</div>
<div class="container" id="footer">
<div class="row">
<div class="col-md-12"></div>
</div>
</div>
</body>
<script type="text/javascript">
<%--設(shè)置菜單中--%>
$("#nav li:nth-child(3)").addClass("active")
<c:if test="${pagingVO != null}">
if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {
$(".pagination li:last-child").addClass("disabled")
};
if (${pagingVO.curentPageNo} == ${1}) {
$(".pagination li:nth-child(1)").addClass("disabled")
};
</c:if>
function confirmd() {
var msg = "您真的確定要刪除嗎?!";
if (confirm(msg)==true){
return true;
}else{
return false;
}
}
$("#sub").click(function () {
$("#form1").submit();
});
</script>
</html>
(3)實(shí)現(xiàn)截圖
3.3添加教師信息
(1)功能描述
該功能可以實(shí)現(xiàn)對教師信息中的工號、姓名、性別、出生年份、學(xué)歷、職稱、入職時間、所屬院系的添加。
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
<!-- 引入JQuery bootstrap.js-->
<script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
<script src="<c:url value="/js/bootstrap.min.js"/>"></script>
</head>
<body>
<!-- 頂欄 -->
<jsp:include page="top.jsp"></jsp:include>
<!-- 中間主體 -->
<div class="container" id="content">
<div class="row">
<jsp:include page="menu.jsp"></jsp:include>
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<h1 style="text-align: center;">添加教師信息</h1>
</div>
</div>
<div class="panel-body">
<form class="form-horizontal" role="form" action="../admin/addTeacher" id="editfrom" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">工號</label>
<div class="col-sm-10">
<input type="number" class="form-control" id="inputEmail3" name="userid" placeholder="請輸入學(xué)號">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputPassword3" name="username" placeholder="請輸入姓名">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">性別</label>
<div class="col-sm-10">
<label class="checkbox-inline">
<input type="radio" name="sex" value="男" checked>男
</label>
<label class="checkbox-inline">
<input type="radio" name="sex" value="女">女
</label>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
<div class="col-sm-10">
<input type="date" value="1996-09-02" name="birthyear"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="degree">學(xué)歷:</label>
<div class="col-sm-10">
<select class="form-control" name="degree">
<option value="本科">本科</option>
<option value="碩士">碩士</option>
<option value="博士">博士</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="title">職稱:</label>
<div class="col-sm-10">
<select class="form-control" name="title">
<option value="普通教師">普通教師</option>
<option value="助教">助教</option>
<option value="講師">講師</option>
<option value="副教授">副教授</option>
<option value="教授">教授</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">入職時間</label>
<div class="col-sm-10">
<input type="date" value="2015-09-02" name="grade"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">所屬院系</label>
<div class="col-sm-10">
<select class="form-control" name="collegeid">
<c:forEach items="${collegeList}" var="item">
<option value="${item.collegeid}">${item.collegename}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group" style="text-align: center">
<button class="btn btn-default" type="submit">提交</button>
<button class="btn btn-default" type="reset">重置</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="container" id="footer">
<div class="row">
<div class="col-md-12"></div>
</div>
</div>
</body>
<script type="text/javascript">
$("#nav li:nth-child(3)").addClass("active")
</script>
</html>
(3)實(shí)現(xiàn)截圖
3.4添加學(xué)生信息
(1)功能描述
該功能可以實(shí)現(xiàn)對學(xué)生信息中的學(xué)號、姓名、性別、出生年份、入學(xué)時間、學(xué)院的添加。
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
<!-- 引入JQuery bootstrap.js-->
<script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
<script src="<c:url value="/js/bootstrap.min.js"/>"></script>
</head>
<body>
<!-- 頂欄 -->
<jsp:include page="top.jsp"></jsp:include>
<!-- 中間主體 -->
<div class="container" id="content">
<div class="row">
<jsp:include page="menu.jsp"></jsp:include>
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<h1 style="text-align: center;">添加學(xué)生信息</h1>
</div>
</div>
<div class="panel-body">
<form class="form-horizontal" role="form" action="../admin/addStudent" id="editfrom" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">學(xué)號</label>
<div class="col-sm-10">
<input type="number" class="form-control" id="inputEmail3" name="userid" placeholder="請輸入學(xué)號"
<c:if test='${student!=null}'>
value="${student.userid}"
</c:if>>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputPassword3" name="username" placeholder="請輸入姓名"
<c:if test='${student!=null}'>
value="${student.username}"
</c:if>>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">性別</label>
<div class="col-sm-10">
<label class="checkbox-inline">
<input type="radio" name="sex" value="男" checked>男
</label>
<label class="checkbox-inline">
<input type="radio" name="sex" value="女">女
</label>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
<div class="col-sm-10">
<input type="date" value="1996-09-02" name="birthyear"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">入學(xué)時間</label>
<div class="col-sm-10">
<input type="date" value="2015-09-02" name="grade"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">所屬院系</label>
<div class="col-sm-10">
<select class="form-control" name="collegeid">
<c:forEach items="${collegeList}" var="item">
<option value="${item.collegeid}">${item.collegename}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group" style="text-align: center">
<button class="btn btn-default" type="submit">提交</button>
<button class="btn btn-default" type="reset">重置</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="container" id="footer">
<div class="row">
<div class="col-md-12"></div>
</div>
</div>
</body>
<script type="text/javascript">
$("#nav li:nth-child(2)").addClass("active")
</script>
</html>
(3)實(shí)現(xiàn)截圖
3.5修改學(xué)生信息
(1)功能描述
該功能可以實(shí)現(xiàn)對學(xué)生信息中的姓名、性別、出生年份、入學(xué)時間、學(xué)院的修改。
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
<!-- 引入JQuery bootstrap.js-->
<script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
<script src="<c:url value="/js/bootstrap.min.js"/>"></script>
</head>
<body>
<!-- 頂欄 -->
<jsp:include page="top.jsp"></jsp:include>
<!-- 中間主體 -->
<div class="container" id="content">
<div class="row">
<jsp:include page="menu.jsp"></jsp:include>
<div class="col-md-10">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<h1 style="text-align: center;">修改學(xué)生信息</h1>
</div>
</div>
<div class="panel-body">
<form class="form-horizontal" role="form" action="../admin/editStudent" id="editfrom" method="post">
<div class="form-group ">
<label for="inputEmail3" class="col-sm-2 control-label" >學(xué)號</label>
<div class="col-sm-10">
<input readonly="readonly" type="number" class="form-control" id="inputEmail3" name="userid" placeholder="請輸入學(xué)號"
<c:if test='${student!=null}'>
value="${student.userid}"
</c:if>>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputPassword3" name="username" placeholder="請輸入姓名" value="${student.username}">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">性別</label>
<div class="col-sm-10">
<label class="checkbox-inline">
<input type="radio" name="sex" value="男" checked>男
</label>
<label class="checkbox-inline">
<input type="radio" name="sex" value="女">女
</label>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
<div class="col-sm-10">
<input type="date" value="<fmt:formatDate value="${student.birthyear}" dateStyle="medium" pattern="yyyy-MM-dd" />" name="birthyear"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">入學(xué)時間</label>
<div class="col-sm-10">
<input type="date" value="<fmt:formatDate value="${student.grade}" dateStyle="medium" pattern="yyyy-MM-dd" />" name="grade"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label" name="grade">所屬院系</label>
<div class="col-sm-10">
<select class="form-control" name="collegeid" id="college">
<c:forEach items="${collegeList}" var="item">
<option value="${item.collegeid}">${item.collegename}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group" style="text-align: center">
<button class="btn btn-default" type="submit">提交</button>
<button class="btn btn-default" type="reset">重置</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="container" id="footer">
<div class="row">
<div class="col-md-12"></div>
</div>
</div>
</body>
<script type="text/javascript">
$("#nav li:nth-child(2)").addClass("active")
var collegeSelect = $("#college option");
for (var i=0; i<collegeSelect.length; i++) {
if (collegeSelect[i].value == '${student.collegeid}') {
collegeSelect[i].selected = true;
}
}
</script>
</html>
(3)實(shí)現(xiàn)截圖
3.6用戶登入頁面
(1)功能描述
所有學(xué)生、教師以及管理員都可通過此頁面輸入賬號密碼后進(jìn)入教務(wù)管理系統(tǒng)
(2)實(shí)現(xiàn)代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
<!-- 引入JQuery bootstrap.js-->
<script src="${pageContext.request.contextPath}/js/jquery-3.2.1.min.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
<style type="text/css">
body{
background: url("${pageContext.request.contextPath}/images/a.jpg")repeat;
}
#login-box {
/*border:1px solid #F00;*/
padding: 35px;
border-radius:15px;
}
</style>
</head>
<body>
<div class="container" id="top">
<div class="row" style="margin-top: 280px; ">
<div class="col-md-4"></div>
<div class="col-md-4" id="login-box">
<form class="form-horizontal" role="form" action="${pageContext.request.contextPath}/login" id="from1" method="post">
<div class="form-group">
<%--@declare id="firstname"--%><label for="firstname" class="col-sm-3 control-label">用戶名</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="userID" placeholder="請輸入名字" name="username">
</div>
</div>
<div class="form-group">
<%--@declare id="lastname"--%><label for="lastname" class="col-sm-3 control-label">密碼</label>
<div class="col-sm-9">
<input type="password" class="form-control" id="password" placeholder="請輸入密碼" name="password">
</div>
</div>
<div class="form-group pull-right" style="margin-right: 15px;">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default btn-info">登錄</button>
</div>
</div>
</form>
</div>
<div class="col-md-4"></div>
</div>
</div>
</body>
</html>
(3)實(shí)現(xiàn)截圖
?心得體會
本次教務(wù)信息管理系統(tǒng)使用的是SSM框架,起初并不熟悉SSM是干什么的,不知如何下手,于是就對著課表一行一行的敲。但課表給的例圖是基于Eclipse開發(fā)工具來實(shí)現(xiàn)的,代碼給的也不完整,所以剛開始看的有點(diǎn)蒙,后來在通過對SSM的基礎(chǔ)學(xué)習(xí)之后就熟練多了。然后就會開始使用maven工程創(chuàng)建項目,配置pom.xml文件,配置SpringMVC、Mybatis以及MySQL和log4j日志文件等等。但在做這個項目的途中并不一帆風(fēng)順,異常,報錯,一系列的問題推在我的眼前,從一個錯誤到被我調(diào)試成眾多的錯誤。有時候一個bug就能困擾我好幾天,好在通過了上網(wǎng)查閱資料以及詢問老師,最終問題都能得以解決。通過這個教務(wù)信息管理系統(tǒng)項目,使我加深了對Spring 、Springmvc、Mybatis框架的理解,熟悉了SSM的整合開發(fā)。
項目下載地址:https://gitee.com/lhl0901/EduMessage
2022.6.10日補(bǔ)充:
本次更新了以下內(nèi)容:
1.數(shù)據(jù)庫可視化表文章來源:http://www.zghlxwxcb.cn/news/detail-475155.html
2.完整項目代碼以及數(shù)據(jù)庫文件文章來源地址http://www.zghlxwxcb.cn/news/detail-475155.html
到了這里,關(guān)于基于SSM框架開發(fā)的教務(wù)管理系統(tǒng)(畢業(yè)設(shè)計,期末設(shè)計)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!