毕业设计(论文)-基于java EE技术的军事交流平台的设计与实现.docx_第1页
毕业设计(论文)-基于java EE技术的军事交流平台的设计与实现.docx_第2页
毕业设计(论文)-基于java EE技术的军事交流平台的设计与实现.docx_第3页
毕业设计(论文)-基于java EE技术的军事交流平台的设计与实现.docx_第4页
毕业设计(论文)-基于java EE技术的军事交流平台的设计与实现.docx_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

中北大学2013届毕业设计说明书毕业设计说明书基于java EE技术的军事交流平台的设计与实现班 级: 学号: 软件学院姓 名: 软件工程学 院: 专 业: 指导教师: 2013年 6 月摘要本系统是采用JAVAEE+ MySQL技术开发设计的军事论坛网站系统,基于B/S的设计模式,结合MyEclipse以及AJAX等的页面显示技术,保证了代码的安全,同时简化JAVAEE页面的编码。系统实现了论坛信息的动态发布,使得对信息的管理更加及时、高效,提高了工作效率。数据库采用了MySQL数据库,操作简单、方便而且廉价、易维护性高。软件采用的是B/S的设计结构,主要分为前台显示和后台管理两部分。前台是用户注册、密码修改、登录、浏览帖子、回复帖子、根据关键字搜索帖子等;后台主要实现对帖子的查看、对非法的帖子进行删除,对回复的帖子进行查看、删除等管理操作以及公告的发布、添加、删除、修改等操作。本文通过对军事论坛网站系统设计到实现流程的描述,目的是让人们了解论坛网站的结构以及系统从设计到实现中各个部分的解决方案,让大家了解JAVA网络编程广泛采用的设计模式。关键词:论坛系统,JAVAEE,公告全套设计加扣 3012250582AbstractThis system uses the military forum SSH site system JAVAEE + MySQL technology development and design, based on the design of the B / S mode, and the Myeclipse, and AJAX page display technology to ensure the security of the code, while simplify JAVAEE page coding. System to achieve a dynamic forum information released, more timely management information, and efficient, improve the work efficiency. Database using MySQL database, the operation is simple, convenient and cheap and easy to maintain. The software is the design of the B / S structure, divided into two parts of the foreground and background management. Foreground user registration, password changes, log in, browse the post, reply posts, based on keyword search posts, etc.; background posts View, delete illegal posts View Post reply delete management operations as well as the release of the announcement, add, delete, modify, and other operations.In this paper the Military Forum SSH site system design to achieve a description of the process, the purpose is to make people understand the military forum site structure and the system solutions from design to implementation, to let everyone know JAVA Network Programming widely used design patterns.Keywords: forum system , JAVAEE, announcement目 录1 引言11.1 技术可行性21.2 操作可行性21.3 分析结论32 需求分析42.1 系统的功能需求42.1.1 会员功能42.1.2 搜索功能42.1.3 版主功能42.1.4 论坛展区功能42.1.5 后台数据维护功能42.2 JAVAEE技术简介52.3 JAVAEE工作原理52.4 JAVAEE体系结构52.5 JAVAEE的特点62.6 系统数据库连接72.7 MySQL数据库简介112.8 B/S模式与C/S模式的比较分析112.9 JDBC介绍133 概要设计153.1 系统总体构概要设计153.2 数据模型163.2.1 数据流图163.2.2 系统设计E-R图183.3 数据库设计184 详细设计及实现204.1 前台页面的设计与实现204.1.1 首页的设计实现204.1.2 用户登录界面的制作214.1.3 用户注册界面的制作244.1.4 用户分区界面的制作274.2 后台页面的设计与实现304.2.1 管理员登录界面的设计304.2.2 管理员管理的设计与实现305 测试395.1 测试的任务及目标395.1.1 测试的任务395.1.2 测试的目标395.2 测试方案395.3 测试用例395.3.1 会员登录测试395.3.2 发帖测试405.3.3管理员登录测试416 结论43参考文献44致 谢46第II页 共II页1 引言网站论坛是一个以文化交流,学习知识,娱乐游戏为目的的,借助网络传输媒体和SSH共享实现的应用系统。所以定位要准确,什么样的目的就要体现什么样的特色!本网站是以军事知识交流为主要的目的,所以在服务和内容方面要从知识交流这个方面考虑,体现互联网的优势,消息的实效快,传播的速度广!为了能更好的服务于人,本次毕业设计采用MVC设计模式:Model + View + Controller的设计模式,以软件工程的思想从全局把握开发流程,增加了系统的可靠性和可维护性,从而降低了投入。伴随着网络的出现,网页逐渐融入人们的生活。随着Internet的进一步发展,建站的技术日新月异。 就现在开发SSH技术来说,主要集中分为三大类:基于C/S结构的应用程序开发;结合C/S结构和SSH技术的复合应用程序;基于B/S结构的动态网页技术。C/S结构系统:是传统开发模式,一般以数据库和客户端的两层结构实现,也有加入中间件的三层或多层结构,在SSH早期是标准的系统模式,但随着计算机技术的发展和网络的发展, C/S结构的不足越发明显,B/S结构系统逐渐成为了时尚,而该结构的实现技术中最流行的就是.NET和JAVAEE,而从安全性的角度将JAVAEE又更胜一筹,因此采用JAVAEE技术开发该军事交流平台系统。本系统能够让人们更加方便的在网上进行军事知识交流,从而促进军事文化知识的传播以及各类军事信息技术的传播,同时达到人们网上交流、学习的目的。开发本系统用到了如下相关技术:(1)JSP技术JSP (Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的SSH页面提供了一个简捷而快速的方法。(2)JSTL+EL技术EL 全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言。JSTL是由JCP(Java Community Process)所指定的标准规格,它主要提供给Java SSH开发人员一个标准通用的标签函数库。SSH程序开发人员能够利用JSTL 和EL来开发SSH程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序可读性、维护性和方便性(3)AJAX技术Ajax(Asynchronous Java Script and XML)是结合了XHTML技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的SSH应用,并打破了使用页面重载的惯例。Ajax是使用客户端脚本与SSH服务器交换数据的SSH应用开发方法。(4)MySQL数据库系统采用Microsoft公司的MySQL数据库,该数据库操作简单,可靠性较高,完全可以满足中小型网站的建设需求。1.1 技术可行性技术上的可行性主要是根据系统分析得到的需要开发的软件,来分析利用现有技术是否能实现待开发的软件。本系统需要连接到互联网上,运用JAVAEE + servlet技术开发,方便快捷,开发所需要的软件工具都是简单易操作的且开源,安全,可维护性强。如下所示:SSH服务器:Apache-Tomcat-6.0.1版本.开发技术:JAVAEE + MySQL技术.开发工具:eclipse企业开发版本,数据库使用MySQL数据库:MySQL服务器操作系统:由于JAVA语言的跨平台性,开发过程采用Windows 2000 Professional操作系统,也可以采用Windows XP操作系统。现有的硬件和软件在功能上是可以满足系统开发的需求,开发所需要的软件工具也都是简单易操作的,开发人员的技术水平完全可以胜任系统的开发。所以该系统在技术上是可行的。1.2 操作可行性该系统具有易用性,B/S结构使得客户端不必安装任何软件,只要有浏览器并连接到Internet或企业内部的Intranet上即可使用,免除了非专业人员操作技术上的困难。服务器操作系统采用Windows XP,SSH服务器为Apache-Tomcat-6.0.1版本,数据库为MySQL。该系统具有友好亲切的使用界面,功能丰富并且使用简单,一般用户无需培训即可使用,对运行的平台和机器配置要求不高,便于配置和应用。1.3 分析结论经以上分析,说明该系统在开发上是可行的, 在技术、操作上都有可行性,可以进行开发。2 需求分析2.1 系统的功能需求军事论坛具有标准论坛系统所具有的分类管理,注册会员可发表文章,浏览文章,文章回复,查询文章,后台管理维护界面,真正实现节约资源、提高效率、业务处理的同时真正实现军事论坛的功能作用。2.1.1 会员功能为了使论坛有良好的秩序,在身份确定方面一定要作准确无误。在进入论坛之前每一个用户都要在网站注册一个会员的账号。当然,网站在用户资料的保密方面承诺不外泄。注册号账号之后,用户就可以用账号登录网站,进行发表文章、回复帖子等,对于没有注册的用户是不能回复帖子的,更不能发帖子。2.1.2 搜索功能用户可以根据自己的实际需求,搜索论坛里的全部文章。可按标题、类别以及关键字来查找各种需要的信息。2.1.3 版主功能版主功能主要是对帖子的管理,其中包括删除帖子、回复帖子。删除帖子主要是有的帖子有不健康信息,对于这些信息给予删除。接收到需要回复的帖子时,提出意见、发表见解,给予适当的回复。2.1.4 论坛展区功能论坛展区是主要是各类信息的主题,其中包括用户自拟的主题,这样用户就可以用帖子进行交流。其中包括各种帖图、军事养殖技术、时事等。在经过管理员的筛选,保留下来提供给大家的。在这里可以供用户浏览帖子,发送帖子以及对别人的帖子给予自己的意见,即回复帖子。2.1.5 后台数据维护功能后台管理主要是对用户的信息管理,其中包括用户管理、帖子管理、修改密码处理。主要是帖子管理,对用户发表的不健康信息给予删除,也包括对不同分区的信息管理,通过对数据库的更新来修改用户密码和发布公告。综合上述分析进行概要设计。2.2 JAVAEE技术简介JAVAEE是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的SSH开发技术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JAVAEE标记(Tag),构成JAVAEE网页(*.javaEE)。JAVAEE技术为创建显示动态生成内容的SSH页面提供了简便的方法。JAVAEE作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用JAVAEE作为网络应用程序的开发工具,而在国内,尽管JAVAEE还不是主流开发技术,但是由于JAVAEE的强大优势,许多网站都已经准备转向JAVAEE,利用JAVAEE来开发动态网站。 2.3 JAVAEE工作原理JAVAEE是面向服务器的,因此支持任何浏览器。当SSH服务器和JAVAEE引擎遇到访问JAVAEE网页的请求时,JAVAEE引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JAVAEE引擎。JAVAEE引擎将响应对象传递给JAVAEE页面,根据JAVAEE页面的HTML格式完成数据编排,最后SSH服务器和JAVAEE引擎将格式化后的JAVAEE页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器SSH服务器后台数据库的三层架构模式。因为JAVAEE所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。2.4 JAVAEE体系结构JAVAEE网站开发标准给出了两种使用JAVAEE的技术,可以归纳为两种模式。模式一:JAVAEE + JavaBeans技术在这种模式中,JAVAEE页面独自响应请求并将处理结果返回给客户。Bean处理所有数据访问,JAVAEE实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以该模式仅可用于小型应用,不能够满足大型应用的需要。模式二:JAVAEE + Servlet + JavaBeans技术Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JAVAEE中使用的Beans组件或对象,并判断应将请求传递给哪个JAVAEE等,JAVAEE对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。2.5 JAVAEE的特点1. 简化的页面生成技术JAVAEE页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。2. 与Java平台有机集成JAVAEE技术是Java 平台的重要组成部分,JAVAEE使用Java语言作为它的脚本语言。在JAVAEE页面中可以使用几乎所有的Java组件和Java API,这就能充分发挥出Java语言的强大功能。使用JAVAEE技术可以创建具有高度可伸缩性和可靠性的SSH应用程序。3. 硬件平台和服务器无关性JAVAEE作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(Write Once,Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台及Ssh服务器,这种与服务器硬件和操作系统平台的无关性是JAVAEE相对于其它动态网页技术最大的一个优点。4. 功能可扩展性如同Microsoft的JAVAEE技术可以通过ActiveX/COM组件来扩展功能一样,JAVAEE可以通过JavaBean和EJB(Enterprise JavaBean)以及自定义的标记来扩展功能。JAVAEE可以通过JDBC,与诸如Oracle、SQL Server这样的大型关系数据库进行连接。JAVAEE提供了一些隐含对象。这些隐含对象在JAVAEE页面中可以直接引用,而不必首先声明。利用JAVAEE提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用户在HTML表单中提交的信息。2.6 系统数据库连接JDBC技术是Java DataBase Connectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(Application Programming Interface)。它由一组用Java语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBC API可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQL Server。不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事:1. 同一个数据库建立连接;2. 向数据库建立连接;3. 处理数据库返回的结果。JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户界面更友好的API或开发工具基础。很多可视化的Java开发工具,如Visual Age For Java、Visual Caf、J+等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。数据库访问的三层结构如图2.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图2.1 使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过SSH服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的“中间层”,而“中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回“中间层”,然后“中间层”将它们返回用户。其模型如图2.2所示。图2.2 JDBC的三层模型因为“中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(Java Virtual Machine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet 对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet 对象。数据库连接如图2.3所示:图2.3 数据库的连接处理数据库的连接处理具体实现如下:/建立JDBCODBC桥sun.jdbc.odbc.JdbcOdbcDriver;/桥建立不成功时的错误处理catch(ClassNotFoundException event)/建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中Con=建立JDBCODBC桥Sql=SQL查询语句执行查询Rs=返回结果/SQL出错处理 catch(SQLException e1)2.7 MySQL数据库简介数据库采用了MySQL数据库,MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。结合了开放源码价值取向、方法和成功的商业模型。MySQL是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 而访问数据库就要用到SQL语言。SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。SQL语言使得存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询信息。SQL语言是任何数据库中的通用语言。它的功能包括:创建数据库对象,操纵对象,往数据库表中填充数据,在数据库表中更新已存在的数据,删除数据,执行数据库查询,控制数据库访问权限和数据库总体管理2.8 B/S模式与C/S模式的比较分析C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。 B/S模式是一种以SSH技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Ssh服务器),从而构成一个三层结构的客户服务器体系。 第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如NetscapeNavigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Ssh服务器。 第二层Ssh服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Ssh服务器还需与数据库服务器协同完成这一处理工作。 第三层数据库服务器的任务类似于C/S模式,负责协调不同的Ssh服务器发出的SQL请求,管理数据库。 B/S模式的优势 首先它简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在SSH服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用SSH服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对SSH服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。 再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使MIS系统维护的限制因素更少。 最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。 鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于SSH的财务系统、基于SSH的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。 B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选。2.9 JDBC介绍JDBC(Java Data Base Connectivity ,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用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 可为外部客户提供获取信息更新的更好方法。3 概要设计3.1 系统总体构概要设计为了能把系统的结构介绍得明确,我们采用示意图来加以辅助说明。军事论坛系统管理员界面会员浏览帖子回复帖子管理用户管理帖子修改密码删除用户发布公告修改资料删除帖子修改帖子板块设置删除回复图3.1 系统总体构成示意图3.2 数据模型3.2.1 数据流图管理用户帖子p注册会员浏览帖子发帖子回帖子会员普通用户反馈信息管理员军事论坛系统图3.2 整体数据流图登录会员资料用户名、密码用户存入数据库注册登录论坛 图3.3 会员登陆系统的数据流图调出的帖子信息息显示内容回帖发帖会员帖子内容论坛展区模块图3.4发帖的数据流图修改或删除信息管理员维护存入数据库调出用户界面维护指令修改后信息用户信息图3.5 会员维护系统数据流图3.2.2 系统设计E-R图为了让大家能对各个实体之间的对应关系有所了解,画实体关系图如下:图3.6 系统设计E-R图3.3 数据库设计军事论坛中所有的主题,用户的注册信息,回复的帖子等等,都是通过数据的形式来进行管理和维护,他不同于实体的文字交流。数据库就形如一个仓库,他是用来存放数据的地方。我们在前台进行的每一步,都需要调用数据库中的数据。数据库设计的合理与否,安全性,稳定性这些方面都直接影响着军事论坛的运作。一个好的数据库设计方案,往往能够让网站的效率事半功倍。所以在对数据库的设计要格外的悉心,考虑的要格外周全。确定数据库的物理结构,在关系数据库中主要指存取和存储结构。如果物理设计结果满足原设计要求,即可进行实施,否则,就需要重新设计和修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。数据库系统是多用户共享的系统,对于同一关系要建立多条存取路径才能满足多用户的多种应用要求。现代技术的飞速发展是数据库存储变的简单、方便、易行。无论是索引法还是聚簌法都可以使物理设计顺利实现。4 详细设计及实现本军事论坛系统的设计实现主要分两个方面:前台页面的的设计实现和后台管理界面的设计和实现。4.1 前台页面的设计与实现4.1.1 首页的设计实现通过Dreamweaver这个网页制作工具可以简单方便地制作前台页面(如下图4.1)。在首页设置用户登录按钮、注册按钮、管理员登录按钮以及与其他版块的链接等。没有登录的用户不能进出其他版块。在JAVAEE与Servlet中这是怎么做到的呢?我们通过过滤器的应用来实现我们的目的。图4.1 论坛首页图首先我们建个名为GLQ的类,代码如下:import java.io.IOException;/部分代码省略。import javax.servlet.http.HttpSession;public class GLQ implements Filter public GLQ() public void destroy() public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException HttpServletRequest request=(HttpServletRequest)req;HttpServletResponse response=(HttpServletResponse)res;HttpSession session=request.getSession();String login=(String)session.getAttribute(username);if(login=null)response.sendRedirect(/ni/index.htm);chain.doFilter(req, res); public void init(FilterConfig arg0) throws ServletException 因为没有登录的用户SESSION是空的,所以未登录的用户是无法登录我们想要过滤的页面的。光建过滤器类并不能实现页面的过滤我们还要在MyEclipse的.xml文件中加入以下代码,也就是把我们要过滤的网页放到过滤器中,代码如下:user db.GLQ /部分代码省略; user /br.javaEE 4.1.2 用户登录界面的制作 当用户点电击“登录”时,页面会链接到login.javaEE也就是我们的登录窗口。本页面设计项目如图4.2所示:图4.2 用户登录图我们把三个文本域name,password,yzm的值也就是用户提交的信息传给Servlet让它来完成与数据库的信息交流。这种模式就是在前面说过的MVC设计模式。尽量减少*.javaEE中的java代码,最好没有。由于本人能力有限还不能完全实现MVC的设计模式,但是作为java软件开发中最广泛的模式设计指导思想,MVC无疑是首屈一指的。我会在今后的学习中不断努力,使自己的程序设计更科学合理。接下来我们必须在Servlet中建立一个Check1.java来处理login.javaEE传递过来的值。代码如下(其中部分无关紧要的代码已省略):public class Check1 extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(gb2312);String yzm = request.getParameter(yzm);String yzm1 = (String) request.getSession().getAttribute(s62);if (yzm.equals(yzm1) Qing q = new Qing();q.setUsername(request.getParameter(name);q.setPassword(request.getParameter(password);int a = new DB().chk(q);if (a 0) HttpSession session1 = request.getSession();session1.setAttribute(username, q.getUsername();response.sendRedirect(/ni/chenggong.javaEE); else response.sendRedirect(/ni/login1.javaEE); else response.sendRedirect(/ni/yanzheng.javaEE);那么,应用广泛的验证码又是怎样实现的呢?首先建一个ImageEnsure类,它的功能是用字符随机生成验证码图片,我们依据图片来填写验证码。然后再建立一个image.javaEE页面用来输出要填的验证码,把它存到SESSION中,用来在Servlet对用户输入的验证码进行校对,验证码就这样实现了。 在验证码输入正确后servlet会调用DB类中的chk()方法以验证数据库中是否存在该用户。DB类是我们在连接MYSQL数据库时建的连接池中的一个类。我们通过它把对MYSQL数据库的操作封装起来,提高系统的安全性。连接池的实现在此就不赘述了。这里只简略地给出chk()方法的代码,也就是登录的核心代码:public int chk(Qing t) int a=0;try stmt=conn.prepareStatement(select password from username where name=?);stmt.setString(1, t.getUsername();rs=stmt.executeQuery();if(rs.next()String rp=rs.getString(password);if (rp.equals(t.getPassword()a=1; catch (SQLException e) e.printStackTrace();return a;我们对用户表username进行查询,如果有就返回1,没有就返回0。如果返回的是1,那么Servlet会为用户设定个SESSION,这样用户就可以通过过滤器进入其他界面了。没有注册的用户是不能登录的,下面讲如何实现注册功能。4.1.3 用户注册界面的制作用户注册界面的制作技术与登录界面的技术很相似,不同的就是这里增加了对脚本语言的使用以及AJAX技术的应用。为了能让用户注册符合我们的要求以便于管理,我们采用了脚本语言(这里主要是JAVA脚本即:javaScript)。在用户填写的时候如果该用户名已经有人注册了,那么在光标焦点离开用户名文本框的时候后,在右侧的文本框中会显示“该用户已经存在,请重新选择用户”,如果可用,则显示“该用户名可用”,为了使大家明了而又不让大家对冗长的代码厌烦,只给大家看部分关键的代码:funct

温馨提示

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

评论

0/150

提交评论