计算机毕业论文毕业论文1

上传人:仙*** 文档编号:63205540 上传时间:2022-03-17 格式:DOC 页数:70 大小:1.45MB
返回 下载 相关 举报
计算机毕业论文毕业论文1_第1页
第1页 / 共70页
计算机毕业论文毕业论文1_第2页
第2页 / 共70页
计算机毕业论文毕业论文1_第3页
第3页 / 共70页
点击查看更多>>
资源描述
仅供参考XXXX学院毕业设计(论文)BBS论坛的设计学 院:专 业:班 级:学 号:学生姓名:指导教师:2010年3月15日摘要本系统是采用jsp+servlet 技术开发设计的BBS论坛系统,基于MVC的设计模式,结合JSTL+EL以及AJAX等的页面显示技术,使JSP页面中无JAVA代码的显示,保证了代码的安全,同时简化了 JSP页面的编码。系统实现了论坛信息的动态发布,使得对信息的管理更加及时、高效,提高了工作效率。数据库采用了 SQLSERVER20数据库,操作简单、方便而且廉价易维护性高。4软件采用的是B/S的设计结构,主要分为前台显示和后台管理两部分。前台是用户注 册、密码修改、登录、浏览帖子、回复帖子、根据关键字搜索帖子等;后台主要实现对帖 子的查看、对非法的帖子进行删除,对回复的帖子进行查看、删除等管理操作以及公告的 发布、添加、删除、修改等操作。本文通过对BBS论坛系统设计到实现流程的描述,目的是让人们了解BBS论坛网站的 结构以及系统从设计到实现中各个部分的解决方案,让大家了解JAVA网络编程广泛采用的设计模式。关键词:论坛,系统,JSP,公告AbstractThe hot-fish forum net system is desig ned in the paper, which emplo ying the tech no logy of jsp+servlet, bas ing on the mode of MVCIn order to en sure the security of the desig n code, this paper adopts the display tech no logy, such as JSTL+EL and AJAX .In the mean time, the page code is simplified by use of some relate ways. The dynamic issue system is finished in this paper, which made the man ageme nt of in formatio n realize real-time renew and the efficie ncy rise. This paper employed the SQLSERVER2000 database, having many advaneed characteristics, such as operate simple, the low price and the more convenient maintain procedure.The B/S desig n structure is used in this software, which divided in to two parts, the state display and the backstage management. Consumer to register, the password modification, password retrieve, register, browse, reply an invitation card and search invitation card etc are operated in the former part; The later part mainly carries out the managementoperation, in cludi ng establish and can cel to the esse nce of the in vitatio n card, look into to the in vitati on card and deletes to the illegal invitation card progress, research, delete to the invitation card progress of the recovery etc, and what is more ,the operation of issuing releasing, increasing,deleti ng, modify ing the announce etc is realized in this part.This paper released the tech no logy of the n et structure and the method to solve the problem encountered in the design, basing on description to the process of forum net system. Let every one un dersta nd JAA n etwork plait dista nee of the desig n mode of the exte nsive usage.Keywords: forum,system, JSP, announce前言 11可行性分析 21.1技术可行性 21.2操作可行性 31.3分析结论 32需求分析 32.1系统的功能需求 32.1.1 会员功能 32.1.2搜索功能 42.1.3版主功能 42.1.4论坛展区功能 42.1.5后台数据维护功能 43概要设计 153.1系统总体构概要设计 153.2数据模型 153.2.1 数据流图 153.2.2 系统设计E-R图 163.3数据库设计 174详细设计及实现 194.1前台页面的设计和实现 194.1.1首页的设计实现 194.1.2 用户登录界面的制作 204.1.3用户注册界面的制作 234.1.3用户分区界面的制作 274.2后台页面的设计和实现 314.2.1管理员登录界面的设计 314.2.2管理员管理的设计和实现 315测试 415.1测试的任务及目标 415.1.1 测试的任务 415.1.2测试的目标 415.2测试方案 425.3测试用例 425.3.1 会员登录测试 425.3.2发帖测试 436结论 45参考文献 46谢辞 45IIBBS论坛网站的设计、八、刖言网站论坛是一个以文化交流,学习知识,娱乐游戏为目的的,借助网络传输媒体和WEB共享实现的使用系统。所以定位要准确,什么样的目的就要体现什么样的特色!本网站是以 知识交流为主要的目的,所以在服务和内容方面要从知识交流这个方面考虑,体现互联网的优势,消息的实效快,传播的速度广!为了能更好的服务于人,本论采用MVC设计模式即:Model+View+Co ntroller的设计模式,以软件工程的思想从全局把握开发流程,增加了系统 的可靠性和可维护性,从而降低了投入。伴随着网络的出现,网页逐渐融入人们的生活。随着In ternet的进一步发展,建站的技术日新月异。 就现在开发web技术来说,主要集中分为三大类:基于C/S结构的使用程序开发;结合C/S结构和Web技术的复合使用程序;基于 B/S结构的动态网页技术。C/S结 构系统:是传统开发模式,一般以数据库和客户端的两层结构实现,也有加入中间件的三层 或多层结构,在web早期是标准的系统模式,但随着计算机技术的发展和网络的发展,C/S结构的不足越发明显,B/S结构系统逐渐成为了时尚,而该结构的实现技术中最流行的就 是.NET和JSP,而从安全性的角度将JSP又更胜一筹,因此采用JSP技术开发该论坛系统。本系统能够让人们更加方便的在网上进行知识交流,从而促进文化知识的传播以及各类 信息技术的传播,同时达到人们网上交流、学习的目的。开发本系统用到了如下相关技术:(1)JSP技术JSP(Java Server Pages) 是由Sun Microsystems公司倡导、许多公司参和一起建立的 一种动态网页技术标准。该技术为创建显示动态生成内容的 Web页面提供了一个简捷而快速的方法。(2) JSTL+EL技术EL全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言。JSTL是由JCP(Java CommunityProcess)所指定的标准规格,它主要提供给 Java Web开 发人员一个标准通用的标签函数库。 Web程序开发人员能够利用JSTL和EL来开发Web程序, 取代传统直接在页面上嵌入Java程序(Scripting )的做法,以提高程序可读性、维护性和 方便性(3) AJAX技术Ajax ( Asynchronous JavaScript and XML 是结合了 XHTM技术、XML以及 JavaScript 等编程技术,可以让开发人员构建基于 Java技术的Web使用,并打破了使用页面重载的惯 例。Ajax是使用客户端脚本和 Web服务器交换数据的 Web使用开发方法。系统采用Microsoft公司的SQLSERVER20数据库,该数据库操作简单,可靠性较高, 完全可以满足中小型网站的建设需求。1可行性分析1.1技术可行性技术上的可行性主要是根据系统分析得到的需要开发的软件,来分析利用现有技术是否 能实现待开发的软件。本系统需要连接到互联网上,运用jsp+servlet技术开发,方便快捷, 开发所需要的软件工具都是简单易操作的且开源,安全,可维护性强。如下所示:Web服务器:Apache-Tomcat-6.0.1 版本.开发技术:jsp+servlet 技术.开发工具:Eclipse 3.2 及其 MyEclipse Enterprise Workbench 5.1.0版本以及网页开发工具 Macromedia Dreamweaver 8.数据库:SQLSERVER2000服务器操作系统:由于JAVA语言的跨平台性,开发过程采用 Windows2000 Professional 操作系统,也可以采用Win dows XP操作系统。现有的硬件和软件在功能上是可以满足系统开发的需求,开发所需要的软件工具也都是 简单易操作的,开发人员的技术水平完全可以胜任系统的开发。所以该系统在技术上是可行 的。1.2操作可行性该系统具有易用性,B/S结构使得客户端不必安装任何软件,只要有浏览器并连接到 In ternet或企业内部的Intran et上即可使用,免除了非专业人员操作技术上的困难。服务 器操作系统采用Windows XP,Web服务器为 Apache-Tomcat- 6.0.1版本,数据库为SQLSERVER2000该系统具有友好亲切的使用界面,功能丰富并且使用简单,一般用户无需培训即可使用, 对运行的平台和机器配置要求不高,便于配置和使用。1.3分析结论经以上分析,说明该系统在开发上是可行的,在技术、操作上都有可行性,可以进行开发。2需求分析2.1系统的功能需求论坛具有标准论坛系统所具有的分类管理,注册会员可发表文章,浏览文章,文章回复,查询文章,后台管理维护界面,真正实现节约资源、提高效率、业务处理的同时真正实现论 坛的功能作用。2.1.1会员功能为了使论坛有良好的秩序,在身份确定方面一定要作准确无误。 在进入论坛之前每一个 用户都要在网站注册一个会员的账号。当然,网站在用户资料的保密方面承诺不外泄。注册号账号之后,用户就可以用账号登录网站,进行发表文章、回复帖子等,对于没有注册的用 户是不能回复帖子的,更不能发帖子。2.1.2搜索功能用户可以根据自己的实际需求,搜索论坛里的全部文章。可按标题、类别以及关键字来 查找各种需要的信息。2.1.3版主功能版主功能主要是对帖子的管理,其中包括删除帖子、回复帖子。删除帖子主要是有的帖 子有不健康信息,对于这些信息给予删除。接收到需要回复的帖子时,提出意见、发表见解, 给予适当的回复。2.1.4论坛展区功能论坛展区是主要是各类信息的主题,其中包括用户自拟的主题,这样用户就可以用帖子进行交流。其中包括各种帖图、养殖技术、时事等。在经过管理员的筛选,保留下来提供给 大家的。在这里可以供用户浏览帖子,发送帖子以及对别人的帖子给予自己的意见,即回复 帖子。2.1.5后台数据维护功能后台管理主要是对用户的信息管理,其中包括用户管理、帖子管理、修改密码处理。主 要是帖子管理,对用户发表的不健康信息给予删除,也包括对不同分区的信息管理,通过对 数据库的更新来修改用户密码和发布公告。综合上述分析进行概要设计。2.2JSP技术简介JSP(Java Server Page艮务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许 多公司参和一起建立的一种动态网页技术标准, 是基于JavaServlet以及整个Java体系的web 开发技术。在传统的网页 HTML文件(*htm,*html)中加入脚本片段和JSP标记(Tag),构成 JSP网页(*jsp)。JSP技术为创建显示动态生成内容的 web页面提供了简便的方法。JSP作为Java家族的一员,承袭了 Java的特点,即跨平台的特性,也即一次编译,至U处运行在国外,己经大量使用JSP作为网络使用程序的开发工具,而在国内,尽管 JSP还不是 主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向 JSP,利用JSP来开发 动态网站。2.3 JSP工作原理JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网 页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如 JavaBean组件、Servlet 或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息, 然后服务器端组件再将响应对象返回 JSP引擎。JSP引擎将响应对象传递给JSP页面,根据 JSP页面的HTML格式完成数据编排,最后 Web服务器和JSP引擎将格式化后的JSP页面 以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器一一Web服务器后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给 客户端的仅是得到的结果。2.4 JSP体系结构JSP网站开发标准给出了两种使用 JSP的技术,可以归纳为模式一、模式二。模式一 :JSP+JavaBean技术 在这种模式中,JSP页面独自响应请求并将处理结果返回 给客户。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成和显示相分离。当 处理复杂的大型使用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设 计人员,这是不可思议的事情。所以模式一可用于小型使用,不能够满足大型使用的需要。模式二:JSP+Servlet+JavaBean技术 Servlet技术是一种采用Java技术来实现 CGI功能 的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的 MVC结构(Model/view/controller), 其中Servlet对应controller,处于控制者的位置,处理 HTTP请求,负责生成JSP中使用的 Beans组件或对象,并判断应将请求传递给哪个 JSP等,JSP对应view,负责生成最终的动 态网页并返回给浏览器。而 JavaBeans对应的是Model,实现各个具体的使用逻辑和功能。2.5 JSP的特点1. 简化的页面生成技术。JSP页面用标准的 HTML或XML命令来处理页面的格式化和布局设计,而用类似 HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式和页面内 容互相独立,非常有利于大型项目的分工合作。2. 和Java平台有机集成。JSP技术是Java 2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在 JSP 页面中可以使用几乎所有的Java组件和Java API,这就能充分发挥出Java语言的强大功能。 使用JSP技术可以创建具有高度可伸缩性和可靠性的 Web使用程序。3. 硬件平台和服务器无关性。JSP作为Java家族的一员,秉承了 Java技术的“一次编写,随处可用(Write Once,Rum An ywhere) ”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种和服务器硬件和操作系统平台的无关性是 JSP相对于其它动态网页技术最大的一个优点。4. 功能可扩展性。如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过 JavaBean和EJB(Enterprise JavaBean以及自定义的标记来扩展功能。JSP可以通过JDBC,和诸如Oracle、SQL Server这样的大型关系数据库进行连接。JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。 利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如, 利用request对象,可以很容易地接收用户在 HTML表单中提交的信息。2.6系统数据库连接JDBC技术是Java DataBase Connectivity的缩写,它是 SUN公司提供的一种支持基本 SQL功能的通用的使用程序接口 (Application Programmi ng In terface)。它由一组用Java语言 编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立和数据库的链接,通过执行相应 SQL语句,完成对不同数据库的访问。因此,开发人员使用 JDBC API可以不必编写一个使用程序来访问 Sybase数据库,又另外编写一个使用程序去访 问Oracle数据库,再写一个使用程序访问 Microsoft的SQL Server。不但如此,使用Java语7言编写的使用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的使用程序。简单地说,JDBC能完成下列三件事:1. 同一个数据库建立连接;2. 向数据库建立连接;3. 处理数据库返回的结果。JDBC是一种通用低层的使用程序编程接口,它在不同的数据库功能模块的层次上提供 一个统一的用户界面。说 JDBC是一处低级的API,是指它直接调用SQL命令,它比其他 的一些数据库连接 API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的 API或开发工具基础。很多可视化的Java开发工具,如Visual Age For Java Visual Caf eJ+等都提供了基于 JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为 Java类,程序员通过可 视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的 各种属性、方法的操作来自动产生。另一种使用 JDBC API的方式为,用户程序可以提供一 个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些 必要的信息,然后根据用户的输入产生相应的 SQL命令以及Java程序。通过这处方式,用 户可以完成对数据库的操作,即使他并不了解 SQL语法以及JDBC编程。数据库访问的三层结构如图5.1所示,浏览器端程序要访问数据库,首先通过中间件, 然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图5.1使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操 作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结 果通过 Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过 加密算法进行加密后在网络上传输, 在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本7系统采用的正是这样的三层结构的数据库访问模式在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。 其模型如图5.2所示。因为”中间层”可以进行对访问的控制并协同数据库的更新, 并且可以使用一个易用的 高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下, 三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JAVA使用程序和数据库的沟通桥梁。它提供了三项服务功能:一、和数据库 建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC 要和数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName() 即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(Java VirtualL Machi ne)中,本系统中利用 java. la ng. Class 类内的 forName ()静态函数依 据指定的类名称,将 JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用8java. sal. DriverManager类所提供的getConnection ()静态函数,取得和数据库间的连接对 象。此连接对象的类类型为java. sal. Connection,必须通过它才能将SQL指令传递给数据库, 而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Stateme nt对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java. sql. Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取 SQL执行结果的管道,以便通过它将表格数据从数据库中取 出。每个Statement对象只能产生一个 ResultSet对象。数据库连接如图5.3所示:图5.3数据库的连接处理数据库的连接处理具体实现如下:/建立JDBCODBC桥sun .jdbc.odbc.JdbcOdbcDriver;/桥建立不成功时的错误处理9catch(ClassNotF oun dExcepti on eve nt)/建立和数据库的连接,并发送 SQL查询语句,将结果保存到rs对象中Con二建立JDBC ODBC桥Sql =SQL查询语句执行查询Rs=返回结果/ SQL出错处理catch(SQLException e1)2.7 SQL SERVER2000 数据库SQLSERVER2000名字的来历SQLSERVER2000最初的开发者的意图是用 SQLSERVER2000和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:SQLSERVER2000并没有他们需要的那么快和灵活。这导致了一个使用几乎和SQLSERVER2000 一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个 API被设计成允许为用于SQLSERVER2000而写的第三方代码更容易移植到 SQLSERVER2000。SQLSERVER2000 的概述SQLSERVER2000是一个关系型数据库管理系统,开发者为美国Microsoft公司。目前SQLSERVER2000被广泛地使用在In ternet上的中小型网站中。由于其体积小、速度快、总 体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选 择了 SQLSERVER2000作为网站数据库。SQLSERVER2000 的特性1. 使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性2. 支持Mac OS、Windows等多种操作系统3为多种编程语言提供了 API。这些编程语言包括 C、C+、Eiffel、Java Perl、Python、Ruby 和Tcl等。4. 支持多线程,充分利用CPU资源5. 优化的SQL查询算法,有效地提高查询速度6. 既能够作为一个单独的使用程序使用在客户端服务器网络环境中,也能够作为一个库而嵌10入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5 ,日文的Shift_JIS等都可以用作数据表名和数据列名7提供TCP/IP、ODBC和JDBC等多种数据库连接途径8提供用于管理、检查、优化数据库操作的管理工具9.可以处理拥有上千万条记录的大型数据库SQLSERVER2000 的使用和其他的大型数据库例如 Oracle、DB2等相比,SQLSERVER2000自有它的不足之处, 如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和 中小型企业来说,SQLSERVER2000提供的功能已经绰绰有余。SQLSERVER2000 管理可以使用命令行工具管理 SQLSERVER2000数据库,也可以使用sqlserver自带的企业 管理器来进行管理,界面友好,操作简单。SQLSERVER2000 存储弓 I擎master SQLSERVER2000的默认数据库,最为常用。拥有较高的插入,查询速度, 但不支持事务InnoDB事务型数据库的首选引擎,支持 ACID事务,支持行级锁定BDB源自Berkeley DB,事务型数据 库的另一种选择,支持COMMI和ROLLBACK等其他事务特性Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在SQLSERVER2000重新启动时丢失Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差Federated将不同的SQLSERVER2000服务器联合起来,逻辑上组成一个完整的数据库。 非 常适合分布式使用Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全 性。适合数据量大,安全和性能要求高的使用CSV逻辑上由逗号分割数据的存储引擎11BlackHole黑洞引擎,写入的任何数据都会消失另外,SQLSERVER2000的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写 自己的存储引擎。SQLSERVER2000最常见的使用架构单点(Single),适合小规模使用复制(Replicatio n),适合中小规模使用集群(Cluster),适合大规模使用2.8 BS模式和C/S模式的比较分析C/S模式主要由客户使用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户使用程序是系统中用户和数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同 资源时,对这些资源进行最优化管理。中间件负责联结客户使用程序和服务器管理程序,协 同完成一个作业,以满足用户查询管理数据的要求。B/S模式是一种以 Web技术为基础的新型的 MIS系统平台模式。把传统 C/S模式中的 服务器部分分解为一个数据服务器和一个或多个使用服务器 (Web服务器),从而构成一个三 层结构的客户服务器体系。第一层客户机是用户和整个系统的接口。客户的使用程序精简到一个通用的浏览器软件,如Netscape Navigator;微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。 网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的 Web服务器。第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取, Web服务器还需和数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于 C/S模式,负责协调不同的 Web服务器发出的SQL请求, 管理数据库。B/S模式的优势首先它简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户使用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间和内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议, 他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至和会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化 了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户使用程序 了,只需把所有的功能都实现在 Web服务器上,并就不同的功能为各个组别的用户设置权 限就可以了。各个用户通过 HTTP请求在权限范围内调用 Web服务器上不同处理程序,从 而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境, 对企业内部运作机制的 更新和调整也变得逐渐频繁。相对于 C/S, B/S的维护具有更大的灵活性。当形势变化时, 它无须再为每一个现有的客户使用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个 公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。再次,它使用户的操作变得更简单。对于 C/S模式,客户使用程序有自己特定的规格, 使用者需要接受专门培训。而采用 B/S模式时,客户端只是一个简单易用的浏览器软件。无 论是决策层还是操作层的人员都无需培训, 就可以直接使用。B/S模式的这种特性,还使MIS 系统维护的限制因素更少。最后,B/S特别适用于网上信息发布,使得传统的 MIS的功能有所扩展。这是C/S所无 法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面 文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物 力。鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷 纷推出自己的In ternet方案,基于 Web的财务系统、基于 Web的ERP。一些企业已经领先 一步开始使用它,并且收到了一定的成效。B/S模式的新颖和流行,和在某些方面相对于C/S的巨大改进,使B/S成了 MIS系统平 台的首选。2.9JDBC 介绍JDBC (Java Data Base Connectivityjava数据库连接)是一种用于执行 SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,据此可以构建更高级的工具和接口, 使数据库开发人员能够用纯Java API编写数据库使用程序,同时,JDBC也是个商标名有了 JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了 JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序, 或为访问Informix数据库又编写另一个程序等等,程序员只需用 JDBC API写一个程序就够 了,它可向相应数据库发送 SQL调用。同时,将Java语言和JDBC结合起来使程序员不必 为不同的平台编写不同的使用程序, 只须写一遍程序就可以让它在任何平台上运行,这也是Java语言编写一次,处处运行”的优势。Java数据库连接体系结构是用于 Java使用程序连接数据库的标准方法。JDBC对Java 程序员而言是API,对实现和数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现和数据库的连接提供 了标准方法。JDBC使用已有的SQL标准并支持和其它数据库连接标准,如 ODBC之间的 桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的 接口。Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数 据库使用程序的杰出语言。所需要的只是Java使用程序和各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了 Java的功能。例如,用 Java和JDBC API可以发布含有 applet的网 页,而该applet使用的信息可能来自远程数据库企业也可以用 JDBC通过Intranet将所有 职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、Macintosh和 UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用 Java编程语言,对从Java 中便捷地访问数据库的要求也在日益增加。MIS管理员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。企 业可继续使用它们安装好的数据库, 并能便捷地存取信息,即使这些信息是储存在不同数据 库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍使 用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的使用程序。 对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。简单地说,JDBC可做三件事:和数据库建立连接、发送SQL语句并处理结果。下列代码段给出了以上三步的基本示例:Connection con = DriverManager.getConnection(jdbc: odbc: wombat, login,14password);Statement stmt = con.createStatement);ResultSet rs = stmt.executeQuery( SELECT a, b, c FROM Tablel); while (rs.next ()int x = rs.getInt (a);String s = rs.getString (b);float f = rs.getFloat (c);上述代码对基于JDBC的数据库访问做了经典的总结3概要设计3.1系统总体构概要设计为了能把系统的结构介绍得明确,我们采用示意图来加以辅助说明网络论坛系统会员管理员界面管理用户管理帖子发布模公型告修 改 资 料删 除 帖 子修 板帖子设置总体构成示意图子修 改 密 码回复帖子数据流图3.2.管1M丄热带鱼论坛系统 P用户图3-2整体数据流图调出的帖子信息维护指令修改或 删除信息管理员维护存入数据库 修户后信息图3-5会员维护系统数据流图调出3.2.2系统设计E-R图为了让大家能对各个实体之间的对应关系有所了解,画实体关系图如下:用户界面3.3数据库设计论坛中所有的主题,用户的注册信息,回复的帖子等等,都是通过数据的形式来进行管 理和维护,他不同于实体的文字交流。数据库就形如一个仓库,他是用来存放数据的地方。 我们在前台进行的每一步,都需要调用数据库中的数据。数据库设计的合理和否,安全性,稳定性这些方面都直接影响着论坛的运作。一个好的 数据库设计方案,往往能够让网站的效率事半功倍。所以在对数据库的设计要格外的悉心, 考虑的要格外周全。确定数据库的物理结构,在关系数据库中主要指存取和存储结构。如果物理设计结果满 足原设计要求,即可进行实施,否则,就需要重新设计和修改物理结构,有时甚至要返回逻 辑设计阶段修改数据模型。数据库系统是多用户共享的系统,对于同一关系要建立多条存取路径才能满足多用户 的多种使用要求。现代技术的飞速发展是数据库存储变的简单、方便、易行。无论是索引法还是聚簌法都可以使物理设计顺利实现。17在数据库中建立表。本系统共建立了 5个数据表,具体数据表的情况如下:(1 )用户表。该表主要保存论坛管理员和用户的主要信息。该数据表的表结构如表所示:Hi设汁表=用户表”,检置是Fe.j表pb6中表气(LOCAL)上(2)昌坛板块信息是450允许空保存T-E 1气1希设计表赵论坛芒(T 位置是论坛板块块中、(LOCAL)-上(3)论坛帖子信息是。千,益置是tfnejspbbS*中、* (LOCAL)上列名I 数据类型怪度I允许咅该数据是用来记录发帖子的相关信息,该数据表的结构如表所示版块皿int4回崑 idmt4/:表3-8论坛帖子信息表貼子的容tftjct16V境表日期datetime3V占子作者varchir502关数据,该数据表的结构如表所示504(4)记录(5)向所在线用户息相 贴子长度 显示签名 贴子團片 TF地址 回寰用户 。复时间vaLrcharintv ar charv ar ch ar v ar char datetime500有区发布公告。该数据表的结构如表所示r,描述10仃表3-10公告表18# h 百 &厶丄hM1U i 出14详细设计及实现本论坛系统的设计实现主要分两个方面:前台页面的的设计实现和后台管理界面的设计 和实现。4.1前台页面的设计和实现4.1.1首页的设计实现通过Dreamweaver这个网页制作工具可以简单方便的画出前台页面(如下图)。在首页设置用户登录按钮、注册按钮、管理员登录按钮以及其他版块的链接等。没有登录的用户不能进出其他版块。在JSP和Servlet中这是怎么做到的呢?我们通过过滤器的使用来实现我 们的目的Ar、2用尸名審码cw维册】现在时间20:28茁月15日星期一搜素丨首贡O 论坛金告:w4e54:35w345 (论走列表新窗主题数量貼子数星最后回复版主dfsdfs33Hit司:2010-03-15 00:00 作看:adiTii nnutrljw戒术nullnull时间:2010-03-15 20:18 作者I uier9uierlC3afsdfnullnull眄|司:2010-03-15 19:24 作若:无userl在SAa -目前有ui位奈.员在勰r:tfain詩I afsdf 确认版权所有图4-1论坛首页图首先我们建个名为GLQ勺类,代码如下:import java.io .10 Exceptio n;/ 部分代码省略。import javax.servlet.http.HttpSessio n;public classGLQ implements Filter public GLQ() public void destroy。public void doFilter(ServletRequest req, ServletResponse res,FilterChai n cha in) throws IOExcepti on, ServletExcepti on HttpServletRequest request=(HttpServletRequest)req;HttpServletResp onse resp on se=(HttpServletResp on se)res;HttpSessi on sessi on=request.getSessi on();String log in=(Stri ng)sessi on. getAttribute(user name);if (log in= null)resp on se.se ndRedirect(/ni/i ndex.htm);chai n.doFilter(req, res); public void init(FilterConfig arg0) throws ServletException 因为没有登录的用户SESSIO是空的,所以未登录的用户是无法登录我们想要过滤的页 面的。光建过滤器类并不能实现页面的过滤我们还要在Myeclipse的.xml文件中加入以下代码,也就是把我们要过滤的网页放到过滤器中,代码如下:uservfilter-classdb.GLQv/filter-class 部分代码省略;vfilter-mapp in guservurl-patter n/br.jspv/url-patter n v/filter-mapp ing4.1.2用户登录界面的制作当用户点电击“登录”时,页面会链接到logi n.jsp也就是我们的登录窗口本页面设计项目如图所示:图4-2用户登录图我们把三个文本域name,password,yzm的值也就是用户提交的信息传给 Servlet让它来完成和数据库的信息交流。这种模式就是在前面说过的MVC设计模式。尽量减少*.jsp中的java代码,最好没有。由于本人技术有限还不能完全实现MVC勺设计模式,但是做为java软件开发中最广泛的模式设计指导思想,MV(无疑是首屈一指的。我会在今后的学习中不断努力,使自己的程序设计更科学合理。接下来我们必须在Servlet中建立一个Checkl.java来处理login.jsp 传递过来的值。代码如下(其中部分无关紧要的代码已省略):public class Check1 exte nds HttpServlet public void doGet(HttpServletRequest request, HttpServletResp onse resp on se)throws ServletExcepti on, I OExcepti on doPost(request, resp on se);public void doPost(HttpServletRequest request, HttpServletResp onse resp on se)throws ServletExcepti on, I OExcepti on request.setCharacterE ncod in g(gb2312);Stri ng yzm = request.getParameter(yzm);Stri ng yzm1 = (Stri ng) request.getSessio n().getAttribute(s62);if (yzm.equals(yzm1) Qing q = new Qin g();q.setUsername(request.getParameter(” name);q.setPassword(request.getParameter(password);int a = new DB().chk(q);if (a 0) HttpSession session1 = request.getSession();21session 1.setAttribute(username, q.getUsername();resp on se.se ndRedirect(/ni/che nggo ng.jsp); else resp on se.se ndRedirect(/ni/log in 1.jsp); elseresp on se.se ndRedirect(/ni/yan zhe ng.jsp);那么,使用广泛的验证码又是怎样实现的呢?首先建一个ImageEnsure类,它的功能是用字符随机生成验证码图片,我们依据图片来填写验证码。然后再建立一个image.jsp页面 用来输出要填的验证码,把它存到SESSION中,用来在Servlet对用户输入的验证码进行校 对,验证码就这样实现了。在验证码输入正确后servlet会调用DB类中的chk()方法以验证数据库中是否存在该用 户。DB类是我们在连接SQLSERVER20C数据库时建的连接池中的一个类。我们通过它把对 SQLSERVER20数据库的操作封装起来,提高系统的安全性。连接池的实现在此就不赘述了。 这里只简略地给出chk()方法的代码,也就是登录的核心代码: public int chk(Qi ng t)int a=0;try stmt=c onn .prepareStateme nt(select password from user name where n ame=?);stmt.setString(1, t.getUsername();rs=stmt.executeQue
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!