1、 Web程序设计课程设计报告课程设计题目:职工信息管理系统 专 业 信息管理与信息系统职工信息管理系统课程设计目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。我使用JSP和Java Bean来构建一个职工信息管理系统。介绍的例子可以分成两大部分,第一部分是普通程序,用于登录系统,第二部分是实现职工信息的增,删,查。企业信息管理系统由以下几个部分构成:第一部分home.jsp:登入界面index.jsp:检测登录代码和密码是否一致,根据由JavaBean返回的结果显示不同的信息
2、。dbBean:会员的合法性检验所用的Bean;(1)Left.jsp(2)Right.jsp(3)Top.jsp(4)Left.htm(5)Logout.jsp(6)Login.htm第二部分职工信息的增删查功能1) dealdelete.jsp2) dealinsert.jsp3) dealupdate.jsp4) delete.jsp5) insert.htm6) process.jsp功能结构图登入 添加删除查询具体功能本例的数据库采用Access(.MDB数据库),对数据库的访问采用便于理解的JDBC-ODBC方式,在使用本例前先在本地数据库建立一个ODBC数据源:user。设置步骤
3、如下:(1)在开始-设置-控制面版(Win98、NT4.0)中选取“数据源(ODBC)”;在Win 2000 Professional和Server中分别位于“开始-设置-控制面版-管理工具”和“开始-程序-管理工具”下。(2) 启动“数据源(ODBC)”配置程序,界面如图15-1所示。图 ODBC数据源管理界面(3)在图15-1中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),则出现如图15-2所示数据源驱动程序选择界面:(3)图 数据源驱动程序选择界面(4)在图15-2中选择“Microsoft Access Driver (*.mdb)”单击“完成”加载Acces
4、s数据库的驱动,则出现如图15-3所示数据库ODBC安装界面:数据库登入界面登入成功首页增加功能 增加成功删除功能删除成功查询功能登入核心代码1) Left.htm查询用户 查询类型: 职工名职工名性别年龄薪水查询内容: 2) Right.jsp%!int size = 8;int p = 1;int totalPage = 1;String str = ;public String printPage(ResultSet rs, int p, int size,int logId) str = ; try for(int k=0;k(p-1)
5、*size;k+)rs.next(); catch(SQLException e) for(int iPage=1; iPage=size; iPage+) str += printRow(rs,iPage,p,logId); try if(!rs.next() break; catch(Exception e) return str;public String printRow( ResultSet rs ,int i,int p,int logId) String temp = ;try if(i%2=1)temp+=;elsetemp+=; String id=rs.getString(
6、id);if(logId10001)temp+=+id+;elsetemp+=+id+;temp+=+rs.getString(name)+;temp+=+rs.getString(sex)+;temp+=+rs.getString(age)+;temp+=+rs.getString(phone)+; temp += ;catch(SQLException e) return temp;%职工号职工名性别年龄薪水%ResultSet rsTmp=null;String sql2=select count(*) from user;if(type!=null & key!=null & !typ
7、e.equals() & !key.equals()if(type.equals(id)|type.equals(age)sql2 += where +type+=+key;elsesql2 += where +type+=+key+;rsTmp = conn.executeQuery(sql2);int totalrecord=0;if(rsTmp.next()totalrecord = rsTmp.getInt(1);if(totalrecord % size =0) totalPage = totalrecord / size; else totalPage = (int) Math.f
8、loor( totalrecord / size ) + 1; if(totalPage = 0) totalPage = 1;rsTmp.close();try if(request.getParameter(p)=null| request.getParameter(p).equals() if(session.getAttribute(rightp)=null)p = 1; elsep = (Integer)session.getAttribute(rightp).intValue();else p = Integer.parseInt(request.getParameter(p);
9、session.setAttribute(rightp,new Integer(p); catch(NumberFormatException e) p = 1;if(p totalPage) p = totalPage;if(rs.next()int logId=Integer.parseInt(String)session.getAttribute(loginId);out.println(printPage(rs,p,size,logId);% for(int i=1;i=totalPage;i+) out.println( + i + ); % 输入页数: 页数
10、:/ 3) Top.jsp 欢迎进入职工信息管理系统查询职工信息%String id=(String)session.getAttribute(loginId);int i=Integer.parseInt(id);if(i10001)out.println(添加职工信息);out.println(删除职工信息);elseout.println(添加职工信息);%退出4) Logout.jsp5) Login.htm职工信息系统登录 用户名: 密码: 增删查核心代码1) de
11、aldelete.jsp%request.setCharacterEncoding(gb2312);String delid=request.getParameterValues(isdel);if(delid!=null)for(int i=0;i2) dealinsert.jsp3) dealupdate.jsp4) delete.jsp%!/每页显示的记录个数int size = 8;/当前页号int p = 1;/全部的页数int totalPage = 1;String str = ;/显示页号为p的一页public String printPage(ResultSet rs, in
12、t p, int size) str = ; /将访问游标定位到页号为p的页要显示的第一条记录的位置 try for(int k=0;k(p-1)*size;k+)rs.next(); catch(SQLException e) for(int iPage=1; iPage=size; iPage+) str += printRow(rs,iPage); try if(!rs.next() break; catch(Exception e) return str;/显示单行记录public String printRow( ResultSet rs ,int i) String temp =
13、;try if(i%2=1)temp+=;elsetemp+=; String id=rs.getString(id);temp+=+id+;temp+=+rs.getString(name)+;temp+=+rs.getString(sex)+;temp+=+rs.getString(age)+;temp+=; temp += ;catch(SQLException e) return temp;%职工号职工名性别年龄是否删除%ResultSet rsTmp=null;rsTmp = conn.executeQuery(select count(*) as mycount from user
14、);int totalrecord=0;if(rsTmp.next()totalrecord = rsTmp.getInt(mycount);/ 如果记录数是页数的整数倍if(totalrecord % size =0) totalPage = totalrecord / size; / 如果最后还空余一页 else totalPage = (int) Math.floor( totalrecord / size ) + 1; if(totalPage = 0) totalPage = 1;rsTmp.close();try if(request.getParameter(p)=null| r
15、equest.getParameter(p).equals() if(session.getAttribute(deletep)=null)p = 1; elsep = (Integer)session.getAttribute(deletep).intValue();else p = Integer.parseInt(request.getParameter(p); session.setAttribute(deletep,new Integer(p); / 捕获用户从浏览器地址拦直接输入非数字信息而引出的异常catch(NumberFormatException e) p = 1;if(p
16、 totalPage) p = totalPage;if(rs.next()out.println(printPage(rs,p,size);% for(int i=1;i=totalPage;i+) out.println( + i + ); % 输入页数: 页数:/ 5) insert.htm%!/每页显示的记录个数int size = 8;/当前页号int p = 1;/全部的页数int totalPage = 1;String str = ;/显示页号为p的一页public String printPage(ResultSet rs, int p, int si
17、ze) str = ; /将访问游标定位到页号为p的页要显示的第一条记录的位置 try for(int k=0;k(p-1)*size;k+)rs.next(); catch(SQLException e) for(int iPage=1; iPage=size; iPage+) str += printRow(rs,iPage); try if(!rs.next() break; catch(Exception e) return str;/显示单行记录public String printRow( ResultSet rs ,int i) String temp = ;try if(i%2
18、=1)temp+=;elsetemp+=; String id=rs.getString(id);temp+=+id+;temp+=+rs.getString(name)+;temp+=+rs.getString(sex)+;temp+=+rs.getString(age)+;temp+=; temp += ;catch(SQLException e) return temp;%职工号职工名性别年龄是否删除%ResultSet rsTmp=null;rsTmp = conn.executeQuery(select count(*) as mycount from user);int totalrecord=0;if(rsTmp.next()totalrecord = rsTmp.getInt(mycount);/ 如果记录数是页数的整数倍if(totalrecord % size =0) totalPage = totalrecord / size; / 如果最后还空余一页 else totalPage = (int) Math.floor( totalrecord / size ) + 1; if(totalPage =