1 #13

Merged
pc4gok3i8 merged 1 commits from branch_LYH into main 1 year ago

@ -1,23 +1,33 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 设置页面的HTTP响应头中的内容类型为HTML字符编码为UTF-8 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>${sessionScope.user.name },您好!</h1>
<div>
<%session.setAttribute("path", request.getRequestURI()); %>
<a href="<%=request.getContextPath()%>/modify/modifypassword.jsp">修改密码</a>
<a href="<%=request.getContextPath()%>/logoutServlet">注销</a>
<br><br>
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic_dean.jsp">返回上一步</a>
</div>
<h3>教务管理</h3>
<a href="<%=request.getContextPath()%>/acdemic_dean/acdemic/grademanagement/gradequery.jsp">成绩总库查询</a>
<br><br>
<a href="<%=request.getContextPath()%>/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp">成绩统计分析</a>
<!-- 从sessionScope中获取名为"user"的对象,并展示其"name"属性值向用户致以问候。此处使用了EL表达式Expression Language来获取属性值 -->
<h1>${sessionScope.user.name },您好!</h1>
<!-- 创建一个div容器用于放置一些常用的操作链接 -->
<div>
<!-- 将当前请求的URI路径保存到session的"path"属性中,可能用于后续页面跳转等操作记录当前页面来源 -->
<%session.setAttribute("path", request.getRequestURI()); %>
<!-- 创建一个超链接点击可跳转到修改密码页面具体路径通过表达式获取当前应用的上下文路径拼接具体的JSP页面路径 -->
<a href="<%=request.getContextPath()%>/modify/modifypassword.jsp">修改密码</a>
<!-- 创建一个超链接点击可触发注销操作具体注销逻辑应该在对应的Servlet中实现此处只是链接到相应的Servlet路径 -->
<a href="<%=request.getContextPath()%>/logoutServlet">注销</a>
<br><br>
<!-- 创建一个超链接点击可返回上一步跳转到指定的JSP页面通过应用上下文路径拼接具体的JSP页面路径来确定目标地址 -->
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic_dean.jsp">返回上一步</a>
</div>
<!-- 页面标题,显示为"教务管理" -->
<h3>教务管理</h3>
<!-- 创建一个超链接点击可跳转到成绩总库查询页面具体路径通过应用上下文路径拼接相应的JSP页面路径来确定目标地址 -->
<a href="<%=request.getContextPath()%>/acdemic_dean/acdemic/grademanagement/gradequery.jsp">成绩总库查询</a>
<br><br>
<!-- 创建一个超链接点击可跳转到成绩统计分析页面同样通过应用上下文路径拼接对应JSP页面路径来确定目标地址 -->
<a href="<%=request.getContextPath()%>/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp">成绩统计分析</a>
</body>
</html>

@ -3,142 +3,176 @@
<%@page import="com.hua.entity.OptionalCourse"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>教务管理系统</title>
<!-- 设置页面的HTTP响应头中的内容类型为HTML字符编码为UTF-8 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>教务管理系统</title>
</head>
<body>
<h1>${sessionScope.user.name },您好!</h1>
<!-- 从session作用域中获取名为"user"的对象的"name"属性值并展示问候语。使用了EL表达式Expression Language来方便地获取session中的数据 -->
<h1>${sessionScope.user.name },您好!</h1>
<div>
<!-- 使用JSP脚本片段将当前请求的URI路径存储到session的"path"属性中,可能用于后续记录页面来源、进行页面跳转等相关操作 -->
<%session.setAttribute("path", request.getRequestURI()); %>
<!-- 创建一个超链接点击可跳转到修改密码页面。链接的路径通过获取当前应用的上下文路径request.getContextPath()与具体的JSP页面路径/modify/modifypassword.jsp拼接而成 -->
<a href="<%=request.getContextPath()%>/modify/modifypassword.jsp">修改密码</a>
<!-- 创建一个超链接点击可触发注销操作具体的注销逻辑应该在对应的Servlet中实现此处只是链接到相应的Servlet路径/logoutServlet -->
<a href="<%=request.getContextPath()%>/logoutServlet">注销</a>
<br><br>
<!-- 创建一个超链接点击可返回上一步跳转到指定的JSP页面/acdemic_dean/acdemic_dean.jsp同样是通过应用上下文路径与具体页面路径拼接来确定目标地址 -->
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic_dean.jsp">返回上一步</a>
</div>
<!-- 创建一个表单用于提交查询选修课程相关信息的请求。表单的action属性指定了提交的目标地址通过应用上下文路径与/optStudent.List拼接提交方式为POST -->
<form action="<%=request.getContextPath()%>/optStudent.List" method="post">
<!-- 创建一个表格,用于在表单中布局各个查询条件的输入项和选择项,使页面布局更规整 -->
<table>
<!-- 表格中的一行,用于显示和选择学年学期的查询条件 -->
<tr>
<td>学年学期:</td>
<td>
<!-- 创建一个下拉选择框用于选择学年学期name属性设置为"yearTerm",这样在表单提交时,所选的值会以该名称作为参数名传递给后端 -->
<select name="yearTerm">
<!-- 一个空的选项,默认情况下显示为空,方便用户进行选择操作 -->
<option value=""></option>
<option value="2017秋季">2017秋季</option>
<option value="2017春季">2017春季</option>
<option value="2016秋季">2016秋季</option>
<option value="2016春季">2016春季</option>
</select>
</td>
</tr>
<!-- 表格中的一行,用于显示和选择学院的查询条件 -->
<tr>
<td>学院:</td>
<td>
<!-- 创建一个下拉选择框用于选择学院name属性为"academy",用于在表单提交时传递所选学院的值给后端 -->
<select name="academy">
<option value=""></option>
<option value="自动化学院">自动化学院</option>
<option value="物理学院">物理学院</option>
<option value="电子信息学院">电子信息学院</option>
<option value="计算机学院">计算机学院</option>
</select>
</td>
</tr>
<!-- 表格中的一行,用于显示和选择专业的查询条件 -->
<tr>
<td>专业:</td>
<td>
<!-- 创建一个下拉选择框用于选择专业name属性为"profession",在表单提交时将所选专业的值传递给后端 -->
<select name="profession">
<option value=""></option>
<option value="自动化">自动化</option>
<option value="应用物理">应用物理</option>
<option value="电子信息工程">电子信息工程</option>
<option value="计算机科学与技术">计算机科学与技术</option>
</select>
</td>
</tr>
<!-- 表格中的一行,用于显示和选择班级的查询条件 -->
<tr>
<td>班级:</td>
<td>
<!-- 创建一个下拉选择框用于选择班级name属性为"className",用于在表单提交时向后端传递所选班级的值 -->
<select name="className">
<option value=""></option>
<option value="电子15(1)">电子15(1)</option>
<option value="电子15(2)">电子15(2)</option>
<option value="计算机14(1)">计算机14(1)</option>
<option value="计算机14(2)">计算机14(2)</option>
</select>
</td>
</tr>
<!-- 表格中的一行用于输入学号的查询条件使用文本输入框name属性为"studentId",用户输入的值将以此名称作为参数传递给后端 -->
<tr>
<td>学号:</td>
<td><input type="text" name="studentId"/></td>
</tr>
<!-- 表格中的一行用于输入学生姓名的查询条件同样是文本输入框name属性为"studentName",输入的值会传递给后端 -->
<tr>
<td>学生姓名:</td>
<td><input type="text" name="studentName"/></td>
</tr>
<!-- 表格中的一行,放置一个提交按钮,按钮上显示的文字为"查询"点击该按钮时会将表单中的数据按照设定的方式POST提交到指定的action地址即/optStudent.List对应的处理逻辑 -->
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
</form>
<!-- 使用JSTL的标签进行条件判断如果session作用域中的"map"属性不为null意味着后端已经将选修课程相关的查询结果存入了该属性中则执行以下代码块 -->
<c:if test="${sessionScope.map!= null }">
<!-- 创建一个div容器用于包裹下面的表格起到一定的页面布局作用方便对展示的内容进行整体的样式设置等操作 -->
<div>
<%session.setAttribute("path", request.getRequestURI()); %>
<a href="<%=request.getContextPath()%>/modify/modifypassword.jsp">修改密码</a>
<a href="<%=request.getContextPath()%>/logoutServlet">注销</a>
<br><br>
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic_dean.jsp">返回上一步</a>
</div>
<form action="<%=request.getContextPath()%>/optStudent.List" method="post">
<table>
<tr>
<td>学年学期:</td>
<td>
<select name="yearTerm">
<option value=""></option>
<option value="2017秋季">2017秋季</option>
<option value="2017春季">2017春季</option>
<option value="2016秋季">2016秋季</option>
<option value="2016春季">2016春季</option>
</select>
</td>
</tr>
<tr>
<td>学院:</td>
<td>
<select name="academy">
<option value=""></option>
<option value="自动化学院">自动化学院</option>
<option value="物理学院">物理学院</option>
<option value="电子信息学院">电子信息学院</option>
<option value="计算机学院">计算机学院</option>
</select>
</td>
</tr>
<tr>
<td>专业:</td>
<td>
<select name="profession">
<option value=""></option>
<option value="自动化">自动化</option>
<option value="应用物理">应用物理</option>
<option value="电子信息工程">电子信息工程</option>
<option value="计算机科学与技术">计算机科学与技术</option>
</select>
</td>
</tr>
<tr>
<td>班级:</td>
<td>
<select name="className">
<option value=""></option>
<option value="电子15(1)">电子15(1)</option>
<option value="电子15(2)">电子15(2)</option>
<option value="计算机14(1)">计算机14(1)</option>
<option value="计算机14(2)">计算机14(2)</option>
</select>
</td>
</tr>
<!-- 创建一个带有边框border="1"、单元格边距cellpadding="0"和单元格间距cellspacing="0")设置的表格,用于展示选修课程的详细信息 -->
<table border="1" cellpadding="0" cellspacing="0">
<!-- 表格的表头行,定义了各个列显示的标题内容,用于清晰展示选修课程信息的各个字段 -->
<tr>
<td>学号:</td>
<td><input type="text" name="studentId"/></td>
<th>学年学期</th>
<th>学号</th>
<th>学生姓名</th>
<th>学院</th>
<th>专业</th>
<th>班级</th>
<th>课程编号</th>
<th>课程名称</th>
<th>学分</th>
<th>课程类型</th>
<th>任课老师</th>
<th>上课方式</th>
<th>上课时间</th>
<th></th>
</tr>
<!-- 以下是JSP脚本片段用于从session作用域中获取名为"map"的属性值并将其转换为特定的类型Map<StudentBasicInformation, List<OptionalCourse>>同时移除session中的"map"属性,可能是为了避免数据重复使用或者释放内存等考虑 -->
<%
Map<StudentBasicInformation, List<OptionalCourse>> map =
(Map<StudentBasicInformation, List<OptionalCourse>>)session.getAttribute("map");
session.removeAttribute("map");
%>
<!-- 以下是嵌套的循环代码块,外层循环遍历前面获取到的"map"中的键值对(每个键值对表示一个学生对应的选修课程列表信息),内层循环遍历每个学生对应的选修课程列表,用于逐行展示选修课程的详细信息 -->
<%
for(Map.Entry<StudentBasicInformation, List<OptionalCourse>> entry : map.entrySet()){
StudentBasicInformation stu = entry.getKey();
List<OptionalCourse> optionalCourses = entry.getValue();
for(OptionalCourse optionalCourse : optionalCourses){
%>
<tr>
<td>学生姓名:</td>
<td><input type="text" name="studentName"/></td>
<!-- 在表格的单元格中展示选修课程的学年学期信息通过Java代码获取选修课程对象optionalCourse中的学年学期属性值并输出显示 -->
<td><%= optionalCourse.getYearTerm() %></td>
<!-- 在表格的单元格中展示学生的学号信息通过Java代码获取学生对象stu中的学号属性值并输出显示 -->
<td><%= stu.getStudentId() %></td>
<!-- 在表格的单元格中展示学生的姓名信息通过Java代码获取学生对象stu中的姓名属性值并输出显示 -->
<td><%= stu.getStudentName() %></td>
<!-- 在表格的单元格中展示学生所在学院信息通过Java代码获取学生对象stu中的学院属性值并输出显示 -->
<td><%= stu.getAcademy() %></td>
<!-- 在表格的单元格中展示学生的专业信息通过Java代码获取学生对象stu中的专业属性值并输出显示 -->
<td><%= stu.getProfession() %></td>
<!-- 在表格的单元格中展示学生所在班级信息通过Java代码获取学生对象stu中的班级属性值并输出显示 -->
<td><%= stu.getClassName() %></td>
<!-- 在表格的单元格中展示选修课程的编号信息通过Java代码获取选修课程对象optionalCourse中的课程编号属性值并输出显示 -->
<td><%= optionalCourse.getCourseId() %></td>
<!-- 在表格的单元格中展示选修课程的名称信息通过Java代码获取选修课程对象optionalCourse中的课程名称属性值并输出显示 -->
<td><%= optionalCourse.getCourseName() %></td>
<!-- 在表格的单元格中展示选修课程的学分信息通过Java代码获取选修课程对象optionalCourse中的学分属性值并输出显示 -->
<td><%= optionalCourse.getCredit() %></td>
<!-- 在表格的单元格中展示选修课程的类型信息通过Java代码获取选修课程对象optionalCourse中的课程类型属性值并输出显示 -->
<td><%= optionalCourse.getCourseType() %></td>
<!-- 在表格的单元格中展示选修课程的任课老师信息通过Java代码获取选修课程对象optionalCourse中的任课老师属性值并输出显示 -->
<td><%= optionalCourse.getTeacher() %></td>
<!-- 在表格的单元格中展示选修课程的上课方式信息通过Java代码获取选修课程对象optionalCourse中的上课方式属性值并输出显示 -->
<td><%= optionalCourse.getClassWay() %></td>
<!-- 在表格的单元格中展示选修课程的上课时间信息通过Java代码获取选修课程对象optionalCourse中的上课时间属性值并输出显示 -->
<td><%= optionalCourse.getClassTime() %></td>
</tr>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
<%
}
}
%>
</table>
</form>
<c:if test="${sessionScope.map != null }">
<div>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th>学年学期</th>
<th>学号</th>
<th>学生姓名</th>
<th>学院</th>
<th>专业</th>
<th>班级</th>
<th>课程编号</th>
<th>课程名称</th>
<th>学分</th>
<th>课程类型</th>
<th>任课老师</th>
<th>上课方式</th>
<th>上课时间</th>
<th></th>
</tr>
<%
Map<StudentBasicInformation,List<OptionalCourse>> map =
(Map<StudentBasicInformation,List<OptionalCourse>>)session.getAttribute("map");
session.removeAttribute("map");
%>
<%
for(Map.Entry<StudentBasicInformation,List<OptionalCourse>> entry : map.entrySet()){
StudentBasicInformation stu = entry.getKey();
List<OptionalCourse> optionalCourses = entry.getValue();
for(OptionalCourse optionalCourse : optionalCourses){
%>
<tr>
<td><%= optionalCourse.getYearTerm() %></td>
<td><%= stu.getStudentId() %></td>
<td><%= stu.getStudentName() %></td>
<td><%= stu.getAcademy() %></td>
<td><%= stu.getProfession() %></td>
<td><%= stu.getClassName() %></td>
<td><%= optionalCourse.getCourseId() %></td>
<td><%= optionalCourse.getCourseName() %></td>
<td><%= optionalCourse.getCredit() %></td>
<td><%= optionalCourse.getCourseType() %></td>
<td><%= optionalCourse.getTeacher() %></td>
<td><%= optionalCourse.getClassWay() %></td>
<td><%= optionalCourse.getClassTime() %></td>
</tr>
<%
}
}
%>
</table>
</div>
</c:if>
</div>
</c:if>
</body>
</html>
Loading…
Cancel
Save