|
|
|
|
@ -3,140 +3,174 @@
|
|
|
|
|
<%@page import="com.hua.entity.StudentBasicInformation"%>
|
|
|
|
|
<%@page import="java.util.Map"%>
|
|
|
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
|
|
|
|
pageEncoding="UTF-8"%>
|
|
|
|
|
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>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>
|
|
|
|
|
<h1>考级学生成绩</h1>
|
|
|
|
|
<form action="<%=request.getContextPath()%>/dean.query" 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>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>学号:</td>
|
|
|
|
|
<td><input type="text" name="studentId"/></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>学生姓名:</td>
|
|
|
|
|
<td><input type="text" name="studentName"/></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="submit" value="查询"/></td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
<!-- 从session作用域中获取名为"user"的对象的"name"属性值,并向用户展示问候语,这里使用了EL表达式(Expression Language)来获取相应属性值 -->
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
|
<table border="2" 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<LevelExamination>> map = (Map<StudentBasicInformation,List<LevelExamination>>)session.getAttribute("map");
|
|
|
|
|
%>
|
|
|
|
|
<%
|
|
|
|
|
for(Map.Entry<StudentBasicInformation,List<LevelExamination>> entry : map.entrySet()){
|
|
|
|
|
StudentBasicInformation student = entry.getKey();
|
|
|
|
|
List<LevelExamination> levelExamination = entry.getValue();
|
|
|
|
|
for(LevelExamination stu : levelExamination){
|
|
|
|
|
|
|
|
|
|
%>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><%= stu.getYearTerm()%></td>
|
|
|
|
|
<td><%= stu.getStudentId()%></td>
|
|
|
|
|
<td><%= student.getStudentName()%></td>
|
|
|
|
|
<td><%= stu.getLevelEaxmCourse()%></td>
|
|
|
|
|
<td><%= stu.getEaxmTime()%></td>
|
|
|
|
|
<td><%= stu.getGrade() %></td>
|
|
|
|
|
<td><%= student.getAcademy() %></td>
|
|
|
|
|
<td><%= student.getClassName() %></td>
|
|
|
|
|
<td><%= student.getProfession() %></td>
|
|
|
|
|
<td><%= stu.getExamId() %></td>
|
|
|
|
|
<td><%= stu.getListenGrade() %></td>
|
|
|
|
|
<td><%= stu.getReadingGrade() %></td>
|
|
|
|
|
<td><%= stu.getWritingGrade() %></td>
|
|
|
|
|
<td><%= stu.getSpokenGrade() %></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<%
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%>
|
|
|
|
|
</table>
|
|
|
|
|
<!-- 创建一个超链接,点击可返回上一步,其目标地址是通过应用上下文路径(request.getContextPath())与指定的JSP页面路径(/acdemic_dean/acdemic_dean.jsp)拼接确定 -->
|
|
|
|
|
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic_dean.jsp">返回上一步</a>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 页面上的一个标题,显示为"考级学生成绩",用于明确该部分内容的主题 -->
|
|
|
|
|
<h1>考级学生成绩</h1>
|
|
|
|
|
<!-- 创建一个表单,用于提交查询考级学生成绩相关信息的请求。表单的action属性指定了提交的目标地址(通过应用上下文路径与/dean.query拼接),提交方式为POST -->
|
|
|
|
|
<form action="<%=request.getContextPath()%>/dean.query" 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指定的地址(即/dean.query对应的处理逻辑) -->
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="submit" value="查询"/></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</form>
|
|
|
|
|
<!-- 空行,用于页面排版,使页面布局更加清晰、美观 -->
|
|
|
|
|
<br><br>
|
|
|
|
|
<!-- 创建一个带有边框(border="2")、单元格边距(cellpadding="0")和单元格间距(cellspacing="0")设置的表格,用于展示考级学生成绩的详细信息 -->
|
|
|
|
|
<table border="2" 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>
|
|
|
|
|
<!-- 以下是JSP脚本片段,用于从session作用域中获取名为"map"的属性值,并将其转换为特定的类型(Map<StudentBasicInformation, List<LevelExamination>>),假设该属性中存放着查询到的考级学生成绩相关数据 -->
|
|
|
|
|
<%
|
|
|
|
|
Map<StudentBasicInformation, List<LevelExamination>> map = (Map<StudentBasicInformation, List<LevelExamination>>)session.getAttribute("map");
|
|
|
|
|
%>
|
|
|
|
|
<!-- 以下是嵌套的循环代码块,外层循环遍历前面获取到的"map"中的键值对(每个键值对表示一个学生对应的考级考试成绩列表信息),内层循环遍历每个学生对应的考级考试成绩列表,用于逐行展示考级学生成绩的详细信息 -->
|
|
|
|
|
<%
|
|
|
|
|
for(Map.Entry<StudentBasicInformation, List<LevelExamination>> entry : map.entrySet()){
|
|
|
|
|
StudentBasicInformation student = entry.getKey();
|
|
|
|
|
List<LevelExamination> levelExamination = entry.getValue();
|
|
|
|
|
for(LevelExamination stu : levelExamination){
|
|
|
|
|
%>
|
|
|
|
|
<tr>
|
|
|
|
|
<!-- 在表格的单元格中展示考级学生成绩对应的学年学期信息,通过Java代码获取考级考试成绩对象(stu)中的学年学期属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getYearTerm()%></td>
|
|
|
|
|
<!-- 在表格的单元格中展示学生的学号信息,通过Java代码获取考级考试成绩对象(stu)中的学号属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getStudentId()%></td>
|
|
|
|
|
<!-- 在表格的单元格中展示学生的姓名信息,通过Java代码获取学生对象(student)中的姓名属性值并输出显示 -->
|
|
|
|
|
<td><%= student.getStudentName()%></td>
|
|
|
|
|
<!-- 在表格的单元格中展示考级课程信息,通过Java代码获取考级考试成绩对象(stu)中的考级课程属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getLevelEaxmCourse()%></td>
|
|
|
|
|
<!-- 在表格的单元格中展示考级时间信息,通过Java代码获取考级考试成绩对象(stu)中的考级时间属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getEaxmTime()%></td>
|
|
|
|
|
<!-- 在表格的单元格中展示总成绩信息,通过Java代码获取考级考试成绩对象(stu)中的总成绩属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getGrade() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示学生所在院系信息,通过Java代码获取学生对象(student)中的院系属性值并输出显示 -->
|
|
|
|
|
<td><%= student.getAcademy() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示学生所在班级名称信息,通过Java代码获取学生对象(student)中的班级名称属性值并输出显示 -->
|
|
|
|
|
<td><%= student.getClassName() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示学生的专业信息,通过Java代码获取学生对象(student)中的专业属性值并输出显示 -->
|
|
|
|
|
<td><%= student.getProfession() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示准考证号信息,通过Java代码获取考级考试成绩对象(stu)中的准考证号属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getExamId() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示听力成绩信息,通过Java代码获取考级考试成绩对象(stu)中的听力成绩属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getListenGrade() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示阅读成绩信息,通过Java代码获取考级考试成绩对象(stu)中的阅读成绩属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getReadingGrade() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示写作成绩信息,通过Java代码获取考级考试成绩对象(stu)中的写作成绩属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getWritingGrade() %></td>
|
|
|
|
|
<!-- 在表格的单元格中展示口语成绩信息,通过Java代码获取考级考试成绩对象(stu)中的口语成绩属性值并输出显示 -->
|
|
|
|
|
<td><%= stu.getSpokenGrade() %></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<%
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
%>
|
|
|
|
|
</table>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|