java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)

学生成绩管理系统(源码地址在评论区需要的小伙伴可以看看,大二时做的,做得不太好)

一、实验目的

为了更好的学习理解JavaWeb,创建了此系统。此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识。Java web课程设计联系了前端的HTML、CSS、JAVASCRIPT、JSP等各项语言,同时紧密的将后台开发的java语言和数据库联系在一起,从整体上实现了java web项目的认识与实践。

二、实验平台

eclipse下的javaee,Tomcat服务器,mysql数据库。

三、实验主要内容

学生成绩管理系统,此系统使用开发模式2,使用Javabean与jsp结合的形式,封装数据库中数据,并由jsp显示界面。使用servlet,根据登录页面传的数据分析用户的身份,传送到不同界面,在学生端界面使用精确查询,学生输入学号,查询出各科成绩及考试情况信息。教师端界面,javabean结合jsp,在servlet里,把数据库表的信息存储到session域中,在教师端主页面使用EL表达式的形式调用了session域的表信息,教师端主页面采用css,JavaScript等,显示了学生考试信息,并实现了增删改,链接到不同jsp中。

四、部分关键代码实现:

1.用户登录,注册功能:

登录界面(index.jsp):

系统的主页面,使用JavaScript,不输入用户名,密码会进行页面提示,学生身份使用任意注册用户名与密码,教师身份输入固定用户名:“root”,密码:"123456",从而进入LoginServlet,重定向判断进入教师端还是学生端主页面。

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<!--本系统使用session域结合jsp,el域jstl 和JavaScript  -->
<!--登录主页面,JavaScript+css  -->
<!DOCTYPE html>
<html>
<head>

<title>登录页面</title>
	<script type="text/javascript">
		function chkData(){
			var uname = document.getElementById("uname");   // 获取控件
			var upasss = document.getElementById("upass");
			
			var flag = false;
			if(uname.value==""){
				alert("请填写用户名信息。");
				uname.focus();
			}else if(upass.value==""){
				alert("请填写密码信息。");
				upass.focus();
			}else{
				flag = true;
			}
			
			return flag;
		}
	</script>
	<style type="text/css">
	.blue{color:black;
			font-size:30px;
			margin-top:10px;
	}
		.jiemian{width:800px;
			height: 800px;
			background-color: aqua;
		}
	.ding{ width: auto;
				height: auto;
			background-color: rgb(179,214,234);
			font-size:40px;
			margin:0px;
			padding:0px;
			
		}
		.zheng{ background-color: rgba(83,146,255,1.00);
		margin-top:10px;
		
		}
		
		.zhong-y{
			
			 margin-left:auto;
			 margin-right:auto;
			 width:400px;
			height: 200px;
			padding-top:10px;
		
		}
		.zhong-z{
				width:300px;
				height:300px;
				
				
		}
		.zhuce{
				font-size:15px;
		}
		.xia{
		 width:500px;
		height:500px;
		}
		
	</style>
	
	
</head>
<body style="background-image:url('img/jiemian.jpg');">
	<div class="ding" align="center">欢迎登录学生成绩管理系统</div>
<div >	
	
	<div class="zhong-y"><form name="frm" method="post" action="LoginServlet">
	
		<table border="1"  class="blue" >
			<tr>
				<th colspan="2" class="blue">学生成绩管理系统</th>
			</tr>
			<tr>
				<td>用户名:</td>
				<td><input type="text" name="uname" id="uname"/></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type="password" name="upass" id="upass"/></td>
			</tr>
			<tr>
			<tr>
				<td>
				<input name="user" type="radio" value="student" checked>学生</td>
				<td>
				<input name="user" type="radio" value="administrator">老师<br></td>
			</tr>
				<td colspan="2" align="center">
					<input type="submit" value="登录" onclick="return chkData();"/> 
					<input type="reset" value="重置"/>
				</td>
			</tr>
			
		

	</form>
</div>
	
			<form name="fm" method="post" action="zhuce.jsp" align="center">
				
					<tr>
						<td align="center" colspan="2" ><p class="zhuce">没有账号?点击注册</p></td>
						<td>
							
							<input type="submit" value="注册">
						
						</td>
					</tr>

							
			</form>
	</table>
</body>
</html>

登录身份判断servlet:

LoginServlet:从index.jsp主页面使用form接收传来的数据,进入到此servlet,判断身份进入学生还是教师端界面。

package cn.edu.bzu.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
/**
 * @author 重定向,教师使用账号:root,密码:123456 登录教师端页面
 *
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		String uname=request.getParameter("uname");
		String upass=request.getParameter("upass");
		if(("root").equals(uname)&&("123456").equals(upass)) {
			response.sendRedirect("StudenListServlet");
		}else {
			response.sendRedirect("/StudentScoresManager/StuScoresListSearch.jsp");
		}
		
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
		
		
	}

}

2.注册界面(Regist.jsp):

学生注册身份,并在doRegist.jsp中返回显示注册的信息。

<%@ page language="java"  pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<!--注册页面 
使用JavaScript提示页面信息
 -->
<title>用户注册页面</title>
	<script type="text/javascript">
		function chkData(){
			
			var  uname = document.getElementById("uname");  
			var upass = document.getElementById("upass");
			var upassConfirm=document.getElementById("upassConfirm");
			var phone=document.getElementById("phone");
			var flag = false;
			if(uname.value==""){
				alert('请填写用户名信息。');
				 uname.focus();
			}else if(upass.value==""){
				alert('请填写密码信息。');
				upass.focus();
			}else if(upass.value!=upassConfirm.value){
				alert('确认密码与密码不一致');
				upassConfirm.focus();
			}else if(phone.value==""){
				alert('请输入手机号');
				phone.focus();
				
			}else{
				flag = true;
			}
			
			return flag;
			
		}
	</script>
</head>
<body>
	<center>用户信息注册页面,带*号为必填项</center>
	<form name="frm" action="doRegist.jsp" method="post">
		
		<table border="1" align="center">
			<tr>
				<td>用户名*:</td>
				<td><input type="text" name="uname" id="uname"/></td>
			</tr>
			<tr>
				<td>密码*:</td>
				<td><input type="password" name="upass" id="upass"/></td>
			</tr>
			
			<tr>
				<td>确认密码*:</td>
				<td><input type="password" name="upassConfirm" id="upassConfirm"/></td>
			</tr>
			<tr>
				<td>手机号*:</td>
				<td><input type="text" name="phone" id="phone"/></td>
			</tr>
			<tr>
				<td>电子邮箱:</td>
				<td><input type="text" name="email" id="email"/></td>
			</tr>
			<tr>
				<td>性别:</td>
				<td><input type="radio" name="gender" value="male"/>男
				<input type="radio" name="gender" value="female"/>女
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center">
				<input type="submit" value="注册" onclick="return chkData();"/>
				<input type="reset" value="重置"/>
			    </td>
		
			</tr>
			
			</table>
		
	</form>
</body>

注册信息显示界面(doRegist.jsp):

<%@ page language="java" pageEncoding="utf-8"%>
<!--
注册页面执行界面,
显示注册的信息

  -->
<!DOCTYPE html>
<html>
<head>
<title>注册信息</title>
</head>
<body>
	
	<%
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
	String uname=request.getParameter("uname");
	String upass=request.getParameter("upass");
	String phone=request.getParameter("phone");
	String email=request.getParameter("email");
	out.print("用户名:"+uname);
	out.print("密码:"+upass);
	out.print("手机号:"+phone);
	out.print("邮箱:"+email);
	out.print("<br/>恭喜,注册成功");
	
	%>
	<form name="frm" method="post" action="index.jsp">
		<table>
					<tr>
						<td>点击此处返回登录</td>
						<td>
							
							<input type="submit" value="登录">
						
						</td>
					</tr>

				</table>
		
	</form>
	
</body>
</html>

3.学生端查询成绩(StuScoresListSearch.jsp)

输入学号查询成绩

<form name="cx" action="doSearch.jsp">
		请输入学号:<input type="text" name="stunum">
		<input type="submit" value="查询">
	</form>
	<form name="fanhui" action="index.jsp">
		点击此处返回登录:
		<input type="submit" value="返回">
	</form>

学生成绩查询执行显示界面(doSearch.jsp)

连接数据库,精确查询,查询出数据库表中的信息

<table border="1" align="center">
		<tr>	
			<th>id</th>
			<th>学号</th>
			<th>姓名</th>
			<th>科目</th>
			<th>成绩</th>
			<th>班级成绩总排名</th>
			<th>期末考试排名</th>
			<th>是否挂科</th>
		</tr>
	<%
		String stunum=request.getParameter("stunum");
		if(stunum==null||stunum.equals("")){
			response.sendRedirect("StuScoresListSearch.jsp");
		}
		
		String CLS = "com.mysql.cj.jdbc.Driver";
		String URL = "jdbc:mysql://localhost:3306/stuscoremanager?useSSL=false&serverTimezone=UTC";
		String USER = "root";
		String PWD = "123456";
		
		try{
			Class.forName(CLS);
			Connection conn = DriverManager.getConnection(URL, USER, PWD);
			String sql = "select * from stuscoreslist where stunum='"+stunum+"'";
			PreparedStatement pStmt = conn.prepareStatement(sql);
			ResultSet rs = pStmt.executeQuery();
			while(rs.next()){
				out.print("<tr>");
				out.print("<td>"+rs.getInt("id")+"</td>");
				out.print("<td>"+rs.getString("stunum")+"</td>");
				out.print("<td>"+rs.getString("stuname")+"</td>");
				out.print("<td>"+rs.getString("course")+"</td>");
				out.print("<td>"+rs.getString("score")+"</td>");
				out.print("<td>"+rs.getString("paiming")+"</td>");
				out.print("<td>"+rs.getString("qimo")+"</td>");
				out.print("<td>"+rs.getString("guake")+"</td>");
				out.print("</tr>");
			}
			
			rs.close();
			rs=null;
			pStmt.close();
			pStmt=null;
			conn.close();
			conn=null;
		}catch(Exception ex){
			ex.printStackTrace();
		}
	%>
	</table>

4.教师端

建立Dbutil类,连接关闭数据库,stuinfo类封装上数据库中表数据,Userdao类把成绩信息封装到list集合中,在servlet文件:StudentListServlet中调用session域,并把list信息存到session域,便于在stulist.jsp界面调用。

         stulist.jsp使用了EL表达式与jstl标签(也可不用,此方式为了期末考试可以全面复习),调用了session域存储的数据库表中的信息.

                                      教师端封装学生信息类(stuinfo):

public class stuinfo {
	private String id;
	private String stunum;
	private String stuname;
	private String course;
	private String score;
	private String paiming;
	private String qimo;
	private String guake;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getStunum() {
		return stunum;
	}
	public void setStunum(String stunum) {
		this.stunum = stunum;
	}
	public String getStuname() {
		return stuname;
	}
	public void setStuname(String stuname) {
		this.stuname = stuname;
	}
	public String getCourse() {
		return course;
	}
	public void setCourse(String course) {
		this.course = course;
	}
	public String getScore() {
		return score;
	}
	public void setScore(String score) {
		this.score = score;
	}
	public String getPaiming() {
		return paiming;
	}
	public void setPaiming(String paiming) {
		this.paiming = paiming;
	}
	public String getQimo() {
		return qimo;
	}
	public void setQimo(String qimo) {
		this.qimo = qimo;
	}
	public String getGuake() {
		return guake;
	}
	public void setGuake(String guake) {
		this.guake = guake;
	}
	public stuinfo() {
		super();
		// TODO Auto-generated constructor stub
	}
	public stuinfo(String id, String stunum, String stuname, String course, String score, String paiming, String qimo,
			String guake) {
		super();
		this.id = id;
		this.stunum = stunum;
		this.stuname = stuname;
		this.course = course;
		this.score = score;
		this.paiming = paiming;
		this.qimo = qimo;
		this.guake = guake;
	}
	
	

                              Userdao类:

public class UserDao extends DbUtils  {
	public List<stuinfo> getAllUsers(){
		 
		List<stuinfo> list =new ArrayList<stuinfo>();

		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		}catch(ClassNotFoundException e) {
			e.printStackTrace();		
		}
		try {
			conn= DriverManager
					.getConnection("jdbc:mysql://localhost:3306/stuscoremanager?useSSL=false&serverTimezone=UTC", "root","123456");
			String sql = "select * from stuscoreslist ";
			pStmt=conn.prepareStatement(sql);
			rs=pStmt.executeQuery();
			while(rs.next()) {
				stuinfo item=new stuinfo();
				String id=rs.getString("id");
				String stunum=rs.getString("stunum");
				String stuname=rs.getString("stuname");
				String course=rs.getString("course");
				String score=rs.getString("score");
				String paiming=rs.getString("paiming");
				String qimo=rs.getString("qimo");
				String guake=rs.getString("guake");
				item.setId(id);
				item.setStunum(stunum);
				item.setStuname(stuname);
				item.setCourse(course);
				item.setScore(score);
				item.setPaiming(paiming);
				item.setQimo(qimo);
				item.setGuake(guake);
				
				list.add(item);
				
				
				
			}
		}catch(SQLException e) {
			e.printStackTrace();
			
		}
		return list;

                     教师端主页面(stulist.jsp):

<center><h2>登陆成功!欢迎登录教师端学生成绩管理系统</h2></center>
	
	<table border="3" align="center">
		<tr>
			<td colspan="9" align="center">
				<a href="scoresAdd.jsp">添加</a>
			</td>
		
		
		</tr>
		
		
		<tr>
			<th>id</th>
			<th>学号</th>
			<th>姓名</th>
			<th>科目</th>
			<th>成绩</th>
			<th>班级成绩总排名</th>
			<th>期末考试排名</th>
			<th>是否挂科</th>
			<th>操作</th>
			
		</tr>
	<!--此处调用session域  -->
	    <ly:forEach items="${sessionList}" var="stu">
			<tr>
				<td>${stu.id}</td>
				<td>${stu.stunum}</td>
				<td>${stu.stuname}</td>
				<td>${stu.course}</td>
				<td>${stu.score}</td>
				<td>${stu.paiming}</td>
				<td>${stu.qimo}</td>
				<td>${stu.guake}</td>
				<td>
						<a href="stuEdit.jsp?stunum=${stu.stunum}">修改</a>
						<a href="stuDel.jsp?stunum=${stu.stunum}">删除</a>
					</td>
			</tr>
		</ly:forEach>
  
</table>

             封装学生信息,存储到session域的servlet(StudentListServlet):

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("gbk");   // 处理请求中的中文乱码问题
		response.setContentType("text/html;charset=gbk");  // 处理响应中的中文乱码问题
		
		/**
		 * 现在的Servlet 为 控制器来用,作用如下:
		*  1. 取得请求参数
		*  2. 根据请求参数,调用业务处理
		*  3. 根据处理结果,转向不同的前端页面(html, jsp)
		**/
		// 1. 要求获取学生信息列表 
		// 2. 调用业务
		UserDao dao = new UserDao();
		List<stuinfo> list = dao.getAllUsers();
		
		// 3 存入session域,使用session会话共享数据
		HttpSession session = request.getSession();
		// 在当前session域中的页面都可以使用这个值
		session.setAttribute("sessionList", list);   //域名,传递的值
		
		
 	request.getRequestDispatcher("stulist.jsp")
		.forward(request, response);   // 请求转发
	}

      connection.jsp:为了增删改jsp连接数据库的代码jsp文件:

    

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" pageEncoding="utf-8"%>
<!-- 
		**数据库连接
		8.5mysql版本,增加时区字段

 -->
<%!
	
	private static String CLS = "com.mysql.cj.jdbc.Driver";
	private static String URL = "jdbc:mysql://localhost:3306/stuscoremanager?useSSL=false&serverTimezone=UTC";
	private static String USER = "root";
	private static String PWD = "123456";
	
	public static Connection conn = null;
	public static Statement stmt = null;
	public static PreparedStatement pStmt = null;
	public static ResultSet rs = null;
	
	
	public static void getConnection() {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");   
			
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/stuscoremanager?useSSL=false&serverTimezone=UTC", "root","123456");
		}catch(Exception ex) {
			ex.printStackTrace();
		}
	}
	
	
	public static void closeAll() {
		try {
			if(rs!=null) {
				rs.close();
				rs=null;
			}
			if(pStmt!=null) {
				pStmt.close();
				pStmt=null;
			}
			if(stmt!=null) {
				stmt.close();
				stmt=null;
			}
			if(conn!=null) {
				conn.close();
				conn=null;
			}
		}catch(Exception ex) {
			ex.printStackTrace();
		}
	}

%>

5.教师端实现的添加功能,添加界面(scoresAdd.jsp):

<%@ include file="connection.jsp" %>
<script type="text/javascript">
	function chkData(){
		var  stunum = document.getElementById("stunum");
		var  stuname = document.getElementById("stuname");  
		var  course = document.getElementById("course");  
		var  score = document.getElementById("score"); 
		var flag = false;
		if(stunum==""){
			alert("填写学号信息");
			stunum.focus();
		}else if(stuname.value==""){
			alert('请填写学生姓名信息。');
			stunum.focus();
		}else if(course.value==""){
			alert('请填写科目信息');
			course.focus();
			
		}else if(score.value==""){
			alert('请填写成绩信息');
			score.focus();
		}else{
			flag = true;
	
	}
		
		return flag;
		
	}



</script>
</head>
<body style="background-image:url('img/scoreadd.jpg'); background-size:100% 100%;background-attachment:fixed">
<center>
		<h2>学生成绩信息添加</h2>
</center>
<form name="tj" action="doscoresAdd.jsp" method="post">
	<table border="8" align="center">
		<tr>
			<td>序号</td>
			<td><input type="text" name="id" id="id"/></td>
		</tr>
		<tr>
			<td>学号</td>
			<td><input type="text" name="stunum" id="stunum"/></td>
		</tr>
		<tr>
			<td>姓名</td>
			<td><input type="text" name="stuname" id="stuname"/></td>
		</tr>
		<tr>
			<td>科目</td>
			<td><input type="text" name="course" id="course"/></td>
		</tr>
		<tr>
			<td>成绩</td>
			<td><input type="text" name="score" id="score"/></td>
		</tr>
		<tr>
			<td>班级成绩总排名</td>
			<td><input type="text" name="paiming" id="paiming" /></td>
		</tr>
		<tr>
			<td>期末考试排名</td>
			<td><input type="text" name="qimo" id="qimo" /></td>
		</tr>
		<tr>
			<td>是否挂科</td>
			<td><input type="text" name="guake" id="guake" /></td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="添加" onclick="return chkData();"/>
			</td>
		</tr>
	</form>
	 <form name="sc" action="add.jsp" method="post">
	
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="返回"/>
				
			</td>
		</tr>
	

	</form>
	</table>


</body>
</html>

      添加界面实现并显示数据界面(doscoresAdd.jsp):

<%@ include file="connection.jsp" %>
<!--成绩信息添加执行页面,并显示添加的信息  -->

<%
	response.setContentType("text/html;charset=utf-8");
	request.setCharacterEncoding("utf-8");
	String id=request.getParameter("id");
	String stunum=request.getParameter("stunum");
	String stuname=request.getParameter("stuname");
	String course=request.getParameter("course");
	String score=request.getParameter("score");
	String paiming=request.getParameter("paiming");
	String qimo=request.getParameter("qimo");
	String guake=request.getParameter("guake");
	try{
		getConnection();
		String sql="insert into stuscoreslist(id,stunum,stuname,course,score,paiming,qimo,guake) values(?,?,?,?,?,?,?,?)";
		pStmt=conn.prepareStatement(sql);
		pStmt.setString(1,id);
		pStmt.setString(2,stunum);
		pStmt.setString(3,stuname);
		pStmt.setString(4,course);
		pStmt.setString(5,score);
		pStmt.setString(6,paiming);
		pStmt.setString(7,qimo);
		pStmt.setString(8,guake);
		
		
		int iRow =pStmt.executeUpdate();
		if(iRow>0){
			response.sendRedirect("StudenListServlet");
		}else{
			response.sendRedirect("scoresAdd.jsp");
		}
		
	}catch(Exception ex){
		ex.printStackTrace();
	}finally{
		closeAll();
	}





%>

6.修改界面(stuEdit.jsp):

<%
	String stunum=request.getParameter("stunum");
	String id="";
	String stuname="";
	String course="";
	String score="";
	String paiming="";
	String qimo="";
	String guake="";
	
	try{
		getConnection();
		String sql="select * from stuscoreslist where stunum='"+stunum+"'";
		pStmt=conn.prepareStatement(sql);
		rs=pStmt.executeQuery();
		while(rs.next()){
			id=rs.getString("id");
			stunum=rs.getString("stunum");
			stuname=rs.getString("stuname");
			course=rs.getString("course");
			score=rs.getString("score");
			paiming=rs.getString("paiming");
			qimo=rs.getString("qimo");
			guake=rs.getString("guake");
		}
	}catch(Exception ex){
		ex.printStackTrace();
	}finally{
		closeAll();
	}


%>
<!--使用readonly固定值,使其无法修改  -->
<form name="tj" action="doStuEdit.jsp" method="post">
	<table border="8" align="center">
		<tr>
			<td>序号</td>
			<td><input type="text" name="id" id="id" value="<%=id %>"/></td>
		</tr>
		<tr>
			<td>学号</td>
			<td><input type="text" name="stunum" id="stunum"  readonly="readonly" value="<%=stunum %>"/></td>
		</tr>
		<tr>
			<td>姓名</td>
			<td><input type="text" name="stuname" id="stuname" readonly="readonly" value="<%=stuname %>"/></td>
		</tr>
		<tr>
			<td>科目</td>
			<td><input type="text" name="course" id="course" value="<%=course %>"/></td>
		</tr>
		<tr>
			<td>成绩</td>
			<td><input type="text" name="score" id="score" value="<%=score%>"/></td>
		</tr>
		<tr>
			<td>班级成绩总排名</td>
			<td><input type="text" name="paiming" id="paiming" value="<%=paiming%>"/></td>
		</tr>
		<tr>
			<td>期末考试排名</td>
			<td><input type="text" name="qimo" id="qimo" value="<%=qimo%>"/></td>
		</tr>
		<tr>
			<td>是否挂科</td>
			<td><input type="text" name="guake" id="guake" value="<%=guake%>"/></td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="修改" onclick="return chkData();"/>
			</td>
		</tr>
	</form>
	 <form name="sc" action="stulist.jsp" method="post">
	
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="返回"/>
				
			</td>
		</tr>
	

	</form>
	</table>

    修改界面执行显示界面(doStuEdit.jsp)

<%
	
	response.setContentType("text/html;charset=utf-8");
	request.setCharacterEncoding("utf-8");
	String id=request.getParameter("id");
	String stunum=request.getParameter("stunum");
	String stuname=request.getParameter("stuname");
	String course=request.getParameter("course");
	String score=request.getParameter("score");
	String paiming=request.getParameter("paiming");
	String qimo=request.getParameter("qimo");
	String guake=request.getParameter("guake");
	try{
		getConnection();
		String sql="update  stuscoreslist set id=?,course=?,score=?,paiming=?,qimo=?,guake=? where stunum='"+stunum+"' and stuname='"+stuname+"' ";
		pStmt=conn.prepareStatement(sql);
		pStmt.setString(1,id);
		pStmt.setString(2,course);
		pStmt.setString(3,score);
		pStmt.setString(4,paiming);
		pStmt.setString(5,qimo);
		pStmt.setString(6,guake);
		
		int iRow =pStmt.executeUpdate();
		if(iRow>0){
			response.sendRedirect("StudenListServlet");
		}else{
			response.sendRedirect("stuEdit.jsp?stunum="+stunum);
		}
		
	}catch(Exception ex){
		ex.printStackTrace();
	}finally{
		closeAll();
	}





%>

7.删除界面(stuDel.jsp):

<%
	String stunum=request.getParameter("stunum");
	String id="";
	String stuname="";
	String course="";
	String score="";
	String paiming="";
	String qimo="";
	String guake="";
	
	try{
		getConnection();
		String sql="select * from stuscoreslist where stunum='"+stunum+"'";
		pStmt=conn.prepareStatement(sql);
		rs=pStmt.executeQuery();
		while(rs.next()){
			id=rs.getString("id");
			stunum=rs.getString("stunum");
			stuname=rs.getString("stuname");
			course=rs.getString("course");
			score=rs.getString("score");
			paiming=rs.getString("paiming");
			qimo=rs.getString("qimo");
			guake=rs.getString("guake");
		}
	}catch(Exception ex){
		ex.printStackTrace();
	}finally{
		closeAll();
	}


%>
<form name="sc" action="doStuDelate.jsp" method="post">
	<table border="8" align="center">
		<tr>
			<td>序号</td>
			<td><input type="text" name="id" id="id" readonly="readonly" value="<%=id %>"/></td>
		</tr>
		<tr>
			<td>学号</td>
			<td><input type="text" name="stunum" id="stunum"  readonly="readonly" value="<%=stunum %>"/></td>
		</tr>
		<tr>
			<td>姓名</td>
			<td><input type="text" name="stuname" id="stuname" readonly="readonly" value="<%=stuname %>"/></td>
		</tr>
		<tr>
			<td>科目</td>
			<td><input type="text" name="course" id="course" readonly="readonly" value="<%=course %>"/></td>
		</tr>
		<tr>
			<td>成绩</td>
			<td><input type="text" name="score" id="score" readonly="readonly" value="<%=score%>"/></td>
		</tr>
		<tr>
			<td>班级成绩总排名</td>
			<td><input type="text" name="paiming" id="paiming" readonly="readonly" value="<%=paiming%>"/></td>
		</tr>
		<tr>
			<td>期末考试排名</td>
			<td><input type="text" name="qimo" id="qimo" readonly="readonly" value="<%=qimo%>"/></td>
		</tr>
		<tr>
			<td>是否挂科</td>
			<td><input type="text" name="guake" id="guake" readonly="readonly" value="<%=guake%>"/></td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="删除" onclick="return chkData();"/>
			</td>
		</tr>
	</form>
	 <form name="sc" action="stulist.jsp" method="post">
	
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="返回"/>
				
			</td>
		</tr>
	

	</form>
	</table>

                    删除界面执行并显示删除后的界面(doStuDel.jsp):

<!--成绩信息删除执行页面,并显示删除后的信息  -->

<%
	
	response.setContentType("text/html;charset=utf-8");
	request.setCharacterEncoding("utf-8");
	String id=request.getParameter("id");
	String stunum=request.getParameter("stunum");
	String stuname=request.getParameter("stuname");
	String course=request.getParameter("course");
	String score=request.getParameter("score");
	String paiming=request.getParameter("paiming");
	String qimo=request.getParameter("qimo");
	String guake=request.getParameter("guake");
	
	try{
		getConnection();
		String sql="delete from stuscoreslist where stunum=?";
		pStmt=conn.prepareStatement(sql);
		pStmt.setString(1,stunum);
		int iRow =pStmt.executeUpdate();
		if(iRow>0){
			response.sendRedirect("StudenListServlet");
		}else{
			response.sendRedirect("stuDel.jsp");
		}
		
	}catch(Exception ex){
		ex.printStackTrace();
	}finally{
		closeAll();
	}





%>

五、系统运行截图选取:

  1.主页面

学生注册界面: 

学生查询:

 结果显示:

 教师端主界面:

添加:

 删除:

源码:javaweb期末课程设计适于初学者,增删改查,Javabean,mysql,el,jstl,jsp,servlet_javaweb期末课程设计-Web开发文档类资源-CSDN下载

  • 20
    点赞
  • 309
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
### 回答1: JSP(Java Server Pages),ServletJavaBeanMySQL可以结合使用来开发学生成绩管理系统。 首先,使用JSP来实现学生成绩管理系统前端界面。JSP允许我们将Java代码嵌入到HTML页面中,方便实现页面的动态内容和交互。我们可以通过JSP创建学生登录界面、学生成绩查询界面、成绩录入界面等等。 其次,使用Servlet来处理前端页面的请求和响应。Servlet是基于Java编写的服务器端程序,可以接受来自前端页面的请求,并对请求进行处理。我们可以创建一个Servlet类用于处理学生登录、查询成绩、录入成绩等操作。通过与JSP的配合,我们可以实现数据的传递和页面的跳转。 还可以使用JavaBean来实现学生和成绩的数据模型。JavaBean是一种Java类,用于封装数据和提供相应的访问方法。我们可以创建一个学生类和成绩类作为JavaBean,用于存储和操作学生和成绩的信息。 最后,使用MySQL数据库来存储学生和成绩的数据。MySQL是一种关系型数据库管理系统,可以方便地存储和查询数据。我们可以创建学生表和成绩表,通过SQL语句将数据存储到数据库中,并使用Java的JDBC API来与MySQL数据库进行连接和操作。 通过以上的整合,我们可以开发一个功能完善的学生成绩管理系统。学生可以通过JSP界面登录系统,查询自己的成绩,并可以录入新的成绩。Servlet可以处理来自前端的请求,并将数据存储到MySQL数据库中。JavaBean提供了数据的封装和操作,方便系统的开发和维护。 ### 回答2: 学生成绩管理系统是一个基于JSP(Java Server Pages)、ServletJavaBeanMySQL的系统。它旨在帮助学校或教育机构高效地管理学生成绩。 首先,JSP和Servlet是基于JavaWeb开发技术,可以实现动态网页的设计和交互。通过JSP和Servlet,我们可以创建一个用户友好的界面,使教师和学生能够方便地访问和管理成绩信息。 其次,JavaBean是一个独立的Java类,用于封装和处理数据。在学生成绩管理系统中,我们可以使用JavaBean来定义学生和课程等对象,以及相关的操作方法。通过JavaBean,我们可以实现对学生成绩的增删改查等功能。 最后,MySQL是一个流行的关系型数据库管理系统。我们可以使用MySQL来存储学生和课程的相关信息,包括姓名、学号、科目、成绩等。通过使用SQL语句,我们可以在系统中执行数据的存储、查询和更新操作,以便教师和学生能够及时获取成绩信息。 学生成绩管理系统的主要功能包括学生信息的录入、成绩的录入与查询、成绩的统计和分析等。教师可以通过系统录入学生信息和各科成绩,并且可以根据需要进行查询和导出。学生可以通过系统查询自己的成绩情况,以及与老师进行交流和反馈。 总之,通过结合JSP、ServletJavaBeanMySQL等技术,学生成绩管理系统可以提供一个高效、准确和方便的成绩管理平台,为学校和教育机构提供有效的帮助。 ### 回答3: JSP(JavaServer Pages),ServletJavaBeanMySQL可以一起用于学生成绩管理系统的开发。 首先,使用MySQL作为数据库管理系统存储学生成绩数据。可以创建一个名为"student"的表格,其中包括学生的学号、姓名和成绩等列,用于存储学生成绩信息。 接下来,使用Servlet作为后端控制器,通过接收和处理来自前端(例如JSP页面)的HTTP请求,与数据库进行交互。可以编写一个Servlet,用于处理学生成绩的增加、修改、删除和查询等操作。例如,在学生信息的增加功能中,Servlet可以从前端接收学生的学号、姓名和成绩等信息,然后将这些信息存储到MySQL数据库的"student"表格中。 针对JSP页面的开发,可以创建一个用于展示成绩管理的页面。例如,可以设计一个用于查询学生成绩的页面,提供一个输入框用于输入学号,点击查询按钮后,JSP页面向Servlet发送HTTP请求,并从数据库中检索对应学号的学生成绩,并将结果显示在页面上。 最后,可以使用JavaBean作为数据传输对象,用于在JSP页面和Servlet之间传递数据。JavaBean是一个轻量级的Java类,其中定义了成员变量和对应的getter和setter方法。在学生成绩管理系统中,可以创建一个JavaBean类,表示学生信息,并且在JSP页面和Servlet中使用它来传递学生的学号、姓名和成绩等数据。 总结而言,JSP,ServletJavaBeanMySQL可以一起用于学生成绩管理系统的开发。通过Servlet作为后端控制器,与MySQL数据库进行交互,并通过JSP页面来展示和传递数据,最终实现学生信息的管理和查询功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佡颩噵嗗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值