web实验五 综合性程序设计

本文详细介绍了使用Servlet、JSP、JDBC进行综合性程序设计,实现了一个学生成绩管理系统的开发。涵盖了数据库设计、用户权限管理、分页查询以及乱码问题的解决。学生、教师和管理员各自具有不同的操作权限,如学生可查看和修改个人信息,教师可查看和录入成绩,管理员则有全面的管理权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的
1)熟悉在JSP中使用掌握MVC模式,使用JDBC对数据库进行增加、删除修改与查询记录;
2)培养学生进行简单网站的整体开发能力;
3)掌握在JSP中对数据库查询结果进行分页显示技术;
4)掌握MVC模式。
5)掌握在连接使用mysql时解决乱码的问题。
二、实验内容
综合性程序设计——简单学生成绩管理系统,要求具体如下:
(1)创建一个mysql数据库student,数据库中至少包含一个学生信息表stuinfo(学号、姓名、出生日期、性别、年龄、班级、自我简介等),并录入相关信息,可以录入同学的信息,但是第一条必须是自己的信息。
(2)创建一个成绩表score(java、os、math三门课程对应的成绩)。并录入学生的成绩。
(3)创建一个用户表user(角色,姓名,类型—管理员,教师、学生),并录入每个角色信息。
(4)编写不同的页面实现学生信息的增、删、改、查。学生登录只能查看、修改自己的信息。
(5)管理员(教师)可对所有学生信息进行增、删、改、查,还可以修改学生成绩。
(6)然后编写一个.jsp程序,在JSP中加载驱动、链接数据库、查询数据库中所有信息,并显示出来。
(7)编写servlet实现加载驱动、链接数据库、查询数据库中指定信息。
(8)编写javabean实现数据的存储。
三、实验要求
1)将实验的源代码文件和运行结果分别截图粘贴到实验结果,注意写清楚实验文件名称。
2)按照你自己做实验的流程,写清楚实验的步骤。
3)对实验进行小结(做实验时出现的问题,怎么解决的,有什么心得体会等均可),将小结写到实验小结中。
四、实验步骤
4.1 系统分析与设计
本次实验是是设计一个基于web平台的学生选课系统,主要用于实现学生成绩和信息管理,与课程维护等等模块;需要使用的技术是Servlet、JSP、JDBC、DAO等关键技术,主要采用JSP和Servlet结合,JSP和JavaBean结合的技术。通过JDBC连接到数据库,实现数据库的操作。在本系统中,有三类用户:系统管理员,教师和学生。三种不同的用户所具有的操作权限以及操作内容均不一样。能够实现对学生、课程信息、成绩信息增删改查的功能。
学生端:
(1)学生信息查询,可根据学号对学生信息进行查询;
(2)学生信息修改,可在数据库中插入、删除和修改学生记录;
教师端:
(1)查看学生的信息和成绩;
(3)输入学生的成绩;
管理员端:能够实现对学生信息的综合管理,能查看所有的学生基本信息和成绩信息,能够添加、修改学生的课程信息和成绩等。
4.2 系统功能流程
用户登录身份验证模块通过连接数据库验证用户名和密码,并根据不同用户类型选择进入与之身份对应的界面。每个用户都拥有自己的账号和密码,存储在数据库中,用户操作完成后退出系统。用户进入教师功能界面,可以查询学生信息和成绩,进行录入成绩。进入学生功能界面,可以查询和修改个人信息,并且只能查询自己的成绩不能做出任何修改操作。进入管理员功能界面,可以修改查询增加删除学生信息和成绩,拥有最大管理权限。
4.3数据库设计
在数据库中包含score、stuinfo、user三个表,每个表与逻辑设计中一种的关系模式相对应。score表中属性包括sid、java、os、math分别对应于学号、课程名等。Stuinfo表中属性表包括sid、sname、sex、birth、sge、classes、introduce分别对应学号、姓名等。User表中属性包括role、name、password分别对应角色、姓名以及密码。
五、实验结果
5.1系统实现与测试
1.系统首页,选择身份,输入个人账号密码可进入与其身份对应的管理界面。
在这里插入图片描述
学生:用户通过首页登录,输入用户名以及密码,然后选择权限(学生/老师/管理员)进入自己的页面。该页面会对用户是否输入用户名或密码,验证正确直接进入权限所对应的欢迎界面。输入用户名及密码,进入学生欢迎界面。
在这里插入图片描述
在这里插入图片描述

管理员及教师登录界面如下
在这里插入图片描述
可根据学号对学生信息进行删除:
在这里插入图片描述
5.2代码实现如下:
1)登录首页代码:

<%@pagecontentType="text/html; charset=GB2312"%>
<jsp:useBean id="loginBean" class="column.Login" scope="session"/>
<html><body bgcolor=#336666><font size=5><form action="loginHandle"method= post><style>div{
     text-align:center}</style><br><div><title>教务系统</title>
<font size=8><span style="color: orange">教务系统</span></font>
<p><table border=3 align="center">
<tr><td><font size=4>请选择身份:</font>&nbsp;&nbsp; <select name="role" >
           <Option value="管理员"><font size=6>管理员</font>
           <Option value="教师"><font size=6>教师</font>
           <Option value="学生"><font size=6>学生</font>  </select></tr>
<tr><td><font size=4>用户名:<input type=text name="name" size = 30 ></font></tr>
<tr><td><font size=4>&nbsp;&nbsp;码:<input type=password name="password" size = 31 ></font></tr>
<tr><td>&nbsp;<input type=submit name="submit" value="登录">&nbsp;<input type=reset name="reset" value="重置"></tr>
</tr></table></div></form></font></body></html>

2)学生——登录界面代码:

<%@ page language="java" contentType="text/html; charset=GB2312"%>
<!DOCTYPE html><html><body bgcolor=#336666><font size=5>
<style>div{
     text-align:center}</style>
<div><br><% String role=request.getParameter("role");%><%Stringname=request.getParameter("name");%>   
<br> 欢迎学生进入教务系统
<p><table border=3 align="center">        
<tr><td><font size=5>
<div>
  <div><br><a href="stuinfoA.jsp">学生信息  </a>
  <br><br><a href="scoreA.jsp">学生成绩</a>
  <br><br><a href="MysqlLogin.jsp">退出登录</a>
  <br>&nbsp;&nbsp;&nbsp;</font>          
</tr></div></font></body></html>

3)学生——学生信息查询代码:

<%@ page language="java" contentType="text/html; charset=GB2312"%>
<!DOCTYPE html><html><body bgcolor=#336666><font size=5>
<style>div{
     text-align:center}</style><div><br>
<p><font size=6><span style="color: orange">学生信息</span></font>
<p><table border=1 align="center"><tr><td><font size=5>
<div><br><a href="select.jsp">查询信息</a>
<br><br><a href="update.jsp">修改信息</a>	
<br>&nbsp;&nbsp;&nbsp;</font>   </tr></div></font></body></html>

4)学生——查询信息代码:

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %><HTML><body bgcolor=#336666><font size=3>
<style>div{
     text-align:center}</style><div><br>
<p><font size=6><span style="color: orange">查询信息</span></font><p>
 <% Connection con;Statement sql; ResultSet rs;
try{  Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){}
try {String uri= "jdbc:mysql://localhost/student";String user="root"; String password="";
          con=DriverManager.getConnection(uri+"?user=root&password=");
          sql=con.createStatement(); rs=sql.executeQuery("SELECT * FROM stuinfo");
          out.print("<table border=2 align=center>");   out.print("<tr>");     
out.print("<th width=100>"+"学号");  out.print("<th width=70>"+"姓名");
out.print("<th width=50>"+"性别");   out.print("<th width=100>"+"出生日期");
out.print("<th width=100>"+"年龄");  out.print("<th width=100>"+"班级");
out.print("<th width=100>"+"简介");  out.print("</tr>");
          while(rs.next()){out.print("<tr>"); out.print("<td >"+rs.getString(1)+"</td>"); 
        out.print("<td >"+rs.getString(2)+"</td>"); out.print("<td >"+rs.getString(3)+"</td>");  
        out.print("<td >"+rs.getString(4)+"</td>"); out.print("<td >"+rs.getString(5)+"</td>"); out.print("<td >"+rs.getString(6)+"</td>"); out.print("<td >"+rs.getString(7)+"</td>"); out.print("</tr>") ; }  out.print("</table>"); con.close(); }
    catch(SQLException e){ out.print(e);} %>
 <font size=5><br><a href="MysqlLogin.jsp">返回登录界面</a>	
 </font></div></font></body></HTML>  

5)学生——修改信息代码:

<%@ page contentType="text/html;charset=gb2312" %>
<HTML><body bgcolor=#336666><font size=2><form action="updateServlet" method=post>
<style>div{
     text-align:center}</style><div><br>
<p><font size=6><span style="color: orange">信息修改</span></font>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值