目录

一、前端页面

1、对列表页面进行改进

 二、项目开发

1、添加功能

 ①stuDao.class新建添加函数

 ②在DaoTest.class中写个测试

 ③在业务层stuService.class新建添加函数

 ④写一个前端添加页面

 ⑤编辑stuServlet.class

 ⑥测试

2、删除功能

 ①新建DAO层删除方法

 ②在test层进行测试

 ③在service层写一个删除业务

 ④修改stuList.jsp删除按钮

 ⑤在Servlet层写delStu.do逻辑

 ⑥测试与思路

3、修改功能

(1)根据学生ID获取学生信息

①在stuDao.class中添加findByStuId函数

②在DaoTest.class中进行测试

③在stuService.class新建查询函数

④在stuServlet.class中新建分支

⑤编写updateStu.jsp

(2)提交已修改的学生信息

①在stuDao.class写修改方法

②在DaoTest,class中进行测试

③在service实现修改业务

④在Servlet新建处理修改请求的分支

4、成绩查询

①在stuDao.class中新建查询函数

②在DaoTest.class中进行测试

 ③修改stuList.jsq的搜索框

④创建一个查询页面

⑤实现Servlet层功能

⑥测试与思路 


一、前端页面

1、对列表页面进行改进

        stuList.jsp

<%@page import="sams.ck.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.List,sams.ck.entity.*"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Student List</title>
</head>
<body>
	<table width='500px' border='5px' >
		
		<form action="stuList.do" method="post">
					<input name="stuId" ><input type="submit" value="搜索">
		</form>
		&ensp;
		<input type="button" class="button" value="添加" onclick="location='addStu.jsp'"/>
		&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;
		<input type="button" class="button" value="成绩查询" onclick="location='inquiryStu.jsp'"/>
		
		<tr>
			<td>学号</td>
			<td>姓名</td>
			<td>班级</td>
			<td>语文</td>
			<td>数学</td>
			<td>英语</td>
			<td>总分</td>
			<td>操作</td>
		</tr>
		<%            
			//java代码
			//到request中取出 绑定的数据
			List<Student>stus=(List<Student>)request.getAttribute("stus");
			//循环迭代 数据并显示
			for(Student stu:stus){
		%>
		<tr>
			<td>
				<%=stu.getStuId() %>
			</td>
			<td>
				<%=stu.getStuName() %>
			</td>
			<td>
				<%=stu.getStuClass() %>
			</td>
			<td>
				<%=stu.getChineseScore() %>
			</td>
			<td>
				<%=stu.getMathScore() %>
			</td>
			<td>
				<%=stu.getEnglisScore() %>
			</td>
			<td>
				<%=stu.getEnglisScore()+stu.getMathScore()+stu.getChineseScore() %>
			</td>
			<td>
				<input type="button" class="button" value="删除" onclick="location='delStu.do?stuId=<%=stu.getStuId() %>'"/>
				<input type="button" class="button" value="修改" onclick="location='toUpdateStu.do?stuId=<%=stu.getStuId() %>'"/>
			</td>
		</tr>
		<%} %>
	</table>
</body>
</html>

        启动服务查看页面效果:

 二、项目开发

1、添加功能

①stuDao.class新建添加函数

//添加学生成绩信息
	public void addStudent(Student stu) {
		try {
			//获取数据库连接
			Connection conn = DBUtil.getConnection();
			//定义SQL语句
			String sql = "insert into students(number,name,class,chinese,math,english)values(?,?,?,?,?,?)";
			//获取PreparedStatement对象
			PreparedStatement prep = conn.prepareStatement(sql);
			//添加占位符参数
			prep.setString(1, stu.getStuId());
			prep.setString(2, stu.getStuName());
			prep.setString(3, stu.getStuClass());
			prep.setDouble(4, stu.getChineseScore());
			prep.setDouble(5, stu.getMathScore());
			prep.setDouble(6, stu.getEnglisScore());
			//执行SQL
			prep.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

②在DaoTest.class中写个测试

package sams.ck.test;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import sams.ck.dao.stuDao;
import sams.ck.entity.Student;
import sams.ck.service.stuService;
import sams.ck.util.DBUtil;

public class DaoTest {
	public static void main(String[] args) {
		stuDao dao = new stuDao();
		Student stu = new Student();
		
		stu.setStuId("20222002");
		stu.setStuClass("2");
		stu.setStuName("小红");
		stu.setChineseScore(100.0);
		stu.setMathScore(100.0);
		stu.setEnglisScore(99.0);
		dao.addStudent(stu);
		
		System.out.println("添加成功");
		
		List<Student> stus= dao.findAllStudents(); 
		
		for(Student s:stus){
			System.out.println(s);
		}
	}
}

查看测试结果:

 

 ③在业务层stuService.class新建添加函数

//添加学生成绩信息
	public void stuAdd(Student stu) {
		dao.addStudent(stu);
	}

 ④写一个前端添加页面

        addStu.jsp

<%@page import="sams.ck.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.List,sams.ck.entity.*"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Add Student</title>
</head>
<body>
	<div>
		<div>
			<div>
				<h1>
					添加学生信息:
				</h1>
					<form action="addStu.do" method="post">
						<table cellpadding="0" cellspacing="0" border="0"
							class="form_table">
							<tr>
								<td valign="middle" align="right">
									学号:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="stuId"  />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									姓名:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="stuName" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									班级:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="stuClass" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									语文:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="ChineseScore" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									数学:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="MathScore" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									英语:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="EnglishScore" />
								</td>
							</tr>
						</table>
						<p>
							<input type="submit" class="button" value="确认" />
						</p>
					</form>
				</div>
			</div>
		</div>
	</body>
</html>

 ⑤编辑stuServlet.class

else if(path.equals("/addStu")) {
			// 获取前端浏览器传递过来的员工信息
			String stuId = request.getParameter("stuId");//学号
			String stuName = request.getParameter("stuName");//姓名
			String stuClass = request.getParameter("stuClass");//班级
			double ChineseScore = Double.parseDouble(request.getParameter("ChineseScore"));//语文
			double MathScore = Double.parseDouble(request.getParameter("MathScore"));//数学
			double EnglishScore = Double.parseDouble(request.getParameter("EnglishScore"));//英语
			// 将获取的前端传递的参数封装到Stu对象当中
			Student Stu = new Student();
			Stu.setStuId(stuId);
			Stu.setStuName(stuName);
			Stu.setStuClass(stuClass);
			Stu.setChineseScore(ChineseScore);
			Stu.setMathScore(MathScore);
			Stu.setEnglisScore(EnglishScore);
			//调用业务层代码提交给数据库
			service.stuAdd(Stu);
			// 添加成功后将页面重定向会 信息展示页
			response.sendRedirect("stuList.do");
		}

 ⑥测试

启动服务,搜索网址:http://127.0.0.1:8080/StudentAchievementManagementSystem/stuList.do

点击添加按钮到达addStu.jsp页面,添加学生信息:

 点击确认按钮,将信息传递到addStu.do中,addStu.do会通过Servlet默认处理,处理完在返回给stuList.jsp显示在列表页面上:

**需要注意的是,开发过程中一定要理清逻辑。

        在stuList.do页面,Servlet执行的功能是将数据库里的信息全部展示在当前页面。重点是前后端绑定同一个学生信息的数组。然后调用业务层代码取出数据库中的所有信息,通过实体类数组将学生成绩信息转发给前端页面。

        前端stuList.jsp上的添加按钮跳转到的页面是addStu.jsp,其表单提交页面是addStu.do,也就是说在addStu.jsp写好学生信息后点击确认,表单会传递给addStu.do页面,此时addStu.do在Servlet层接收处理,通过实体类接收前端传递来的信息,在调用业务层方法将封装好的信息传递给dao层再存入数据库。此时再进行页面跳转,回到stuList.do页面,也就是从数据库中显示全部学生信息,若看到新添加的学生信息,添加成功。

2、删除功能

①新建DAO层删除方法

        stuDao.class

//删除学生成绩信息
	public void deleteStudent(String stuId) {
		try {
			//获取数据库连接
			Connection conn = DBUtil.getConnection();
			//定义SQL语句
			String sql = "delete from students where number=?";
			//获取PreparedStatement对象
			PreparedStatement prep = conn.prepareStatement(sql);
			//将传递的参数 注入到占位符中
			prep.setString(1,stuId);
			//执行SQL
			prep.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

 ②在test层进行测试

        daoTest.class

package sams.ck.test;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import sams.ck.dao.stuDao;
import sams.ck.entity.Student;
import sams.ck.service.stuService;
import sams.ck.util.DBUtil;

public class DaoTest {
	public static void main(String[] args) {
		stuDao dao = new stuDao();
		
		String stuId = "20222003";
		
		dao.deleteStudent(stuId);
		
		System.out.println("删除成功");
		
		List<Student> stus= dao.findAllStudents(); 
		
		for(Student s:stus){
			System.out.println(s);
		}
	}
}

输出显示, 学号为20222003的小明已经被删除了

③在service层写一个删除业务

	//删除学生成绩信息
	public void stuDel(String stuId) {
		dao.deleteStudent(stuId);
	}

④修改stuList.jsp删除按钮

            <td>
				<input type="button" class="button" value="删除" onclick="location='delStu.do?stuId=<%=stu.getStuId() %>'"/>
				<input type="button" class="button" value="修改" onclick="location='toUpdateStu.do?stuId=<%=stu.getStuId() %>'"/>
			</td>

⑤在Servlet层写delStu.do逻辑

else if(path.equals("/delStu")) {
			// 服务端获取浏览器端传递的参数
			String stuId = request.getParameter("stuId");
			//调用业务层删除函数
			service.stuDel(stuId);
			// 使用重定向技术 完成页面的跳转
			response.sendRedirect("stuList.do");
		}

⑥测试与思路

测试:

启动服务访问页面:http://127.0.0.1:8080/StudentAchievementManagementSystem/stuList.do

点击删除小红:

删除后:

思路:

        首先在dao层写一个操作数据库的删除逻辑,删除的条件是学生的学号,因为学号是唯一的,以此为条件,可以防止误删其他信息。

        然后在业务层写一个删除函数,实际上就是调用dao层的功能,函数的参数依旧是学生学号。

        接下来我们修改前端学生信息列表页面,将删除按钮绑定跳转页面和学生学号。这里默认的是使用get方法,也就是跳转的路径和stuId参数都会在url中显示,但是不用担心,我们在Servlet层处理delStu.do时使用重定向技术返回到了stuList.do页面,用户是无法看到delStu.do页面的,也更看不到url参数。当然也可以选用post的请求方式传递参数。

         处理好前端后,我们来到Servlet层,当前端请求到delStu.do时,Servlet在此页面中实现了删除功能(调用业务层函数,学生学号参数通过request从前端获取),然后立刻重定向回到学生信息列表页面。

3、修改功能

(1)根据学生ID获取学生信息

①在stuDao.class中添加findByStuId函数

        修改学生信息前提是通过要修改的学生学号获取学生信息

//修改学生信息前提是通过要修改的学生学号获取学生信息
	public Student findByStuId(String stuId) {
		Student stu = null;
		try {
			//获取数据库连接
			Connection conn = DBUtil.getConnection();
			//定义SQL语句
			String sql = "select * from students where number=?";
			//获取PreparedStatement对象
			PreparedStatement prep = conn.prepareStatement(sql);
			//将传递的参数 注入到占位符中
			prep.setString(1,stuId);
			//执行SQL获取结果集对象
			ResultSet rs = prep.executeQuery();
			while (rs.next()) {
				stu = new Student();
				stu.setStuId(rs.getString("number"));
				stu.setStuName(rs.getString("name"));
				stu.setStuClass(rs.getString("class"));
				stu.setChineseScore(rs.getDouble("chinese"));
				stu.setEnglisScore(rs.getDouble("english"));
				stu.setMathScore(rs.getDouble("math"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return stu;
	}

②在DaoTest.class中进行测试

package sams.ck.test;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import sams.ck.dao.stuDao;
import sams.ck.entity.Student;
import sams.ck.service.stuService;
import sams.ck.util.DBUtil;

public class DaoTest {
	public static void main(String[] args) {
		stuDao dao = new stuDao();
		
		String stuId = "20221001";
		
		Student stu = new Student();
		
		stu = dao.findByStuId(stuId);
		
		System.out.println(stu+"查询成功");
	}
}

输出的20221001学号的学生信息,测试成功。

 

③在stuService.class新建查询函数

	//查询某个学生信息
	public Student findByStuId(String stuId){
		Student stu=dao.findByStuId(stuId);
		return stu;
	}

④在stuServlet.class中新建分支

else if (path.equals("/toUpdateStu")) {
			// 获取前端产地过来的stuId值
			String stuId = request.getParameter("stuId");//学号
			Student stu = service.findByStuId(stuId);
			// 将查询出的数据绑定到request对象中
			request.setAttribute("stu", stu);
			// 转发到updateStu.jsp页面
			request.getRequestDispatcher("updateStu.jsp").forward(request, response);
		}

⑤编写updateStu.jsp

<%@page import="sams.ck.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.List,sams.ck.entity.*"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Update Student</title>
</head>
<body>
	<div>
		<div>
			<div>
				<h1>
					修改学生信息:
				</h1>
					<form action="updateStu.do" method="post">
					
						<%
							Student stu=(Student)request.getAttribute("stu");
						
						%>
						<table cellpadding="0" cellspacing="0" border="0"
							class="form_table">
							<tr>
								<td valign="middle" align="right">
									学号:
								</td>
								<td valign="middle" align="left">
								<%=stu.getStuId() %>
								<input type="hidden" name="stuId" value="<%=stu.getStuId() %>"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									姓名:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="stuName" value="<%=stu.getStuName() %>"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									班级:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="stuClass" value="<%=stu.getStuClass() %>"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									语文:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="ChineseScore" value="<%=stu.getChineseScore() %>"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									数学:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="MathScore" value="<%=stu.getMathScore() %>"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									英语:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="EnglishScore" value="<%=stu.getEnglisScore() %>"/>
								</td>
							</tr>
						</table>
						<p>
							<input type="submit" class="button" value="确认" />
						</p>
					</form>
				</div>
			</div>
		</div>
	</body>
</html>

此处的stu与Servlet中的stu是相互绑定的

 

测试:

在成绩列表点击修改按钮

可以看到修改页面显示学生信息

(如果不想在url看到参数请将按钮提交方式改为post)

 测试成功。

(2)提交已修改的学生信息

①在stuDao.class写修改方法

//修改学生信息
	public void updateStudent(Student stu) {
		try {
			//获取数据库连接
			Connection conn = DBUtil.getConnection();
			//定义SQL语句
			String sql = "update students set name=?,class=?,chinese=?,math=?,english=? where number=?";
			//获取PreparedStatement对象
			PreparedStatement prep = conn.prepareStatement(sql);
			//将传递的参数 注入到占位符中
			
			prep.setString(1,stu.getStuName());
			prep.setString(2,stu.getStuClass());
			prep.setDouble(3,stu.getChineseScore());
			prep.setDouble(4,stu.getMathScore());
			prep.setDouble(5,stu.getEnglisScore());
			prep.setString(6,stu.getStuId());
			
			//执行SQL获取结果集对象
			prep.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

②在DaoTest,class中进行测试

package sams.ck.test;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import sams.ck.dao.stuDao;
import sams.ck.entity.Student;
import sams.ck.service.stuService;
import sams.ck.util.DBUtil;

public class DaoTest {
	public static void main(String[] args) {
		stuDao dao = new stuDao();
		
		String stuId = "20221001";
		
		Student stu = new Student();
		stu = dao.findByStuId(stuId);
		System.out.println("修改前:"+stu);
		stu.setChineseScore(0.0);
		stu.setEnglisScore(0.0);
		stu.setMathScore(0.0);
		dao.updateStudent(stu);
		System.out.println("修改后:"+stu);
	}
}

测试结果显示,修改成功:

③在service实现修改业务

//修改学生信息
	public void updateStu(Student stu){
		dao.updateStudent(stu);
	}

④在Servlet新建处理修改请求的分支

else if (path.equals("/updateStu")) {
			// 获取请求参数
			String stuId = request.getParameter("stuId");//学号
			String stuName = request.getParameter("stuName");//姓名
			String stuClass = request.getParameter("stuClass");//班级
			double ChineseScore = Double.parseDouble(request.getParameter("ChineseScore"));//语文
			double MathScore = Double.parseDouble(request.getParameter("MathScore"));//数学
			double EnglishScore = Double.parseDouble(request.getParameter("EnglishScore"));//英语
			// 封装数据
			Student Stu = new Student();
			Stu.setStuId(stuId);
			Stu.setStuName(stuName);
			Stu.setStuClass(stuClass);
			Stu.setChineseScore(ChineseScore);
			Stu.setMathScore(MathScore);
			Stu.setEnglisScore(EnglishScore);
			//实现修改业务
			service.updateStu(Stu);
			// 重定向回列表显示页面
			response.sendRedirect("stuList.do");
		}

⑤测试与思路

测试:

 

思路:

        修改学生信息,首先要通过修改学生的id获取全部需要修改的学生信息。在dao层实现通过学生id对学生信息的查找。在前端通过url传递参数,在servlet中从request中获取前端传递来的参数,再通过业务层对象调取dao层方法,将此id全部学生信息显示在修改页面。总而言之,就是从前端获取学生id,通过后端查询id并显示在页面上。

        数据正常显示后,再将前端修改后的信息传递给Servlet层,Servlet层通过调用后端的更新方法来提交给数据库,并重定向会前端列表界面。

4、成绩查询

新的页面:输入学号、显示姓名、语文、数学、英语、总分。

①在stuDao.class中新建查询函数

//查询学生成绩
	public Student seleStudent(String stuId) {
		Student stu = null;
		try {
			//获取数据库连接
			Connection conn = DBUtil.getConnection();
			//定义SQL语句
			String sql = "select name,Chinese,Math,English FROM students WHERE number=?";
			//获取PreparedStatement对象
			PreparedStatement prep = conn.prepareStatement(sql);
			//将传递的参数 注入到占位符中
			prep.setString(1,stuId);
			//执行SQL获取结果集对象
			ResultSet rs = prep.executeQuery();
			while (rs.next()) {
				stu = new Student();
				stu.setStuName(rs.getString("name"));
				stu.setChineseScore(rs.getDouble("chinese"));
				stu.setEnglisScore(rs.getDouble("english"));
				stu.setMathScore(rs.getDouble("math"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return stu;
	}

②在DaoTest.class中进行测试

package sams.ck.test;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import sams.ck.dao.stuDao;
import sams.ck.entity.Student;
import sams.ck.service.stuService;
import sams.ck.util.DBUtil;

public class DaoTest {
	public static void main(String[] args) {
		stuDao dao = new stuDao();
		String stuId = "20221001";
		Student stu = new Student();
		stu = dao.seleStudent(stuId);
		System.out.println(stu);
	}
}

测试结果,查询成功:

 ③修改stuList.jsq的搜索框

		<form action="toInquiryStu.do" method="post">
			<input placeholder="请输入您的学号" name="stuId" ><input type="submit" value="查询">
		</form>

④创建一个查询页面

InquiryStu.jsp

<%@page import="sams.ck.service.stuService"%>
<%@page import="sams.ck.entity.Student"%>
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.util.List,sams.ck.entity.*"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Update Student</title>
</head>
<body>
	<div>
		<div>
			<div>
				<h1>
					查询学生成绩:
				</h1>
					<form action="stuList.do" method="post">
						<%
							Student stu=(Student)request.getAttribute("stu");
						%>
						<table cellpadding="0" cellspacing="0" border="0"
							class="form_table">
							<tr>
								<td valign="middle" align="right">
									学生姓名:
								</td>
								<td valign="middle" align="left">
									<input type="text"  name="stUName"  value="<%=stu.getStuName() %>" readonly="readonly"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									语文分数:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="ChineseScore" value="<%=stu.getChineseScore() %>" readonly="readonly"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									数学分数:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="MathScore" value="<%=stu.getMathScore() %>" readonly="readonly"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									英语分数:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="EnglishScore" value="<%=stu.getEnglisScore() %>" readonly="readonly"/>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									总分数:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="totalScore" value="<%=stu.getChineseScore()+stu.getMathScore()+stu.getEnglisScore() %>" readonly="readonly"/>
								</td>
							</tr>
							
						</table>
						<p>
							<input type="submit" class="button" value="返回" />
						</p>
					</form>
				</div>
			</div>
		</div>
	</body>
</html>

⑤实现Servlet层功能

else if (path.equals("/toInquiryStu")) {
			// 服务端获取浏览器端传递的参数
			String stuId = request.getParameter("stuId");
			//调用业务层的查询方法
			Student stu = service.selecStudent(stuId);
			//将查询结果传给前端
			// 将查询出的数据绑定到request对象中
			request.setAttribute("stu", stu);
			// 转发到inquiryStu.jsp页面
			request.getRequestDispatcher("inquiryStu.jsp").forward(request, response);
		}

⑥测试与思路 

测试:

输入学号

查询页面

思路:

  •         dao层根据学号查询学生成绩信息:语文、数学、英语、总分的分数。
  •         service层调用dao层。
  •         前端 jsp 页面把输入的学号传递给Servlet,Servlet拿着学号去业务层调方法取得数据库中的分数信息,再通过转发技术将参数返回给前端查询页面。

更多推荐