JSP Java Beans Servlet系统开放设计_第1页
JSP Java Beans Servlet系统开放设计_第2页
JSP Java Beans Servlet系统开放设计_第3页
JSP Java Beans Servlet系统开放设计_第4页
JSP Java Beans Servlet系统开放设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录目录 摘要.i 第一章 绪 论 .1 1.1 前言 .1 1.2 开发背景 .1 1.3 课题开发的目的和意义 .2 1.4 研究内容 .3 1.5 解决的主要问题 .4 第二章 系统分析 .5 2.1 系统分析原则与方针 .5 2.2 系统概述 .5 2.2.1 系统目标.5 2.2.2 系统要求.6 2.3 可行性研究 .7 2.3.1 可行性研究的必要性.7 2.3.2 经济可行性.7 2.3.3 技术可行性.8 2.3.4 操作可行性.8 2.4 数据流程图 .8 2.5 数据字典 .11 2.6 运行环境 .13 2.7 开发工具 .13 2.8 开发技术 .14 2.8.1 j

2、sp.14 2.8.2 servlet.16 2.8.3 ms sql server 2000.17 2.8.4 jspjavabeansservlet 的结构.17 2.8.5 jdbc.18 2.9 需求分析 .19 2.10 er 图.20 第三章 总体设计 .21 3.1 系统功能 .21 3.1.1 系统实现的功能.21 3.1.2 前台模块.22 3.1.3 后台模块.23 3.2 服务器配置 .23 3.3 系统设计 .24 3.4 数据库设计 .24 3.4.1 创建数据库.25 3.4.2 创建表间的索引关系.27 3.5 数据库的连接 .29 第四章 详细设计 .31 4.

3、1 网站的设计思想 .31 4.2 数据库连接的 javabean.31 4.3 数据库具体操作的 javabean.34 4.4 注册模块的设计 .36 4.5 登录模块的设计 .37 4.6 前台页面浏览信息模块设计 .38 4.7 分页技术的实现 .39 4.8 异常处理 .41 第五章 系统测试 .42 5.1 测试综述 .42 5.1.1 测试方法.42 5.1.2 数据库测试.42 5.2 测试结果 .43 第六章 结论 .44 致谢 .45 参考文献 .46 1 第一章第一章 绪绪 论论 1.11.1 前言前言 近几年来,计算机网络、分布 式技术日趋成熟,数据库技术不断发展,网

4、站的应用已经 延伸到社会的各个领域,并发挥着越来越重要的传媒作用。 在传统的 web 服务器中,文本和其它多媒体信息都是以文件的形式来进行 存储和管理的,随着信息量的不断增加,系统的性能受到越来越大的影响。另 一方面, www 的应用领域在不断拓展,静态的web 页面越来越不能满足对信 息服务的动态性、实时性和交互性的要求。 b/s(浏览器/服务器)方式的网络结构,在客户端不需要开发任何用户界面, 而统一采用如 netscape 和 ie 一类的浏览器,通过 web 浏览器向 web 服务器提出 请求,由 web 服务器对数据库进行操作,并将结果逐级传回客户端。在 b/s 体系 结构系统中,用

5、户通过浏览器向分布在网络上的许多服务器发出请求,服务器对 浏览器的请求进行处理,将用户所需信息返回到浏览器。b/s 结构简化了客户机的 工作,客户机上只需配置少量的客户端软件,服务器将担负更多的工作,对数据 库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余的,如 数据的请求、加工、结果的返回以及动态网页生成等工作全部由 web 服务器来完 成。 而数据库技术经过几十年的发展,其功能越来越强大。目前大量的信息通 过数据库系统进行存储和管理,各种大型关系数据库系统,如 db2、oracle、informix、sybase、ms sql server 等,都具有对大批量数据 进行有效

6、的组织、管理和快速的查询检索功能。因此将web 技术与数据库技 术相结合,开发动态的 web 数据库应用系统,已成为必然。 1.21.2 开发背景开发背景 人才在各行各业都是发展的关键,如何能够聘到真才实学的人是各行各业非常 关心的问题。而找不到理想的工作、不能发挥自己的聪明才智也让许多人烦恼,人 2 们走进社会都会面临就业求职的问题。虽然招聘会是人才交流的主要方式,但是他 远远不能满足现实中的需求,招聘会定期召开,过期没有交流的机会,有限的几天 内企业与个人的面对面的交流,虽然有的招聘会提前贴出海报或进行其他的宣传方 式,但是还会有很多企业和个人错过机会。还有一些人,为了招聘会不得不放弃一

7、些重要的事情,而且招聘会的人数众多,很难管理,空间有限不利于交流。为了更 好的分配人力资源,现实社会中急需一个第三者为企业与人才牵线搭桥。 随着社会的不断发展,我国高校就业问题也越发明显,目前高校毕业生主要是 通过“双向选择”洽谈会进行就业。 “双选会”在一定程度上有效的解决了高校毕 业生就业问题,但由于也受到时间、地点、规模等因素的制约,使供需双方的有效 信息沟通受到限制,影响了供需双方做出快速而准确的决策。随着我国高校大规模 扩招后大学生陆续毕业,大学生就业工作形势变得越来越严峻。毕业生就业工作, 不仅关系到高校的办学质量和社会声誉,而且已经成为目前高校改革发展与稳定的 一个重要环节。高校

8、毕业生作为特殊的“产品” ,要想在激烈的竞争中取胜,除了 要有符合市场要求的优质品质外,作为供给方高校的“营销”策略也不容忽视。 我们的高校学府,一方面顺应社会发展要求,培养出一批又一批高素质、高科 技的人才;另一方面,其输送人才的机构就业工作部门,却跟不上时代的步伐, 工作方式、手段的滞后与之形成较大的反差,仍在较大程度上沿袭传统的做法,工 作效率和服务方式尚未得到明显的改善。目前高校毕业生就业市场上供需双方的信 息是在低速、窄幅流动,其时效性、有效性、传递性较差,不利于毕业生与用人单 位的沟通,不能最大限度地使用需求信息,这对毕业生、用人单位、学校与社会都 是一种很大的损失。如何适应时代的

9、要求,开创就业工作的新天地,这是摆在所有 从事就业工作者面前的一大课题。针对这种情况,国家教育部提出急需一种高效方 便的手段来提高毕业生就业工作的效率。 1.31.3 课题开发的目的和意义课题开发的目的和意义 当今社会高科技飞速发展,信息产业日新月异,将人类带入了信息社会。各 行各业正在或即将享受网络带来的高效与便捷,接受它给我们的工作与生活带来 3 的变化。结合现代化信息技术的应用,采用快捷、高效、便利的信息传播手段。 现实社会和各高校都提出了需要有一个第三者为企业和人才牵线搭桥,用来弥补 招聘会存在种种不足。在这种情况下,我们要将网络技术与招聘求职紧密的联系 起来,开发一个基于 web 的

10、就业求职信息交流网,可以使的企业和个人在这个平 台上注册帐户并且发送自己的相关信息,达到企业与人才进行信息的交流,以更 快捷、简单的方式来完成招聘会中的洽谈环节。当彼此有了一定的了解后,再选 择是否实现就业求职的目的,这样可以用最经济的方式来分配人力资源,从而能 够达到人才合理分配的目的。能够使就业求职网达到与招聘会拥有同等效果的目 的。 本网站还应该拥有一个个人与企业能够注册帐号,登陆网站发布信息的平台。 使得每个用户以方便简洁的方式登录、管理、发布求职或者招聘信息;也能够帮 助企业在网络上找到合适自己需求发展的人才,最更快、最经济的方式实现招聘; 管理员和网络维护者可以用方便的手段管理个人

11、用户和企业的每一条信息, 可以 随时查看并对其进行检查,用来监督和防止用户录入非法信息。 就业求职网站的建立使得就业工作向深度和广度发展,创建和完善就业信息 网,拓展就业市场建设的新领域,是新时期社会就业求职工作的要求,也是时代 发展的必然,建设就业求职信息网,还可依托网络进行全过程的就业指导,构建 人才“售后服务”体系,这既是社会就业制度改革的需要,也是中国各高校改革 与发展的需要。 1.41.4 研究内容研究内容 本网站系统,是针对目前社会就业人数越来越多、就业压力越来越大,在就业 时与企业发生的一些问题而开发的一个就业求职网站。该网站的实现采用当前比较 流行的 b/s 模式,即在客户端安

12、装 web 浏览器,在服务器端安装服务器程序。通过 web 浏览器向 web 服务器提出请求,由服务器对数据库进行操作,并将结果逐级传 回客户端。用户应该能够通过浏览器向分布在网络上的许多服务器发出请求,由 jsp 来接受这些请求,然后调用 javabean 做具体的数据存取逻辑运算等处理,把 4 结果返回给 jsp,jsp 把得到的结果通过浏览器返回给用户。只要客户按其类型登 录注册,就可以发布和管理其信息,并且管理员可以在客户端进行管理网站中的信 息。 1.51.5 解决的主要问题解决的主要问题 1. 配置开发 jsp 程序的工具 java 2 sdk 的环境变量,选择一个合适的 web

13、服务器,并且能够正确的安装和配置,调试它们直到能够在机器上正常 运行。 2. 配置数据库连接 java 的 api 工具 jdbc 的环境变量,解决 tomcat 的数据 库连接池问题,编写出能够实现数据库连接、查询、插入、删除的 javabean 组件。 3. 实现在 jsp 页面中通过 javabean 组件能够查询、插入、删除数据库中的 数据操作,解决显示数据乱码的问题。 4. 用户可以随时注册自己的 id 帐号,填写自己的基本信息,发布就业求职 信息,并且可以登录查询网站的信息。在网站发布的信息过期之后就不 显示在网页页面上,防止用户查看垃圾信息。 5. 在网站的首页上能够显示友情链接

14、信息,方便用户浏览其它网页的资源。 6. 管理员能够对所有用户的的各项信息进行管理,可以在不改动网站页面 的情况下随时对友情链接进行管理。 7.能够实现显示页面的分页的技术,防止信息在一个页面中过于冗长。 5 第二章第二章 系统分析系统分析 2.12.1 系统分析原则与方针系统分析原则与方针 采用面向对象分析的方法,为了开发复杂的软件系统,系统分析员应该从不同 角度抽象系统的特性,使用精确的方法建立问题域的对象模型,这个模型描述了现 实世界中的“类 当驱动程序加载后,将会自动利用驱动程序管理类,注册加载的驱动程序。 2.再利用驱动程序管理类(java.sql.drivermanager)来打开

15、数据库连接: connection con=drivermanager.getconnection(url,user,password); 其中:url=jdbc:microsoft:sqlserver:/localhost:1433;databasename=数据库名 ;user=用户名;password=密码;。 3. 执行基本的 sql 语句: 数据库的连接建立完毕后,就可以对数据库中的记录进行操作了,使用 statement 对象可以向数据库发送 sql 语句,使用 resultset 对象可以返回满足 条件的结果集。 statement 对象的建立。使用 statement 类声明一

16、个 sql 语句对象,在通过连 接对象的 creatstatement( )方法创建它: 31 statement stmt=conn.createstatement( ); 使用 statement 对象的 excutequery(string sql)方法可以返回结果集(resultset), 如: resultset rs=sql.executequery(select * from 数据表名); 4.关闭 connection、statement 和 resultset 的对象: connection 对象.close(); statement 对象.close(); resultse

17、t 对象 第四章第四章 详细设计详细设计 32 4.14.1 网站的设计思想网站的设计思想 一个网站在各项需求确定、系统分析和数据设计都完成后,下一步就可以根 据这个网站的特点确定网站的开发模式了,然后就可以编写程序代码了, jsp+javabean 的开发模式是一种比较好开发过程。当用户浏览访问网站时,由 jsp 来接受这些请求,然后调用 javabean 做具体的数据存取逻辑运算等处理,把结果 返回给 jsp,jsp 把得到的结果通过浏览器返回给用户,整体流程图如: 图4-1整体流程图 我们把一些常用的的和可重复使用的组件写成 javabean。然后放入 web- inf/class 下使

18、用,这样用户浏览网页时,从数据库中动态取出数据信息时,实现 数据库操作功能的代码不需要在不同的网页中重复若干,只需要将数据的操作功能 代码编写成 javabean,在每个网页中使用它就可以了。 4.24.2 数据库连接的数据库连接的 javabeanjavabean import java.sql.*; public class conn private static connection con; private statement stmt; private resultset rs; private static final string drivername = com.microso

19、ft.jdbc.sqlserver.sqlserverdriver; /数据库连接url request response javabeanjsp 服务器端 call return browser 客户端 33 private static final string url = jdbc:microsoft:sqlserver:/:1433;databasename=db_job;user=sa;password=12 3456; /* *获取数据库连接 */ public static synchronized connection getcon() throws exce

20、ption try class.forname(drivername); /加载驱动程序 con = drivermanager.getconnection(url); /获取数据库连接 return con; catch (sqlexception e) system.err.println(e.getmessage(); throw e; /* *获取statement只能用于查询语句 */ public statement getstmtread() try con = getcon(); stmt =con.createstatement(resultset.type_scroll_i

21、nsensitive, resultset.concur_read_only); return stmt; catch (exception e) system.err.println(e.getmessage(); e.printstacktrace(); return null; /* *获取resultset */ public resultset getrs(string sql) try stmt = getstmtread(); rs = stmt.executequery(sql); return rs; catch (exception e) system.err.printl

22、n(e.getmessage(); e.printstacktrace(); return null; 34 /* *获取statement用于删除、更新和添加的sql语句 */ public statement getstmt() try con = getcon(); stmt = con.createstatement(); return stmt; catch (exception e) system.err.println(e.getmessage(); e.printstacktrace(); return null; /* *关闭数据库连接 */ public synchroni

23、zed void close() try if (rs != null) rs.close(); rs = null; catch (exception e) system.err.println(e.getmessage(); e.printstacktrace(); try if (stmt != null) stmt.close(); stmt = null; catch (exception e) system.err.println(e.getmessage(); e.printstacktrace(); try if (con != null) con.close(); con =

24、 null; catch (exception e) system.err.println(e.getmessage(); 35 e.printstacktrace(); 4.34.3 数据库具体操作的数据库具体操作的 javabeanjavabean import java.sql.*; public class data private conn con = new conn(); private statement stmt; private resultset rs; /* *获取查询的行数 */ public int getrowcount(string strsql) int in

25、tcount = 0; try stmt = con.getstmtread(); rs = stmt.executequery(select count(*) from + strsql); if (rs.next() intcount = rs.getint(1); else intcount = -1; catch (exception e) intcount = -2; system.err.println(e.getmessage(); e.printstacktrace(); finally con.close(); return intcount; /* *向数据库插入数据 */

26、 public int insert(string sql) int count = 0; stmt = con.getstmt(); try count = stmt.executeupdate(sql); catch (exception e) 36 count = -2; system.err.println(e.getmessage(); e.printstacktrace(); finally con.close(); return count; /* *更新数据库数据 */ public int update(string sql) int count = 0; stmt = co

27、n.getstmt(); try count = stmt.executeupdate(sql); catch (exception e) count = -2; system.err.println(e.getmessage(); e.printstacktrace(); finally con.close(); return count; /* *删除数据库数据 */ public int delete(string sql) int count = 0; stmt = con.getstmt(); try count = stmt.executeupdate(sql); catch (e

28、xception e) count = -2; system.err.println(e.getmessage(); e.printstacktrace(); finally con.close(); return count; 37 4.44.4 注册模块的设计注册模块的设计 此模块的功能主要要实现用户注册,当用户第一次登录时,需要先在本网站注 册后才能够在网站上发布信息,注册页面时至少要让用户填写一些必要的信息,如 用户名、密码、密码确认、真实姓名等,该模块的流程图: 图4-2 注册模块流程图 4.54.5 登录模块的设计登录模块的设计 登录模块是用户登录网站的窗口,它在网站的首页,用户登

29、陆时选择登录的身 y n y n 开始 输入 name,password, email,birthday 输入为空 输出请填写 完整信息 intt=0 t=data。getrow(。 。 ) t0 注册成功 结束 输出该用户 已被注册 38 份类型,然后向服务器提交数据。登录页面如图所示: 图4-3 注册模块流程图 登录模块流程图设计: 图4-3 登录模块流程图 登录入口提交的数据表单: 名称:元素类型含义 n y 开始 企业 输入 id,passw ord 正确 登录失败 登录成功 个人 结束 39 snametext用户名 passwordpassword密码 selectradio选择个

30、人或企业 4.64.6 前台页面浏览信息模块设计前台页面浏览信息模块设计 每一个网页的浏览者都可以查看网站的求职和招聘信息,并且查看发布信息用 户的基本资料与向其发送邮件。前台浏览信息模块只调用数据库中最新发布的 9 条 信息。人才在线浏览信息页面如: 浏览信息模块流程图: 图4-3 浏览信息模块流程图 显示求职信息关键代码: out.print();% y n 开始 i=0,a=9 向页面显示 所有短信息 i+ i=a 结束 40 a target=_blank href=view.jsp?cid=主要经营 ,招聘职位,招聘薪水 。 % out.print(); 4.74.7 分页技术的实现

31、分页技术的实现 int countrecord=0;/记录条数 int countpagerecord=0;/每页记录条数 int countpage=0;/总页数 countpagerecord=x;/每页x条记录,要设置每页记录条数就更改这个变 量的值 /得到记录的条数 rs.last(); countrecord=rs.getrow(); /得到总页数 if(countrecord/countpagerecord=0) countpage=countrecord/countpagerecord; else countpage=countrecord/countpagerecord+1;

32、/把记录指针移至当前页第一条记录之前 if(dipage-1)*countpagerecord=0) rs.beforefirst(); else rs.absolute(dipage-1)*countpagerecord); i=0; i+; if(i=countpagerecord) break; /当前页显示完,则退出循环 41 out.print(); out.print(共+countrecord+条记录,共+countpage+页,当前第 +dipage+页,每页+countpagerecord+条记录,); if(dipage=1)/当前是首页 ; else/当前不是首页 out

33、.print(首页,); out.print(上一页,); if(dipage=countpage)/当前是末页 ; else/当前不是末页 out.print(下一页 ,); out.print(末页); 42 4.84.8 异常处理异常处理 nullpinterexception异常 这是一个 nullpinterexception 异常,如果页面中包含 null 值操作,就会产生 这种异常。如果确定在页面中没有 null 值操作,那就要检查一下数据库,有两 种可能,一种是连接数据库时语句出现问题,另一种是没有正确配置数据源,在开 发本网站系统时, 就遇到了数据源配置错误,而出现了这种异常

34、 43 第五章第五章 系统测试系统测试 5.15.1 测试综述测试综述 .1 测试方法测试方法 软件测试的方法和技术是多种多样的。主流的测试方法有白盒测试和黑盒测试 两种方法。黑盒测试是集中在软件的功能需求上,这就是黑盒测试允许软件工程师 导出适当的输入数据集合以检测一个程序或模块的所有功能需求。黑盒测试是在程 序或模块的接口级进行,而不考虑程序的内部逻辑。白盒测试,有时又称玻璃盒测 试,使用白盒测试导出测试案例是依据模块的编码,即模块的内部逻辑对测试者是 可见的,故称白盒测试。使用白盒测试方法所导出的测试案例能保证:模块中所有 独立途径至少测试一次;测试所有逻辑决策真和假两个

35、方面;在所有循环的边界内 部和边界上执行循环体;检查内部数据结构以保证其有效性。 黑盒测试集中在软件的功能需求上,这就是黑盒测试允许软件工程师导出适 当的输入数据集合以检测一个程序或模块的所有功能需求。黑盒测试是在程序或模 块的接口级进行,而不考虑程序的内部逻辑。黑盒测试能够用于检测程序中下列类 型的错误: (1)不正确或漏掉的功能,这往往是由于程序算法中问题所造成的; (2)接口错误; (3)数据结构或外部数据库中存取中的错误; (4)初始化或结束错误; (5)性能方面的问题,这种类型的问题通常也是和算法有关的。 .2 数据库测试数据库测试 在web应用技术中,数据库起着重要的作用,数据库为web应用系统的管理、 运行、查询和实现用户对数据存储的请求等提供空间。在web应用中,最常用的数 据库类型是关系型数据库,可以使用sql对信息进行处理。 在使用了数据库的web应用系统中,一般情况下,可能发生两种错误,分别是 44 数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论