java web学生信息管理系统
本文由刘千飞贡献
Web 程序设计
—学生信息管理系统
姓名:鲁超、刘千飞、肖伟超 万联播、张明明、白浩 班级: 软件 0901 时间:2011/12/22
一、实验目的 熟练运用 web 开发技术设计完成一个学生信息管理系 统。 二、实验原理 功能要求: 基于 B/S 架构实现学生信息的增\删\改\查\展示功能,实 现完整的应用构建和界面设计。 技术要求: 基于 mysql 或 mssqlserver 数据库,以 Tomcat 为应用服务 器 , 可 使 用 Jsp+Servelt+Javabean 完 成 , 鼓 励 使 用 struts,Hibernate 框架完成设计。 三、实验分组 成员姓名 鲁超 刘千飞 肖伟超 万联播 张明明 白浩 四、实验内容 实验内容 成员学号 负责内容
200907040101 删除模块 200907040102 登陆页面及参与总体内容设计 200907040103 修改模块 200907040104 查询模块 200907040105 分页及参与总体内容的设计 200907040107 增加模块
登陆主页源代码: 登陆主页源代码: login.html: :
登陆模块 欢迎登陆学生信息管理系统
forward.jsp: :
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
login forward <% String username=null; String password=null; request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); username=request.getParameter("username"); password=request.getParameter("password"); if(!username.equals("")&&!password.equals("")) { %>
<% } else { %>
<% } %>
login_ok.jsp: :
<%@ page language="java" c
ontentType="text/html; charset=gb2312" pageEncoding="gb2312"%>
Insert title here 欢迎您使用学生管理系统
<% String username=null; String password=null; request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); username=request.getParameter("username"); password=request.getParameter("password"); out.println("登陆成功,用户名[
"+username+"],"); out.println("密码[
"+password+"]"); %>
请选择您要进行的操作:
size=4>
学生信息删除模块: 学生信息删除模块: 删除模块 p_shan.html:
Insert title here 欢迎您使用学生管理系统
删 除 操 作
请输入学生学号: | 请输入学生姓名: |
请输入学生性别: > | 请输入学生住址: |
①按学号删除: 学号删除 Shan_xuehao.jsp:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312" import="java.sql.*"%>
call stored procedure <% int PAGESIZE=3; int pageCount=0; int curPage=1; java.sql.Connection conn=null; PreparedStatement pstmt=null; Statement stmt=null; ResultSet rs=null; String[] cloStr={"sno","sname","cclass","sex","age","nation","clname","place"} ; String[] showStr={"学生编号","学生姓名","所在年级","性别","年龄","民族","专
业","住址"}; String sno; if(conn==null) { String strURL="jdbc:mysql://localhost/test"; String strDBUser="root"; String strDBPwd="123"; try { Class.forName("com.mysql.jdbc.Driver"); out.println("连接数据库成功......"); conn=java.sql.DriverManager.getConnection(strURL,strDBUser,strDBPwd); } catch(ClassNotFoundException e) { e.printStackTrace(); out.println("ClassNotFoundException111"); } catch(Exception ex) { ex.printStackTrace(); out.println("Exception11"); } } try{ sno=request.getParameter("sno"); byte no[]=sno.getBytes("ISO-8859-1"); sno=new String(no); String sql="delete from S where sno="+sno; pstmt=conn.prepareStatement(sql); int count=pstmt.executeUpdate();//删除 String sqllll="select * from S"; stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.C ONCUR_READ_ONLY); rs=stmt.executeQuery(sqllll); https://www.wendangku.net/doc/6716634815.html,st(); int size=rs.getRow();
pageCount=(size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } //获取想要显示的页数: String integer=request.getParameter("curPage"); if(integer==null) { integer="1"; } try { curPage=Integer.parseInt(integer); } catch(NumberFormatException e) {curPage=1; } if(curPage<=1) { curPage=1; } if(curPage>=pageCount) { curPage=pageCount; } //如果要显示第curPage页,那么游标应移到posion的值是: int posion=(curPage-1)*PAGESIZE+1; rs.absolute(posion); // 设置游标的位置 %>
<% for(int i=0;i"); out.println(""+showStr[i]+"
"); }
%>
<% int count=0; do{ if(count>=PAGESIZE) break; out.println(""); for(int i=0;i"); out.println(""+rs.getString(cloS
tr[i])+"
"); } out.println("
"); count++; }while(rs.next()); %>
首页 上一页 下一页 尾页 第<%=curPage%>页/共<%=pageCount%>页
size=4>
②其中按姓名(shan_xuehao.jsp)、按性别 其中按姓名 、 (shan_xingbie.jsp)、按地址(shan_dizhi.jsp)删除基本同 、按地址 删除基本同 上,此处代码省略。 此处代码省略。
学生信息修改模块: 学生信息修改模块: 修改模块 p_gai.html:
Insert title here 欢迎您使用学生管理系统
修 改 操 作
请输入要修改的学生学号:
gai.jsp:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312" import="java.sql.*"%>
call stored procedure <% java.sql.Connection conn=null; PreparedStatement pstmt=null; Statement stmt=null; ResultSet rs=null; String[] cloStr={"sno","sname","cclass","sex","age","nation","clname","place"} ; String[] showStr={"学生编号","学生姓名","所在年级","性别","年龄","民族","专 业","住址"}; String sno,sname,cclass,sex,age,nation,clname,place; String strURL="jdbc:mysql://localhost/test"; String strDBUser="root"; String
strDBPwd="123"; try { Class.forName("com.mysql.jdbc.Driver"); conn=java.sql.DriverManager.getConnection(strURL,strDBUser,strDBPwd); } catch(ClassNotFoundException e)
{ e.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); }
try{ sno=request.getParameter("sno"); byte no[]=sno.getBytes("ISO-8859-1"); sno=new String(no); sname=request.getParameter("sname"); byte name[]=sname.getBytes("ISO-8859-1"); sname=new String(name,"gb2312");
cclass=request.getParameter("cclass"); byte clss[]=cclass.getBytes("ISO-8859-1"); cclass=new String(clss,"gb2312");
sex=request.getParameter("sex"); byte ex[]=sex.getBytes("ISO-8859-1"); sex=new String(ex,"gb2312");
age=request.getParameter("age"); byte ge[]=age.getBytes("ISO-8859-1"); age=new String(ge);
nation=request.getParameter("nation"); byte tion[]=nation.getBytes("ISO-8859-1"); nation=new String(tion,"gb2312"); clname=request.getParameter("clname"); byte cname[]=clname.getBytes("ISO-8859-1"); clname=new String(cname,"gb2312");
place=request.getParameter("place"); byte lace[]=place.getBytes("ISO-8859-1"); place=new String(lace,"gb2312"); String sql="update S set
sname='"+sname+"',cclass='"+cclass+"',sex='"+sex+"',age="+age+",natio n='"+nation+"',clname='"+clname+"',place='"+place+"' where sno="+sno+""; pstmt=conn.prepareStatement(sql);
int count=pstmt.executeUpdate();//更新或修改 String sqllll="select * from S where sno"+"="+"'"+sno+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sqllll); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } %>
<% for(int i=0;i"); out.println(""+showStr[i]+"
"); } %>
<% while(rs.next()) { out.println(""); for(int i=0;i"); out.println(""+rs.getString(cloStr[i])+"
"); } out.println("
"); } %>
学生信息查询模块: 学生信息查询模块: 查询模块 p_cha.html:
Insert title here 欢迎您使用学生管理系统
查 询 操 作
请输入学生学号: | 请输入学生性别: |
请输入学生住址: |
请输入学生姓名: |
Cha.jsp:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312" import="java.sql.*"%>
call stored procedure <% int PAGESIZE=3; int pageCount=0; int curPage=1; java.sql.Connection conn=null; PreparedStatement pstmt=null; Statement stmt=null; ResultSet rs=null; String[] cloStr={"sno","sname","cclass","sex","age","nation","clname","place"} ; String[] showStr={"学生编号","学生姓名","所在年级","性别","年龄","民族","专 业","住址"}; if(conn==null) { String strURL="jdbc:mysql://localhost/test"; String strDBUser="root";
String strDBPwd="123"; try { Class.forName("com.mysql.jdbc.Driver"); out.println("连接数据库成功......"); conn=java.sql.DriverManager.getConnection(strURL,strDBUser,strDBPwd); } catch(ClassNotFoundException e) { e.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } } try{ String sql="select * from S"; stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.C ONCUR_READ_ONLY);//返回可滚动结果集 rs=stmt.executeQuery(sql); https://www.wendangku.net/doc/6716634815.html,st(); int size=rs.getRow(); pageCount=(size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } //获取想要显示的页数: String integer=request.getParameter("curPage"); if(integer==null) { integer="1"; }
try { curPage=Integer.parseInt(integer); } catch(NumberFormatException e) {curPage=1; } if(curPage<=1) { curPage=1; } if(curPage>=pageCount) { curPage=pageCount; } //如果要显示第curPage页,那么游标应移到posion的值是: int posion=(curPage-1)*PAGESIZE+1; rs.absolute(posion); // 设置游标的位置 %>
<% for(int i=0;i.println("
"); out.println(" "+showStr[i]+" | "); } %>
<% int count=0; do{ if(count>=PAGESIZE) break; out.println(""); for(int i=0;i;i++) { out.println(""); out.println(" "+rs.getString(cloStr[i])+" | "); } out.println("
");
count++; }while(rs.next()); %>
首页 上一页 下一页 尾页 第<%=curPage%>页/共<%=pageCount%>页
size=4>
按学号查询: 按学号查询: ①cha_xuehao.jsp:
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312" import="java.sql.*"%>
call stored procedure <% int PAGESIZE=3; int pageCount=0; int curPage=1; java.sql.Connection conn=null; PreparedStatement pstmt=null; Statement stmt=null; ResultSet rs=null; String[] cloStr={"sno","sname","cclass","sex","age","nation","clname","place"} ; String[] showStr={"学生编号","学生姓名","所在年级","性别","年龄","民族","专 业","住址"};
if(conn==null) { String strURL="jdbc:mysql://localhost/test"; String strDBUser="root"; String strDBPwd="123"; try { Class.forName("com.mysql.jdbc.Driver"); out.println("连接数据库成功......"); conn=java.sql.DriverManager.getConnection(strURL,strDBUser,strDBPwd); } catch(ClassNotFoundException e) { e.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!"); } } try{ String sno=request.getParameter("number"); byte no[]=sno.getBytes("ISO-8859-1"); sno=new String(no); String sql="select * from S where sno="+sno; stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.C ONCUR_READ_ONLY);//返回可滚动结果集 rs=stmt.executeQuery(sql); https://www.wendangku.net/doc/6716634815.html,st(); int size=rs.getRow(); pageCount=(size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1); } catch(Exception ex) { ex.printStackTrace(); out.println("您输入的信息有误,请查证后再重新输入!");
} //获取想要显示的页数: String integer=request.getParameter("curPage"); if(integer==null) { integer="1"; } try { curPage=Integer.parseInt(integer); } catch(NumberFormatException e) {curPage=1; } if(curPage<=1) { curPage=1; } if(curPage>=pageCount) { curPage=pageCount; } //如果要显示第curPage页,那么游标应移到posion的值是: int posion=(curPage-1)*PAGESIZE+1; rs.absolute(posion); //
设置游标的位置 %>
<% for(int i=0;i"); out.println(""+showStr[i]+"
"); } %>
<% int count=0; do{ if(count>=PAGESIZE) break;
out.println(""); for(int i=0;i"); out.println(""+rs.getString(cloStr[i])+"
"); } out.println("
"); count++; }while(rs.next()); %>
首页 上一页 下一页 尾页 第<%=curPage%>页/共<%=pageCount%>页
size=4>
②其中按姓名(cha_xuehao.jsp)、按性别 其中按姓名 、 (cha_xingbie.jsp)、按地址(cha_dizhi.jsp)查询基本同上, 、按地址 查询基本同上 查询基本同上, 此处代码省略。 此处代码省略。
五、实验结果 经过测试,系统可以正常运行。 六、实验分析 通过这次的实验, 我们熟练掌握了 Web 开发与设计术, 提高了自己程序设计的能力,并且培养了团队合作精 神。