2 #12

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

@ -6,34 +6,47 @@ import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* JDBC
* @author hua
* `JDBCUtils`JDBC便Java
*
* @author hua
*/
public class JDBCUtils {
// 用于存储数据源对象这里使用了C3P0连接池中的ComboPooledDataSource实现类来管理数据库连接设置为静态变量保证全局唯一且只会被初始化一次。
private static DataSource dataSource = null;
static{
//数据源只能被创建一次
// 静态代码块,在类加载时执行,用于初始化数据源对象。
// 这里通过指定配置名称("hua.project"创建了一个ComboPooledDataSource实例意味着它会根据名为"hua.project"的配置信息来配置数据库连接池相关参数例如数据库驱动、URL、用户名、密码等这些配置信息通常在对应的配置文件中定义
// 由于是静态代码块,所以这个初始化操作只会执行一次,保证了整个应用中数据源的唯一性。
static {
// 数据源只能被创建一次
dataSource = new ComboPooledDataSource("hua.project");
}
/**
*
* @return Connection
* @throws SQLException
*
* `dataSource``getConnection``Connection`SQL
* `SQLException`
*
* @return `Connection`SQL
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
/**
* Connection
* @param conn
*
* `Connection`
* `Connection``null``null``close`
* `e.printStackTrace()`便
*
* @param conn `getConnection`使
*/
public static void closeConnection(Connection conn){
if(conn != null){
public static void closeConnection(Connection conn) {
if (conn!= null) {
try {
conn.close();
} catch (Exception e) {
@ -41,4 +54,4 @@ public class JDBCUtils {
}
}
}
}
}

@ -2,136 +2,165 @@
<%@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>教务管理系统</title>
<!-- 设置页面的字符编码类型为UTF-8 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>教务管理系统</title>
</head>
<body>
<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/grademanagement.jsp">返回上一步</a>
</div>
<h1>学生成绩统计分析</h1>
<form action="<%=request.getContextPath()%>/gradeAnalysis.grade" 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>
<c:if test="${sessionScope.results != null }">
<!-- 创建一个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页面路径来确定目标地址 -->
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic/grademanagement.jsp">返回上一步</a>
</div>
<!-- 页面标题,显示为"学生成绩统计分析" -->
<h1>学生成绩统计分析</h1>
<!-- 创建一个表单用于提交查询学生成绩统计分析相关的条件信息表单提交到指定的Servlet通过应用上下文路径拼接".grade"后缀来确定具体的Servlet处理路径提交方式为POST -->
<form action="<%=request.getContextPath()%>/gradeAnalysis.grade" 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>
<!-- 表格的一行,用于输入学号信息 -->
<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>
<!-- 使用JSTL的标签进行条件判断如果sessionScope中的"results"属性不为null意味着可能已经从后端获取到了学生成绩统计分析的结果数据则执行以下代码块 -->
<c:if test="${sessionScope.results!= null }">
<!-- 创建一个带有边框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>
</tr>
<%
Map<StudentBasicInformation, GradeAnalysisResult> results =
<!-- 表格的表头行,定义了各个列显示的标题 -->
<tr>
<th>学号</th>
<th>学生姓名</th>
<th>学院</th>
<th>专业</th>
<th>班级</th>
<th>课程门数</th>
<th>平均分</th>
<th>总分</th>
<th>平均学分成绩</th>
<th>平均学分绩点</th>
<th>绩点排名</th>
</tr>
<!-- 以下是Java代码块用于从session中获取存储的学生成绩统计分析结果数据类型为Map键是StudentBasicInformation类型值是GradeAnalysisResult类型并移除session中的"results"属性(可能是为了避免重复使用或内存占用等考虑) -->
<%
Map<StudentBasicInformation, GradeAnalysisResult> results =
(Map<StudentBasicInformation, GradeAnalysisResult>)session.getAttribute("results");
session.removeAttribute("results");
%>
<%
for(Map.Entry<StudentBasicInformation,GradeAnalysisResult> entry : results.entrySet()){
StudentBasicInformation stu = entry.getKey();
GradeAnalysisResult gradeAnalysisResult = entry.getValue();
%>
<tr>
<td><%= stu.getStudentId()%></td>
<td><%= stu.getStudentName()%></td>
<td><%= stu.getAcademy()%></td>
<td><%= stu.getProfession()%></td>
<td><%= stu.getClassName()%></td>
<td><%= gradeAnalysisResult.getCourseCount()%></td>
<td><%= gradeAnalysisResult.getAverScore()%></td>
<td><%= gradeAnalysisResult.getScore() %></td>
<td><%= gradeAnalysisResult.getAverCreditGrade() %></td>
<td><%= gradeAnalysisResult.getGradePoint() %></td>
<td></td>
</tr>
<%
}
%>
</table>
</c:if>
session.removeAttribute("results");
%>
<!-- 以下是Java代码块通过遍历前面获取到的结果Map依次取出每个学生对应的成绩分析结果信息并将其展示在表格的行数据中 -->
<%
for(Map.Entry<StudentBasicInformation,GradeAnalysisResult> entry : results.entrySet()){
StudentBasicInformation stu = entry.getKey();
GradeAnalysisResult gradeAnalysisResult = entry.getValue();
%>
<tr>
<!-- 在表格单元格中展示学生的学号信息通过Java代码获取学生对象中的学号属性值并输出 -->
<td><%= stu.getStudentId()%></td>
<!-- 在表格单元格中展示学生的姓名信息通过Java代码获取学生对象中的姓名属性值并输出 -->
<td><%= stu.getStudentName()%></td>
<!-- 在表格单元格中展示学生所在学院信息通过Java代码获取学生对象中的学院属性值并输出 -->
<td><%= stu.getAcademy()%></td>
<!-- 在表格单元格中展示学生的专业信息通过Java代码获取学生对象中的专业属性值并输出 -->
<td><%= stu.getProfession()%></td>
<!-- 在表格单元格中展示学生所在班级信息通过Java代码获取学生对象中的班级属性值并输出 -->
<td><%= stu.getClassName()%></td>
<!-- 在表格单元格中展示学生的课程门数信息通过Java代码获取成绩分析结果对象中的课程门数属性值并输出 -->
<td><%= gradeAnalysisResult.getCourseCount()%></td>
<!-- 在表格单元格中展示学生的平均分信息通过Java代码获取成绩分析结果对象中的平均分属性值并输出 -->
<td><%= gradeAnalysisResult.getAverScore()%></td>
<!-- 在表格单元格中展示学生的总分信息通过Java代码获取成绩分析结果对象中的总分属性值并输出 -->
<td><%= gradeAnalysisResult.getScore() %></td>
<!-- 在表格单元格中展示学生的平均学分成绩信息通过Java代码获取成绩分析结果对象中的平均学分成绩属性值并输出 -->
<td><%= gradeAnalysisResult.getAverCreditGrade() %></td>
<!-- 在表格单元格中展示学生的平均学分绩点信息通过Java代码获取成绩分析结果对象中的平均学分绩点属性值并输出 -->
<td><%= gradeAnalysisResult.getGradePoint() %></td>
<!-- 此处预留了绩点排名的单元格,但目前代码中没有填充相应的值,可能需要根据实际业务逻辑从后端获取并填充 -->
<td></td>
</tr>
<%
}
%>
</table>
</c:if>
</body>
</html>

@ -3,149 +3,187 @@
<%@page import="com.hua.entity.StudentGrade"%>
<%@page import="java.util.List"%>
<%@ 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>教务管理系统</title>
<!-- 设置页面的HTTP响应头中的内容类型为HTML字符编码为UTF-8 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>教务管理系统</title>
</head>
<body>
<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/grademanagement.jsp">返回上一步</a>
</div>
<h1>学生成绩</h1>
<form action="<%=request.getContextPath()%>/deanQuery.grade" 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>
<!-- 创建一个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>
<c:if test="${sessionScope.map != null }">
<!-- 创建一个超链接点击可返回上一步跳转到成绩管理页面同样通过应用上下文路径拼接具体的JSP页面路径来确定目标地址 -->
<a href="<%=request.getContextPath() %>/acdemic_dean/acdemic/grademanagement.jsp">返回上一步</a>
</div>
<!-- 页面标题,显示为"学生成绩" -->
<h1>学生成绩</h1>
<!-- 创建一个表单用于提交查询学生成绩相关的条件信息表单提交到指定的Servlet通过应用上下文路径拼接".grade"后缀来确定具体的Servlet处理路径提交方式为POST -->
<form action="<%=request.getContextPath()%>/deanQuery.grade" 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>
<!-- 表格的一行,用于输入学号信息 -->
<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>
<!-- 空行,用于页面排版,使布局更清晰 -->
<br><br>
<!-- 使用JSTL的标签进行条件判断如果sessionScope中的"map"属性不为null意味着可能已经从后端获取到了学生成绩相关的结果数据则执行以下代码块 -->
<c:if test="${sessionScope.map!= null }">
<!-- 创建一个带有边框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>
<th>成绩方式</th>
<th>有效</th>
<th>备注</th>
</tr>
<%
Map<StudentBasicInformation,List<StudentGrade>> map =
(Map<StudentBasicInformation,List<StudentGrade>>)session.getAttribute("map");
session.removeAttribute("map");
%>
<%
for(Map.Entry<StudentBasicInformation,List<StudentGrade>> entry : map.entrySet()){
StudentBasicInformation stu = entry.getKey();
List<StudentGrade> studentGrades = entry.getValue();
for(StudentGrade student : studentGrades){
%>
<tr>
<td><%= student.getYearTerm()%></td>
<td><%= student.getStudentId()%></td>
<td><%= student.getStudentName()%></td>
<td><%= stu.getAcademy()%></td>
<td><%= stu.getProfession()%></td>
<td><%= stu.getClassName()%></td>
<td><%= student.getCourseId()%></td>
<td><%= student.getCourseName()%></td>
<td><%= student.getScore() %></td>
<td><%= student.getGradePoint() %></td>
<td><%= student.getCredit() %></td>
<td><%= student.getCourseClass() %></td>
<td><%= student.getStudyWay() %></td>
<td><%= student.getExamWay() %></td>
<td><%= student.getGradeWay() %></td>
<td><%= student.getEffectivity() %></td>
<td><%= student.getRemarks() %></td>
</tr>
<%
}
<!-- 表格的表头行,定义了各个列显示的标题 -->
<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>
<th>成绩方式</th>
<th>有效</th>
<th>备注</th>
</tr>
<!-- 以下是Java代码块用于从session中获取存储的学生成绩结果数据类型为Map键是StudentBasicInformation类型值是List<StudentGrade>类型表示每个学生对应多门课程的成绩列表并移除session中的"map"属性(可能是为了避免重复使用或内存占用等考虑) -->
<%
Map<StudentBasicInformation, List<StudentGrade>> map =
(Map<StudentBasicInformation, List<StudentGrade>>)session.getAttribute("map");
session.removeAttribute("map");
%>
<!-- 以下是嵌套的Java代码块外层循环遍历前面获取到的结果Map每次取出一个学生对应的所有课程成绩列表内层循环再遍历该学生的每一门课程成绩将成绩信息逐行展示在表格中 -->
<%
for(Map.Entry<StudentBasicInformation, List<StudentGrade>> entry : map.entrySet()){
StudentBasicInformation stu = entry.getKey();
List<StudentGrade> studentGrades = entry.getValue();
for(StudentGrade student : studentGrades){
%>
<tr>
<!-- 在表格单元格中展示课程的学年学期信息通过Java代码获取课程成绩对象中的学年学期属性值并输出 -->
<td><%= student.getYearTerm()%></td>
<!-- 在表格单元格中展示学生的学号信息通过Java代码获取课程成绩对象中的学号属性值并输出 -->
<td><%= student.getStudentId()%></td>
<!-- 在表格单元格中展示学生的姓名信息通过Java代码获取课程成绩对象中的姓名属性值并输出 -->
<td><%= student.getStudentName()%></td>
<!-- 在表格单元格中展示学生所在学院信息通过Java代码获取学生对象中的学院属性值并输出 -->
<td><%= stu.getAcademy()%></td>
<!-- 在表格单元格中展示学生的专业信息通过Java代码获取学生对象中的专业属性值并输出 -->
<td><%= stu.getProfession()%></td>
<!-- 在表格单元格中展示学生所在班级信息通过Java代码获取学生对象中的班级属性值并输出 -->
<td><%= stu.getClassName()%></td>
<!-- 在表格单元格中展示课程的编号信息通过Java代码获取课程成绩对象中的课程编号属性值并输出 -->
<td><%= student.getCourseId()%></td>
<!-- 在表格单元格中展示课程的名称信息通过Java代码获取课程成绩对象中的课程名称属性值并输出 -->
<td><%= student.getCourseName()%></td>
<!-- 在表格单元格中展示课程的成绩信息通过Java代码获取课程成绩对象中的成绩属性值并输出 -->
<td><%= student.getScore() %></td>
<!-- 在表格单元格中展示课程的绩点信息通过Java代码获取课程成绩对象中的绩点属性值并输出 -->
<td><%= student.getGradePoint() %></td>
<!-- 在表格单元格中展示课程的学分信息通过Java代码获取课程成绩对象中的学分属性值并输出 -->
<td><%= student.getCredit() %></td>
<!-- 在表格单元格中展示课程的大类信息通过Java代码获取课程成绩对象中的课程大类属性值并输出 -->
<td><%= student.getCourseClass() %></td>
<!-- 在表格单元格中展示课程的修读方式信息通过Java代码获取课程成绩对象中的修读方式属性值并输出 -->
<td><%= student.getStudyWay() %></td>
<!-- 在表格单元格中展示课程的考试性质信息通过Java代码获取课程成绩对象中的考试性质属性值并输出 -->
<td><%= student.getExamWay() %></td>
<!-- 在表格单元格中展示课程的成绩方式信息通过Java代码获取课程成绩对象中的成绩方式属性值并输出 -->
<td><%= student.getGradeWay() %></td>
<!-- 在表格单元格中展示课程的有效信息通过Java代码获取课程成绩对象中的有效属性值并输出 -->
<td><%= student.getEffectivity() %></td>
<!-- 在表格单元格中展示课程的备注信息通过Java代码获取课程成绩对象中的备注属性值并输出 -->
<td><%= student.getRemarks() %></td>
</tr>
<%
}
%>
</table>
</c:if>
}
%>
</table>
</c:if>
</body>
</html>
Loading…
Cancel
Save