javaweb上机实验报告学生管理系统.docx

上传人:b****9 文档编号:25623704 上传时间:2023-06-10 格式:DOCX 页数:31 大小:3.37MB
下载 相关 举报
javaweb上机实验报告学生管理系统.docx_第1页
第1页 / 共31页
javaweb上机实验报告学生管理系统.docx_第2页
第2页 / 共31页
javaweb上机实验报告学生管理系统.docx_第3页
第3页 / 共31页
javaweb上机实验报告学生管理系统.docx_第4页
第4页 / 共31页
javaweb上机实验报告学生管理系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

javaweb上机实验报告学生管理系统.docx

《javaweb上机实验报告学生管理系统.docx》由会员分享,可在线阅读,更多相关《javaweb上机实验报告学生管理系统.docx(31页珍藏版)》请在冰豆网上搜索。

javaweb上机实验报告学生管理系统.docx

javaweb上机实验报告学生管理系统

javaweb上机实验报告(学生管理系统)

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

一实验题目

在线学生管理系统

二开发背景简介

随着网络技术的发展和普及许多以前基于CS的应用都开始向BS方向发展,而Java在这方面的应用有着许多其他技术不具备的优点,Java开发Web应用的主要技术是Servlet和Jsp技术,其实Jsp只Servlet的一种进化方便了开发者的使用。

它们都具有强大的功能适用于许多大型项目的开发。

在未来基于BS的应用也必将得到较好的发展。

本实验是在讲完Jsp和Servlet课程后为掌握所学的知识而做的实验。

三开发工具

本次试验是在Windows平台下开发采用的集成开发工具是Myeclipse8.5,数据库使用的是MySql5.5,服务器采用的是Tomcat7.0。

四实验设计

在本实验中模仿的是MVC设计模式,但由于系统比较小所以省略了业务层,在页面层中直接调用了数据层。

在做这个在线学生管理系统中业务基本上都是由Jsp页面完成的没有用到Servlet控制器。

五实现的功能

Browser

Tomcat

请求的html

JSP处理页

Mysql

Mysql数据库

六试验截图

1.登陆界面

登录可以选择是身份,可以是学生,老师,和管理员。

登录界面是login.html,它想login.jsp页面传了3个参数来进行页面的验证,其中验证的部分代码是,

Stringuname=request.getParameter("userName");

Stringpwd=request.getParameter("userPass");

inti=Integer.parseInt(request.getParameter("identity"));

Stringsql=

"select*fromuserMangerwhereusername='"+uname+"'anduserpassword='"+pwd+"'";

Statementstmt=conn.createStatement();

ResultSetrs=stmt.executeQuery(sql);

if(rs.next()){

session.setAttribute("userId",rs.getString("id"));

session.setAttribute("userMark",rs.getString("identitymark"));

response.sendRedirect("index.jsp");

}else{

response.sendRedirect("2.html");

}

2.其中系统用的学生表是

这是学生表里面的初始化的数据,你可以看到登录的用户名和密码

3.如果你输入登录的密码不正确,就会跳转到错误界面

4.这是学生表的登录成功的界面在这页面显示用户名称和上次登录的时间,这里是从数据库里面查询的,用到了session的功能。

当然这个系统也可以在一台电脑上登录多个用户,多个用户之间是不会发生冲突的,因为链接的代码是学生的id号。

intuserId=Integer.parseInt(session.getAttribute("userId").toString());

intuserMark=Integer.parseInt(session.getAttribute("userMark").toString());

Stringsql="select*fromstudent_tablewhereid=?

andidentitymark=?

";

PreparedStatementps=conn.prepareStatement(sql);

ps.setInt(1,userId);

ps.setInt(2,userMark);

ResultSetrs=ps.executeQuery();

rs.next();

取得用户的显示的信息的代码如下:

   你好,

<%=rs.getString("username")%>【管理员】

 欢迎登录  你上次登录的时间是:

****年*月*日

5.在这个页面,你可以查询自己的的个人信息。

6.如果个人信息不对,你可以进行修改个人信息,当然修改后会需要管理员批准才生效。

修改个人信息时也是先从数据库进行取值的,然后放到updatestuInfo.Jsp中进行显示的。

其中的页面的代码是:

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%>

<%@includefile="../../conn.jsp"%>

<%

request.setCharacterEncoding("gb2312");

response.setContentType("text/html;charset=gb2312");

%>

<%

intuserId=Integer.parseInt(request.getParameter("id"));

intuserMark=Integer.parseInt(request.getParameter("mark"));

Stringsql="select*fromstudent_tablewhereid=?

andidentitymark=?

";

PreparedStatementps=conn.prepareStatement(sql);

ps.setInt(1,userId);

ps.setInt(2,userMark);

ResultSetrs=ps.executeQuery();

rs.next();

%>

个人基本信息表

姓名:

<%=rs.getString

(2)%>

100px;height:

150px;"width="100"height="150">">

性别:

--辅导员,照片,爱好,身份标记,备注-->

年龄:

<%=rs.getString(5)%>

手机:

<%=rs.getString(6)%>

所属系名称:

<%=rs.getString(8)%>

家庭住址:

<%=rs.getString(7)%>

辅导员:

<%=rs.getString(9)%>

宿舍号:

<%=rs.getString(10)%>

爱好:

<%=rs.getString(12)%>

备注:

<%=rs.getString(14)%>

7.当然学生还可以查询成绩和查看自己的登录情况,我这儿就不一一演示了,我们放到admin中区演示,下面我们看老师登录。

老师登录的时候在身份栏里面选择教师就行了,当然必须要用户名和密码必须正确,不然又跳转到errorr.html了

8.这是老师数据库中的信息表

你可以看到老师的登录用户名称和密码。

9.这是老师的登录的界面,你可以看到它所操作得内容明显比学生的多了。

可以修改学生的成绩了。

10.当然老师的各个分页面与学生的差不多,我也就不一一截图了,你可以直接看我的源文件代码。

下面我们主要讲管理员登录的情况。

这是数据库中管理员的表,管理员可以是总管理员和各系的管理员,他们操作得学生也是不一样的。

11.这是管理员登录后的界面。

12.由于这个页面比较大,所以我截了两个图。

管理员操作的内容比较多,可以查看所有的用户,添加用户的公告,删除用户,修改老师和学生的基本信息等等。

13.这是查看的学生的信息表,这里就涉及到了查询,这里面的所有信息都是从数据库里面查询出来的。

14.可以对学生学生信息进行修改和删除,还有添加的操作。

假设我们要对序号为1的shezhanjun进行修改操作。

当然这里涉及到了验证输入的是否正确,用到了js和servlet技术。

15.修改成功后就跳转到刚才的页面了。

这里我这是把名字修改为了佘占君,所以你看到的信息就变化了。

修改的页面用的代码:

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%>

<%@includefile="conn.jsp"%>

<%

request.setCharacterEncoding("GBK");

Stringid=request.getParameter("id");

Stringname=request.getParameter("name");

Stringsex=request.getParameter("sex");

Stringage=request.getParameter("age");

Stringphone=request.getParameter("phone");

Stringzy=request.getParameter("zy");

Stringqq=request.getParameter("qq");

Stringsql="updatestudentsetname='"+name+"',sex='"+sex+"',age="+age+",qq='"+qq+"',phone='"+phone+"',specialty='"+zy+"'whereid="+id;

Statementstmt=conn.createStatement();

stmt.executeUpdate(sql);

response.sendRedirect("index.jsp");

%>

16.当然我们可以对上面的信息进行删除,比如我们还是删除第一条记录,我们删除后,就是这样了。

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%>

<%@includefile="conn.jsp"%>

<%

Stringid=request.getParameter("id");

Stringsql="deletefromstudentwhereid="+id;

Statementstmt=conn.createStatement();

stmt.executeUpdate(sql);

response.sendRedirect("index.jsp");

%>

17.在这里还可以添加学生。

录入学生的基本信息,还可以直接从数据库中取。

在添加页面用到了页面的验证,我写到了一个通用的js文件里面了,代码如下:

/*

*判断是否为空!

第一个参数是id,第二个参数是判断不为空的元件名称。

*

*/

functioncheckIsEmpty(id,message)

{

varflag=true;

if(document.getElementById(id).value=="")

{

alert(message+"不能为空!

");

//鼠标的焦点停留在那个文本框,并设置背景色为红色

document.getElementById(id).focus();

document.getElementById(id).style.backgroundColor="red";

flag=false;

}else{

document.getEmelentById(id).style.backgroundColor="white";

}

returnflag;

}

/*

*让文本框输入只能是数字

*

*/

functioncheckNumber()

{

if(event.keyCode>57||event.keyCode<48)

returnfalse;

else{

returntrue;

}

}

/*

*检查文本输入框的字符的长度,要传两个参数,一个是id,一个是限制的长度。

*

*/

functioncheckLength(id,len)

{

//alert(document.getElementById(id).value.length+","+len);

if(document.getElementById(id).value.length>len)

{

alert("长度必须小于"+len+"位!

");

document.getElementById(id).focus();

document.getElementById(id).style.backgroundColor="red";

returnfalse;

}

else{

document.getElementById(id).style.backgroundColor="white";

returntrue;

}

}

18.这是学生成绩的录入界面。

19.这里面有课程号和课程名称,都是从数据库中取的。

20.学生成绩的查询,你可以查询学生的成绩。

并且可以修改。

21.当然还可以进行学生成绩的修改。

修改会产生修改记录,我们也保存起来了,以供日后查询使用。

22.学生的成绩表在数据库中是这样的。

这里是学号和课程号得键值对。

23.当然你可以查询其中某个学生的成绩单。

24.如果你想了解某个学生的基本信息,你可以进行查询。

这里支持模糊搜索。

25.老师的信息的查询和修改与学生的差不多,所以我也就不一一陈述了,最后就是系统的登录,可以查询用户的登录信息。

26.查询后得到登录的信息表。

它也是从数据库中取得的。

27.你查询后就得到了这样的表。

七.实验代码【部分主要功能的代码】

1.我用到的的jsp链接的代码是:

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%>

<%

Stringdriver="com.mysql.jdbc.Driver";

Stringurl="jdbc:

mysql:

//localhost:

3306/student";

Stringuid="root";

Stringpsd="******";

Class.forName(driver);

Connectionconn=DriverManager.getConnection(url,uid,psd);

%>

2.常用的更新页面的代码(这是更新学生信息表的,admin和老师用户都要用它,所以我写在外面了):

<%@pagecontentType="text/html;charset=gb2312"import="java.sql.*"%>

<%@includefile="../../conn.jsp"%>

<%

intid=Integer.parseInt(request.getParameter("id"));

//由于得到的中文会出现乱码的现象,所以要进行转码的工作

Stringstuname=newString(request.getParameter("txtName").getBytes("ISO8859-1"),"gb2312");

Stringstupassword=newString(request.getParameter("txtPassword").getBytes("ISO8859-1"),"gb2312");

intage=Integer.parseInt(request.getParameter("chkAge"));

Stringmobile=newString(request.getParameter("txtMobile").getBytes("ISO8859-1"),"gb2312");

Stringhome_address=newString(request.getParameter("txtHomeAddress").getBytes("ISO8859-1"),"gb2312");

Stringseries_name=newString(request.getParameter("txtSeriesName").getBytes("ISO8859-1"),"gb2312");

Stringcounsellor=newString(request.getParameter("txtCounsellor").getBytes("ISO8859-1"),"gb2312");

Stringdorm=newString(request.getParameter("txtDorm").getBytes("ISO8859-1"),"gb2312");

//由于没有解决拷贝文件的方法,所以暂时不更新照片的路径。

//Stringphoto=request.getParameter("txtPhoto");

//Stringhobby=newString(request.getParameter("chkHobby").getBytes("ISO8859-1"),"gb2312");

Stringhobby="";

String[]boxes=request.getParameterValues("chkHobby");

//循环取得复选框里面的值

if(boxes!

=null&&boxes.length!

=0){

for(inti=0;i

if(i!

=(boxes.length-1)){

hobby+=boxes[i]+",";

}else{

hobby+=boxes[i];

}

}

}else{

hobby="thestudentnohaveanythinghobby!

";

}

hobby=newString(hobby.getBytes("ISO8859-1"),"gb2312");

Stringcommentinfo=newString(request.getParameter("txaCommentInfo").getBytes("ISO8859-1"),"gb2312");

//response.setContentType("text/html;charset=gb2312");

//out.print(stuname+","+stupassword+","+age+","+mobile+","+home_address+","+series_name+","+counsellor+","+dorm+","+hobby+","+commentinfo+","+id);

Stringsql="updatestudent_tablesetstuname=?

stupassword=?

age=?

mobile=?

home_address=?

series_name=?

counsellor=?

dorm=?

hobby=?

commentinfo=?

whereid=?

;";

PreparedStatementps=conn.prepareStatement(sql);

//对上面的问号进行赋值操作

ps.setString(1,stuname);

ps.setString(2,stupassword);

ps.setInt(3,age);

ps.setString(4,mobile);

ps.setString(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1