• 基于SSM框架开发的教务管理系统(毕业设计,期末设计)


    目录

    🍬1 前言

    1.1 项目所需要的知识

    1.2 开发项目的环境和工具

    🍬2 系统结构

    2.1系统流程图(E-R图)

    2.2配置pom.xml

    🍬3 程序设计及运行

    3.1添加课程信息

    (1)功能描述

    (2)实现代码

    (3)实现截图

    3.2学生已修课程

    (1)功能描述

    (2)实现代码

    (3)实现截图

    3.3添加教师信息

    (1)功能描述

    (2)实现代码

    (3)实现截图

    3.4添加学生信息

    (1)功能描述

    (2)实现代码

    (3)实现截图

    3.5修改学生信息

    (1)功能描述

    (2)实现代码

    (3)实现截图

    3.6用户登入页面

    (1)功能描述

    (2)实现代码

    (3)实现截图

    心得体会


    🍬1 前言

    本文教务信息管理系统于2022年3月12日——2022年5月17日开发完毕,总历时两个多月。论文答辩也已近顺利进行,接下来就期待一个好成绩。感谢CSDN提供的技术交流平台,在做该项目的时候经常遇到一些棘手的bug,不能经常问老师(我害怕把老师问烦了,毕竟他可以教我,也可以不教我,老是麻烦老师,也觉得不好意思的),所以大多数都在网上搜寻解决措施,很高兴有一部分bug能在CSDN平台上找到对应的解决办法。我有强迫症,看到有bug我就想消除它,不消除就不睡觉,有一段时间一连好几天通宵到天亮,头发掉了很多,只是因为看bug不爽。笑死,哪个程序员都不想看到bug,关键一个bug被我弄的变成了10个,20个,30个.......我直接当初气哭o(╥﹏╥)o啊嘞,先不闲聊了,我要抓紧往下面写了,欢迎有不懂的小伙伴评论、留意、私信,我们一起学习,一起进步。

    本项目参考书籍《Java EE入门到实战》主编为孙滨、李恋、陈强。出版社为:哈尔滨工程大学出版社。

    1.1 项目所需要的知识

    后端知识:Spring+SpringMVC+Mybatis(SSM)

    (1)Spring:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的开源框架。

    (2)SpringMVC:Spring MVC是Spring Framework中的一个模块,是 Spring Framework 在Web领域实现 MVC设计模式的具体方案,主要是基于DispatcherServer的前端路由处理和ViewResolver视图解析器来简化开发者的工作效率。

    (3)Mybatis:mybatis是一个用Java编写的持久层框架,使用ORM实现了结果集的封装。

    数据库:MySQL

    MySQL:MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    Spring学习笔记(1):了解Spring_她与剑意皆失的博客-CSDN博客🥞目录🥪Spring简介:🍰Spring常用框架:🍕Spring Framework🍕SpringMVC🍕SpringBoot🍕SpringCloud🍕SpringData🍕MongoDB🍟Spring系统架构:🍕(1)核心层🍕 (2)AOP层 🍕(3)数据层🍕 (4)Web层🍕 (5)Test层🥙IOC、IOC容器、Bean、DI🍕1. IOC(Inversion of Control)控制反转🍕2. DI(Dependency ...https://blog.csdn.net/long_0901/article/details/124534654

    1.2 开发项目的环境和工具

    Spring、SpringMVC、Mybatis、MySQL、jdk1.8、Tomcat8.5、Maven、IntelliJ IDEA 2022.1


    🍬2 系统结构

    2.1系统流程图(E-R图)

     

     E-R图是我最讨厌画的图之一,画的不好看,丑死了

     

     

     

     

     

     

     

    2.2配置pom.xml

    由于教务信息管理系统是基于SSM框架开发,导入下载一些包是不可避免的,下面是我配置的pom.xml,可供大家参考学习。

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0</modelVersion>
    6. <groupId>com.xiaohuo</groupId>
    7. <artifactId>EduMessage</artifactId>
    8. <version>1.0-SNAPSHOT</version>
    9. <packaging>war</packaging>
    10. <properties>
    11. <maven.compiler.source>8</maven.compiler.source>
    12. <maven.compiler.target>8</maven.compiler.target>
    13. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    14. </properties>
    15. <dependencies>
    16. <dependency>
    17. <groupId>org.hibernate.validator</groupId>
    18. <artifactId>hibernate-validator</artifactId>
    19. <version>7.0.4.Final</version>
    20. </dependency>
    21. <dependency>
    22. <groupId>junit</groupId>
    23. <artifactId>junit</artifactId>
    24. <version>4.13.2</version>
    25. <scope>test</scope>
    26. </dependency>
    27. <dependency>
    28. <groupId>org.springframework</groupId>
    29. <artifactId>spring-beans</artifactId>
    30. <version>5.3.19</version>
    31. </dependency>
    32. <!-- servletAPI-->
    33. <dependency>
    34. <groupId>javax.servlet</groupId>
    35. <artifactId>javax.servlet-api</artifactId>
    36. <version>4.0.1</version>
    37. </dependency>
    38. <!-- shiro依赖-->
    39. <dependency>
    40. <groupId>org.apache.shiro</groupId>
    41. <artifactId>shiro-core</artifactId>
    42. <version>1.9.0</version>
    43. </dependency>
    44. <dependency>
    45. <groupId>org.apache.shiro</groupId>
    46. <artifactId>shiro-web</artifactId>
    47. <version>1.9.0</version>
    48. </dependency>
    49. <dependency>
    50. <groupId>org.apache.shiro</groupId>
    51. <artifactId>shiro-spring</artifactId>
    52. <version>1.9.0</version>
    53. </dependency>
    54. <!-- spring-->
    55. <dependency>
    56. <groupId>org.springframework</groupId>
    57. <artifactId>spring-context</artifactId>
    58. <version>5.3.19</version>
    59. </dependency>
    60. <!-- springmvc-->
    61. <dependency>
    62. <groupId>org.springframework</groupId>
    63. <artifactId>spring-web</artifactId>
    64. <version>5.3.19</version>
    65. </dependency>
    66. <!-- springMVC-->
    67. <dependency>
    68. <groupId>org.springframework</groupId>
    69. <artifactId>spring-webmvc</artifactId>
    70. <version>5.3.19</version>
    71. </dependency>
    72. <!-- spring tx事务处理-->
    73. <dependency>
    74. <groupId>org.springframework</groupId>
    75. <artifactId>spring-tx</artifactId>
    76. <version>5.3.19</version>
    77. </dependency>
    78. <!-- spring aop-->
    79. <dependency>
    80. <groupId>org.springframework</groupId>
    81. <artifactId>spring-aop</artifactId>
    82. <version>5.3.19</version>
    83. </dependency>
    84. <dependency>
    85. <groupId>org.aspectj</groupId>
    86. <artifactId>aspectjweaver</artifactId>
    87. <version>1.9.9.1</version>
    88. </dependency>
    89. <!-- spring- jdbc-->
    90. <dependency>
    91. <groupId>org.springframework</groupId>
    92. <artifactId>spring-jdbc</artifactId>
    93. <version>5.3.19</version>
    94. </dependency>
    95. <!-- jstl-->
    96. <dependency>
    97. <groupId>javax.servlet</groupId>
    98. <artifactId>jstl</artifactId>
    99. <version>1.2</version>
    100. </dependency>
    101. <!-- log4j-->
    102. <dependency>
    103. <groupId>log4j</groupId>
    104. <artifactId>log4j</artifactId>
    105. <version>1.2.17</version>
    106. </dependency>
    107. <!-- mybatis-->
    108. <dependency>
    109. <groupId>org.mybatis</groupId>
    110. <artifactId>mybatis</artifactId>
    111. <version>3.5.9</version>
    112. </dependency>
    113. <!-- mybatis逆向工程-->
    114. <dependency>
    115. <groupId>org.mybatis.generator</groupId>
    116. <artifactId>mybatis-generator-core</artifactId>
    117. <version>1.4.1</version>
    118. </dependency>
    119. <dependency>
    120. <groupId>org.mybatis.generator</groupId>
    121. <artifactId>mybatis-generator-maven-plugin</artifactId>
    122. <version>1.4.1</version>
    123. </dependency>
    124. <!-- mybatis spring 整合包-->
    125. <dependency>
    126. <groupId>org.mybatis</groupId>
    127. <artifactId>mybatis-spring</artifactId>
    128. <version>2.0.7</version>
    129. </dependency>
    130. <!-- hibernate 数据校验器-->
    131. <dependency>
    132. <groupId>org.hibernate</groupId>
    133. <artifactId>hibernate-validator</artifactId>
    134. <version>7.0.4.Final</version>
    135. </dependency>
    136. <!-- c3p0链接池-->
    137. <dependency>
    138. <groupId>com.mchange</groupId>
    139. <artifactId>c3p0</artifactId>
    140. <version>0.9.5.5</version>
    141. </dependency>
    142. <!-- Mysql数据库驱动-->
    143. <dependency>
    144. <groupId>mysql</groupId>
    145. <artifactId>mysql-connector-java</artifactId>
    146. <version>8.0.29</version>
    147. </dependency>
    148. <dependency>
    149. <groupId>org.jetbrains</groupId>
    150. <artifactId>annotations-java5</artifactId>
    151. <version>22.0.0</version>
    152. </dependency>
    153. <dependency>
    154. <groupId>org.slf4j</groupId>
    155. <artifactId>slf4j-nop</artifactId>
    156. <version>1.7.36</version>
    157. </dependency>
    158. <dependency>
    159. <groupId>com.fasterxml</groupId>
    160. <artifactId>classmate</artifactId>
    161. <version>1.5.1</version>
    162. </dependency>
    163. </dependencies>
    164. <build>
    165. <plugins>
    166. <plugin>
    167. <groupId>org.springframework.boot</groupId>
    168. <artifactId>spring-boot-maven-plugin</artifactId>
    169. <version>2.6.7</version>
    170. </plugin>
    171. <plugin>
    172. <groupId>org.mybatis.generator</groupId>
    173. <artifactId>mybatis-generator-maven-plugin</artifactId>
    174. <version>1.3.5</version>
    175. <dependencies>
    176. <dependency>
    177. <groupId>mysql</groupId>
    178. <artifactId>mysql-connector-java</artifactId>
    179. <version>6.0.6</version>
    180. </dependency>
    181. <dependency>
    182. <groupId>org.mybatis.generator</groupId>
    183. <artifactId>mybatis-generator-core</artifactId>
    184. <version>1.3.5</version>
    185. </dependency>
    186. </dependencies>
    187. <configuration>
    188. <!--允许移动生成的文件 -->
    189. <verbose>true</verbose>
    190. <!-- 是否覆盖 -->
    191. <overwrite>true</overwrite>
    192. <!-- 自动生成的配置 -->
    193. <configurationFile>
    194. src/main/resources/generatorConfig.xml
    195. </configurationFile>
    196. </configuration>
    197. </plugin>
    198. </plugins>
    199. </build>
    200. </project>

    🍬3 程序设计及运行

    3.1添加课程信息

    (1)功能描述

    该功能可以实现对课程信息中的课程号、课程名称、授课老师编号、上课时间、周数、课程类型、学分的添加。

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    3. <!DOCTYPE html>
    4. <html>
    5. <head>
    6. <title></title>
    7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    8. <!-- 引入bootstrap -->
    9. <link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
    10. <!-- 引入JQuery bootstrap.js-->
    11. <script src="<c:url value="js/jquery-3.2.1.min.js"/>"></script>
    12. <script src="<c:url value="/js/bootstrap.min.js"/>"></script>
    13. </head>
    14. <body>
    15. <!-- 顶栏 -->
    16. <jsp:include page="top.jsp"></jsp:include>
    17. <!-- 中间主体 -->
    18. <div class="container" id="content">
    19. <div class="row">
    20. <jsp:include page="menu.jsp"></jsp:include>
    21. <div class="col-md-10">
    22. <div class="panel panel-default">
    23. <div class="panel-heading">
    24. <div class="row">
    25. <h1 style="text-align: center;">添加课程信息</h1>
    26. </div>
    27. </div>
    28. <div class="panel-body">
    29. <form class="form-horizontal" role="form" action="../admin/addCourse" id="editfrom" method="post">
    30. <div class="form-group">
    31. <label for="inputEmail3" class="col-sm-2 control-label">课程号</label>
    32. <div class="col-sm-10">
    33. <input type="number" class="form-control" id="inputEmail3" name="courseid" placeholder="请输入课程号">
    34. </div>
    35. </div>
    36. <div class="form-group">
    37. <label for="inputPassword3" class="col-sm-2 control-label">课程名称</label>
    38. <div class="col-sm-10">
    39. <input type="text" class="form-control" id="inputPassword3" name="coursename" placeholder="请输入课程名称">
    40. </div>
    41. </div>
    42. <div class="form-group">
    43. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">授课老师编号</label>
    44. <div class="col-sm-10">
    45. <select class="form-control" name="teacherid">
    46. <c:forEach items="${teacherList}" var="item">
    47. <option value="${item.userid}">${item.username}</option>
    48. </c:forEach>
    49. </select>
    50. </div>
    51. </div>
    52. <div class="form-group">
    53. <label for="inputPassword3" class="col-sm-2 control-label">上课时间</label>
    54. <div class="col-sm-10">
    55. <input type="text" class="form-control" name="coursetime" placeholder="请输入上课时间">
    56. </div>
    57. </div>
    58. <div class="form-group">
    59. <label for="inputPassword3" class="col-sm-2 control-label">上课地点</label>
    60. <div class="col-sm-10">
    61. <input type="text" class="form-control" name="classroom" placeholder="上课地点">
    62. </div>
    63. </div>
    64. <div class="form-group">
    65. <label for="inputEmail3" class="col-sm-2 control-label">周数</label>
    66. <div class="col-sm-10">
    67. <input type="number" class="form-control" name="courseweek" placeholder="请输入周数">
    68. </div>
    69. </div>
    70. <div class="form-group">
    71. <label for="inputPassword3" class="col-sm-2 control-label" name="coursetype">课程的类型:</label>
    72. <div class="col-sm-10">
    73. <select class="form-control" name="coursetype">
    74. <option value="必修课">必修课</option>
    75. <option value="选修课">选修课</option>
    76. <option value="公共课">公共课</option>
    77. </select>
    78. </div>
    79. </div>
    80. <div class="form-group">
    81. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">所属院系</label>
    82. <div class="col-sm-10">
    83. <select class="form-control" name="collegeid">
    84. <c:forEach items="${collegeList}" var="item">
    85. <option value="${item.collegeid}">${item.collegename}</option>
    86. </c:forEach>
    87. </select>
    88. </div>
    89. </div>
    90. <div class="form-group">
    91. <label for="inputEmail3" class="col-sm-2 control-label">学分:</label>
    92. <div class="col-sm-10">
    93. <input type="number" class="form-control" name="score" placeholder="请输入学分">
    94. </div>
    95. </div>
    96. <div class="form-group" style="text-align: center">
    97. <button class="btn btn-default" type="submit">提交</button>
    98. <button class="btn btn-default" type="reset">重置</button>
    99. </div>
    100. </form>
    101. </div>
    102. </div>
    103. </div>
    104. </div>
    105. </div>
    106. <div class="container" id="footer">
    107. <div class="row">
    108. <div class="col-md-12"></div>
    109. </div>
    110. </div>
    111. </body>
    112. <script type="text/javascript">
    113. $("#nav li:nth-child(1)").addClass("active")
    114. </script>
    115. </html>

    (3)实现截图

    3.2学生已修课程

    (1)功能描述

    该功能可以看到学生本人自身已经选修过了的课程,学生可以清楚的看到自己已经选修的课程号、课程名称、授课老师编号、上课时间、周数、课程类型、学分、以及考试成绩。

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    4. <!DOCTYPE html>
    5. <html>
    6. <head>
    7. <title>课程信息显示</title>
    8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    9. <!-- 引入bootstrap -->
    10. <link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
    11. <!-- 引入JQuery bootstrap.js-->
    12. <script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
    13. <script src="<c:url value="/js/bootstrap.min.js"/>"></script>
    14. <%--<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">--%>
    15. </head>
    16. <body>
    17. <!-- 顶栏 -->
    18. <jsp:include page="top.jsp"></jsp:include>
    19. <!-- 中间主体 -->
    20. <div class="container" id="content">
    21. <div class="row">
    22. <jsp:include page="menu.jsp"></jsp:include>
    23. <div class="col-md-10">
    24. <div class="panel panel-default">
    25. <div class="panel-heading">
    26. <div class="row">
    27. <h1 class="col-md-5">已修课程</h1>
    28. </div>
    29. </div>
    30. <table class="table table-bordered">
    31. <thead>
    32. <tr>
    33. <th>课程号</th>
    34. <th>课程名称</th>
    35. <th>授课老师编号</th>
    36. <th>上课时间</th>
    37. <th>上课地点</th>
    38. <th>周数</th>
    39. <th>课程类型</th>
    40. <th>学分</th>
    41. <th>成绩</th>
    42. </tr>
    43. </thead>
    44. <tbody>
    45. <c:forEach items="${selectedCourseList}" var="item">
    46. <%--输出已修完的课程--%>
    47. <c:if test="${item.over}">
    48. <tr>
    49. <td>${item.couseCustom.courseid}</td>
    50. <td>${item.couseCustom.coursename}</td>
    51. <td>${item.couseCustom.teacherid}</td>
    52. <td>${item.couseCustom.coursetime}</td>
    53. <td>${item.couseCustom.classroom}</td>
    54. <td>${item.couseCustom.courseweek}</td>
    55. <td>${item.couseCustom.coursetype}</td>
    56. <td>${item.couseCustom.score}</td>
    57. <td style="color: red">${item.mark}</td>
    58. </tr>
    59. </c:if>
    60. </c:forEach>
    61. </tbody>
    62. </table>
    63. <div class="panel-footer">
    64. <c:if test="${pagingVO != null}">
    65. <nav style="text-align: center">
    66. <ul class="pagination">
    67. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.upPageNo}"/>">&laquo;上一页</a></li>
    68. <li class="active"><a href="">${pagingVO.curentPageNo}</a></li>
    69. <c:if test="${pagingVO.curentPageNo+1 <= pagingVO.totalCount}">
    70. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+1}"/>">${pagingVO.curentPageNo+1}</a></li>
    71. </c:if>
    72. <c:if test="${pagingVO.curentPageNo+2 <= pagingVO.totalCount}">
    73. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+2}"/>">${pagingVO.curentPageNo+2}</a></li>
    74. </c:if>
    75. <c:if test="${pagingVO.curentPageNo+3 <= pagingVO.totalCount}">
    76. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+3}"/>">${pagingVO.curentPageNo+3}</a></li>
    77. </c:if>
    78. <c:if test="${pagingVO.curentPageNo+4 <= pagingVO.totalCount}">
    79. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.curentPageNo+4}"/>">${pagingVO.curentPageNo+4}</a></li>
    80. </c:if>
    81. <li><a href="<c:url value="/student/showCourse?page=${pagingVO.totalCount}"/>">最后一页&raquo;</a></li>
    82. </ul>
    83. </nav>
    84. </c:if>
    85. </div>
    86. </div>
    87. </div>
    88. </div>
    89. </div>
    90. <div class="container" id="footer">
    91. <div class="row">
    92. <div class="col-md-12"></div>
    93. </div>
    94. </div>
    95. </body>
    96. <script type="text/javascript">
    97. <%--设置菜单中--%>
    98. $("#nav li:nth-child(3)").addClass("active")
    99. <c:if test="${pagingVO != null}">
    100. if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {
    101. $(".pagination li:last-child").addClass("disabled")
    102. };
    103. if (${pagingVO.curentPageNo} == ${1}) {
    104. $(".pagination li:nth-child(1)").addClass("disabled")
    105. };
    106. </c:if>
    107. function confirmd() {
    108. var msg = "您真的确定要删除吗?!";
    109. if (confirm(msg)==true){
    110. return true;
    111. }else{
    112. return false;
    113. }
    114. }
    115. $("#sub").click(function () {
    116. $("#form1").submit();
    117. });
    118. </script>
    119. </html>

    (3)实现截图

    3.3添加教师信息

    (1)功能描述

    该功能可以实现对教师信息中的工号、姓名、性别、出生年份、学历、职称、入职时间、所属院系的添加。

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    3. <!DOCTYPE html>
    4. <html>
    5. <head>
    6. <title></title>
    7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    8. <!-- 引入bootstrap -->
    9. <link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
    10. <!-- 引入JQuery bootstrap.js-->
    11. <script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
    12. <script src="<c:url value="/js/bootstrap.min.js"/>"></script>
    13. </head>
    14. <body>
    15. <!-- 顶栏 -->
    16. <jsp:include page="top.jsp"></jsp:include>
    17. <!-- 中间主体 -->
    18. <div class="container" id="content">
    19. <div class="row">
    20. <jsp:include page="menu.jsp"></jsp:include>
    21. <div class="col-md-10">
    22. <div class="panel panel-default">
    23. <div class="panel-heading">
    24. <div class="row">
    25. <h1 style="text-align: center;">添加教师信息</h1>
    26. </div>
    27. </div>
    28. <div class="panel-body">
    29. <form class="form-horizontal" role="form" action="../admin/addTeacher" id="editfrom" method="post">
    30. <div class="form-group">
    31. <label for="inputEmail3" class="col-sm-2 control-label">工号</label>
    32. <div class="col-sm-10">
    33. <input type="number" class="form-control" id="inputEmail3" name="userid" placeholder="请输入学号">
    34. </div>
    35. </div>
    36. <div class="form-group">
    37. <label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
    38. <div class="col-sm-10">
    39. <input type="text" class="form-control" id="inputPassword3" name="username" placeholder="请输入姓名">
    40. </div>
    41. </div>
    42. <div class="form-group">
    43. <label for="inputPassword3" class="col-sm-2 control-label">性别</label>
    44. <div class="col-sm-10">
    45. <label class="checkbox-inline">
    46. <input type="radio" name="sex" value="男" checked>
    47. </label>
    48. <label class="checkbox-inline">
    49. <input type="radio" name="sex" value="女">
    50. </label>
    51. </div>
    52. </div>
    53. <div class="form-group">
    54. <label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
    55. <div class="col-sm-10">
    56. <input type="date" value="1996-09-02" name="birthyear"/>
    57. </div>
    58. </div>
    59. <div class="form-group">
    60. <label for="inputPassword3" class="col-sm-2 control-label" name="degree">学历:</label>
    61. <div class="col-sm-10">
    62. <select class="form-control" name="degree">
    63. <option value="本科">本科</option>
    64. <option value="硕士">硕士</option>
    65. <option value="博士">博士</option>
    66. </select>
    67. </div>
    68. </div>
    69. <div class="form-group">
    70. <label for="inputPassword3" class="col-sm-2 control-label" name="title">职称:</label>
    71. <div class="col-sm-10">
    72. <select class="form-control" name="title">
    73. <option value="普通教师">普通教师</option>
    74. <option value="助教">助教</option>
    75. <option value="讲师">讲师</option>
    76. <option value="副教授">副教授</option>
    77. <option value="教授">教授</option>
    78. </select>
    79. </div>
    80. </div>
    81. <div class="form-group">
    82. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">入职时间</label>
    83. <div class="col-sm-10">
    84. <input type="date" value="2015-09-02" name="grade"/>
    85. </div>
    86. </div>
    87. <div class="form-group">
    88. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">所属院系</label>
    89. <div class="col-sm-10">
    90. <select class="form-control" name="collegeid">
    91. <c:forEach items="${collegeList}" var="item">
    92. <option value="${item.collegeid}">${item.collegename}</option>
    93. </c:forEach>
    94. </select>
    95. </div>
    96. </div>
    97. <div class="form-group" style="text-align: center">
    98. <button class="btn btn-default" type="submit">提交</button>
    99. <button class="btn btn-default" type="reset">重置</button>
    100. </div>
    101. </form>
    102. </div>
    103. </div>
    104. </div>
    105. </div>
    106. </div>
    107. <div class="container" id="footer">
    108. <div class="row">
    109. <div class="col-md-12"></div>
    110. </div>
    111. </div>
    112. </body>
    113. <script type="text/javascript">
    114. $("#nav li:nth-child(3)").addClass("active")
    115. </script>
    116. </html>

    (3)实现截图

    3.4添加学生信息

    (1)功能描述

    该功能可以实现对学生信息中的学号、姓名、性别、出生年份、入学时间、学院的添加。

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    3. <!DOCTYPE html>
    4. <html>
    5. <head>
    6. <title></title>
    7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    8. <!-- 引入bootstrap -->
    9. <link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
    10. <!-- 引入JQuery bootstrap.js-->
    11. <script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
    12. <script src="<c:url value="/js/bootstrap.min.js"/>"></script>
    13. </head>
    14. <body>
    15. <!-- 顶栏 -->
    16. <jsp:include page="top.jsp"></jsp:include>
    17. <!-- 中间主体 -->
    18. <div class="container" id="content">
    19. <div class="row">
    20. <jsp:include page="menu.jsp"></jsp:include>
    21. <div class="col-md-10">
    22. <div class="panel panel-default">
    23. <div class="panel-heading">
    24. <div class="row">
    25. <h1 style="text-align: center;">添加学生信息</h1>
    26. </div>
    27. </div>
    28. <div class="panel-body">
    29. <form class="form-horizontal" role="form" action="../admin/addStudent" id="editfrom" method="post">
    30. <div class="form-group">
    31. <label for="inputEmail3" class="col-sm-2 control-label">学号</label>
    32. <div class="col-sm-10">
    33. <input type="number" class="form-control" id="inputEmail3" name="userid" placeholder="请输入学号"
    34. <c:if test='${student!=null}'>
    35. value="${student.userid}"
    36. </c:if>>
    37. </div>
    38. </div>
    39. <div class="form-group">
    40. <label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
    41. <div class="col-sm-10">
    42. <input type="text" class="form-control" id="inputPassword3" name="username" placeholder="请输入姓名"
    43. <c:if test='${student!=null}'>
    44. value="${student.username}"
    45. </c:if>>
    46. </div>
    47. </div>
    48. <div class="form-group">
    49. <label for="inputPassword3" class="col-sm-2 control-label">性别</label>
    50. <div class="col-sm-10">
    51. <label class="checkbox-inline">
    52. <input type="radio" name="sex" value="男" checked>
    53. </label>
    54. <label class="checkbox-inline">
    55. <input type="radio" name="sex" value="女">
    56. </label>
    57. </div>
    58. </div>
    59. <div class="form-group">
    60. <label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
    61. <div class="col-sm-10">
    62. <input type="date" value="1996-09-02" name="birthyear"/>
    63. </div>
    64. </div>
    65. <div class="form-group">
    66. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">入学时间</label>
    67. <div class="col-sm-10">
    68. <input type="date" value="2015-09-02" name="grade"/>
    69. </div>
    70. </div>
    71. <div class="form-group">
    72. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">所属院系</label>
    73. <div class="col-sm-10">
    74. <select class="form-control" name="collegeid">
    75. <c:forEach items="${collegeList}" var="item">
    76. <option value="${item.collegeid}">${item.collegename}</option>
    77. </c:forEach>
    78. </select>
    79. </div>
    80. </div>
    81. <div class="form-group" style="text-align: center">
    82. <button class="btn btn-default" type="submit">提交</button>
    83. <button class="btn btn-default" type="reset">重置</button>
    84. </div>
    85. </form>
    86. </div>
    87. </div>
    88. </div>
    89. </div>
    90. </div>
    91. <div class="container" id="footer">
    92. <div class="row">
    93. <div class="col-md-12"></div>
    94. </div>
    95. </div>
    96. </body>
    97. <script type="text/javascript">
    98. $("#nav li:nth-child(2)").addClass("active")
    99. </script>
    100. </html>

    (3)实现截图

    3.5修改学生信息

    (1)功能描述

    该功能可以实现对学生信息中的姓名、性别、出生年份、入学时间、学院的修改。

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    4. <!DOCTYPE html>
    5. <html>
    6. <head>
    7. <title></title>
    8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    9. <!-- 引入bootstrap -->
    10. <link rel="stylesheet" type="text/css" href="<c:url value="/css/bootstrap.min.css"/>">
    11. <!-- 引入JQuery bootstrap.js-->
    12. <script src="<c:url value="/js/jquery-3.2.1.min.js"/>"></script>
    13. <script src="<c:url value="/js/bootstrap.min.js"/>"></script>
    14. </head>
    15. <body>
    16. <!-- 顶栏 -->
    17. <jsp:include page="top.jsp"></jsp:include>
    18. <!-- 中间主体 -->
    19. <div class="container" id="content">
    20. <div class="row">
    21. <jsp:include page="menu.jsp"></jsp:include>
    22. <div class="col-md-10">
    23. <div class="panel panel-default">
    24. <div class="panel-heading">
    25. <div class="row">
    26. <h1 style="text-align: center;">修改学生信息</h1>
    27. </div>
    28. </div>
    29. <div class="panel-body">
    30. <form class="form-horizontal" role="form" action="../admin/editStudent" id="editfrom" method="post">
    31. <div class="form-group ">
    32. <label for="inputEmail3" class="col-sm-2 control-label" >学号</label>
    33. <div class="col-sm-10">
    34. <input readonly="readonly" type="number" class="form-control" id="inputEmail3" name="userid" placeholder="请输入学号"
    35. <c:if test='${student!=null}'>
    36. value="${student.userid}"
    37. </c:if>>
    38. </div>
    39. </div>
    40. <div class="form-group">
    41. <label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
    42. <div class="col-sm-10">
    43. <input type="text" class="form-control" id="inputPassword3" name="username" placeholder="请输入姓名" value="${student.username}">
    44. </div>
    45. </div>
    46. <div class="form-group">
    47. <label for="inputPassword3" class="col-sm-2 control-label">性别</label>
    48. <div class="col-sm-10">
    49. <label class="checkbox-inline">
    50. <input type="radio" name="sex" value="男" checked>
    51. </label>
    52. <label class="checkbox-inline">
    53. <input type="radio" name="sex" value="女">
    54. </label>
    55. </div>
    56. </div>
    57. <div class="form-group">
    58. <label for="inputPassword3" class="col-sm-2 control-label">出生年份</label>
    59. <div class="col-sm-10">
    60. <input type="date" value="<fmt:formatDate value="${student.birthyear}" dateStyle="medium" pattern="yyyy-MM-dd" />" name="birthyear"/>
    61. </div>
    62. </div>
    63. <div class="form-group">
    64. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">入学时间</label>
    65. <div class="col-sm-10">
    66. <input type="date" value="<fmt:formatDate value="${student.grade}" dateStyle="medium" pattern="yyyy-MM-dd" />" name="grade"/>
    67. </div>
    68. </div>
    69. <div class="form-group">
    70. <label for="inputPassword3" class="col-sm-2 control-label" name="grade">所属院系</label>
    71. <div class="col-sm-10">
    72. <select class="form-control" name="collegeid" id="college">
    73. <c:forEach items="${collegeList}" var="item">
    74. <option value="${item.collegeid}">${item.collegename}</option>
    75. </c:forEach>
    76. </select>
    77. </div>
    78. </div>
    79. <div class="form-group" style="text-align: center">
    80. <button class="btn btn-default" type="submit">提交</button>
    81. <button class="btn btn-default" type="reset">重置</button>
    82. </div>
    83. </form>
    84. </div>
    85. </div>
    86. </div>
    87. </div>
    88. </div>
    89. <div class="container" id="footer">
    90. <div class="row">
    91. <div class="col-md-12"></div>
    92. </div>
    93. </div>
    94. </body>
    95. <script type="text/javascript">
    96. $("#nav li:nth-child(2)").addClass("active")
    97. var collegeSelect = $("#college option");
    98. for (var i=0; i<collegeSelect.length; i++) {
    99. if (collegeSelect[i].value == '${student.collegeid}') {
    100. collegeSelect[i].selected = true;
    101. }
    102. }
    103. </script>
    104. </html>

    (3)实现截图

    3.6用户登入页面

    (1)功能描述

    所有学生、教师以及管理员都可通过此页面输入账号密码后进入教务管理系统

    (2)实现代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <!DOCTYPE html>
    3. <html>
    4. <head>
    5. <title></title>
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <!-- 引入bootstrap -->
    8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/bootstrap.min.css">
    9. <!-- 引入JQuery bootstrap.js-->
    10. <script src="${pageContext.request.contextPath}/js/jquery-3.2.1.min.js"></script>
    11. <script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
    12. <style type="text/css">
    13. body{
    14. background: url("${pageContext.request.contextPath}/images/a.jpg")repeat;
    15. }
    16. #login-box {
    17. /*border:1px solid #F00;*/
    18. padding: 35px;
    19. border-radius:15px;
    20. }
    21. </style>
    22. </head>
    23. <body>
    24. <div class="container" id="top">
    25. <div class="row" style="margin-top: 280px; ">
    26. <div class="col-md-4"></div>
    27. <div class="col-md-4" id="login-box">
    28. <form class="form-horizontal" role="form" action="${pageContext.request.contextPath}/login" id="from1" method="post">
    29. <div class="form-group">
    30. <%--@declare id="firstname"--%><label for="firstname" class="col-sm-3 control-label">用户名</label>
    31. <div class="col-sm-9">
    32. <input type="text" class="form-control" id="userID" placeholder="请输入名字" name="username">
    33. </div>
    34. </div>
    35. <div class="form-group">
    36. <%--@declare id="lastname"--%><label for="lastname" class="col-sm-3 control-label">密码</label>
    37. <div class="col-sm-9">
    38. <input type="password" class="form-control" id="password" placeholder="请输入密码" name="password">
    39. </div>
    40. </div>
    41. <div class="form-group pull-right" style="margin-right: 15px;">
    42. <div class="col-sm-offset-2 col-sm-10">
    43. <button type="submit" class="btn btn-default btn-info">登录</button>
    44. </div>
    45. </div>
    46. </form>
    47. </div>
    48. <div class="col-md-4"></div>
    49. </div>
    50. </div>
    51. </body>
    52. </html>

    (3)实现截图


     心得体会

    本次教务信息管理系统使用的是SSM框架,起初并不熟悉SSM是干什么的,不知如何下手,于是就对着课表一行一行的敲。但课表给的例图是基于Eclipse开发工具来实现的,代码给的也不完整,所以刚开始看的有点蒙,后来在通过对SSM的基础学习之后就熟练多了。然后就会开始使用maven工程创建项目,配置pom.xml文件,配置SpringMVC、Mybatis以及MySQL和log4j日志文件等等。但在做这个项目的途中并不一帆风顺,异常,报错,一系列的问题推在我的眼前,从一个错误到被我调试成众多的错误。有时候一个bug就能困扰我好几天,好在通过了上网查阅资料以及询问老师,最终问题都能得以解决。通过这个教务信息管理系统项目,使我加深了对Spring 、Springmvc、Mybatis框架的理解,熟悉了SSM的整合开发。

    项目下载地址:https://gitee.com/lhl0901/EduMessage

    2022.6.10日补充:

    本次更新了以下内容:

    1.数据库可视化表

    2.完整项目代码以及数据库文件

  • 相关阅读:
    Kamiya丨Kamiya艾美捷小鼠转铁蛋白ELISA说明书
    样本对应模型例题
    Modelsim无法生成LICENSE的问题
    umask计算创建文件、目录的默认权限
    初识C语言(三)--最终章,万字解析,趣味讲解完C语言的最后知识点
    KafKa C++实战
    综合布线系统可由以下子系统组成
    【图像分类】2021-CoAtNet NeurlPS
    数据库连接池的概念和原理
    学会preload和prefetch
  • 原文地址:https://blog.csdn.net/long_0901/article/details/124834180