毕业论文-反垃圾邮件管理系统_第1页
毕业论文-反垃圾邮件管理系统_第2页
毕业论文-反垃圾邮件管理系统_第3页
毕业论文-反垃圾邮件管理系统_第4页
毕业论文-反垃圾邮件管理系统_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、 太原理工大学毕业设计(论文)用纸 引言1.1 选题背景随着Internet的普及,电子邮件作为一个主流的应用也日益得到了更多的使用。但是随之而来的垃圾邮件也越来越猖獗。所谓垃圾邮件主要有两类,一类是名目繁多的商业广告,另一类是非法团体为其政治、经济等目的而进行的“网络宣传”。普通意义上的垃圾邮件是指未经主动请求的大量的电子邮件,SPAM, UBE(Unsolicited Bulk Email), UCE (Unsolicited Commercial Email) 。其中,垃圾邮件还包括:收件人事先没有提出要求或者同意接收的广告、电子刊物、各种形式的宣传品等宣传性的电子邮件;收件人无法拒收的

2、电子邮件;隐藏发件人身份、地址、标题等信息的电子邮件;含有虚假的信息源、发件人、路由等信息的电子邮件。垃圾邮件的特点有:发件人地址随机变化;邮件主题随机变化;伪造邮件头干扰信息;信体内容随机变化;正文以图片方式显示,难以识别;垃圾邮件在不同的时段、范围内的传播内容不一样等等。垃圾邮件的另外一个特征是它被大量的发送,被数百上千万的发送出去,这就占用了宝贵的通信通路,影响人们的正常通信。1.2 课题研究意义中国互联网络信息中心2003年7月公布的中国互联网络发展状况统计报告显示,中国网民平均每周收到16.1封电子邮件,其中垃圾邮件占据了8.9封,垃圾邮件数量超过了正常邮件数量,并有进一步增长的趋势

3、1。如图1.1所示: 图1.1垃圾邮件增长趋势统计图图1.1 垃圾邮件增长趋势统计之所以造成垃圾邮件泛滥,是因为近几年来宽带网络的快速发展、网络通信成本的不断下降以及硬件性能的提高并且成本不断降低给垃圾邮件提供了很好的环境;电子邮件的易伪造性也是垃圾邮件泛滥的原因之一;还有现在对于垃圾邮件,国家缺乏法律和规范的约束。虽然人们在技术和法律方面都进行不断的努力,垃圾邮件已经得到了一定的控制,但是,在国内,由于技术和立法还没有达到一个足够的程度,导致国内已经日益成为世界垃圾邮件新的源头。垃圾邮件的泛滥会造成很多危害,不仅影响国家的政治稳定、用户的正常工作学习,还会影响网络的安全性、稳定性、高效性;占

4、用网络带宽和存储空间。所以对于垃圾邮件的防范及过滤技术的研究很有意义。1.3 可行性研究该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性等方面进行分析。1.3.1 经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。1.3.2 技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的

5、需求等。本网站用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。1.3.3 运行可行性运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+SQLSERVER 200

6、0体系,已无技术上的问题。1.3.4 时间可行性从时间上看,在两个月的时间里学习相关知识,并开发系统,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。1.3.5 法律可行性 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何网站,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。2 相关技术简介2.1 JAVA技术简介Java是一种可以撰写跨 HYPERLINK /view/58664.htm t _blank 平台 HYPERLINK /view/220910.htm t _blank 应用 HYPERLINK /subview/37/6030295.h

7、tm t _blank 软件的面向对象的 HYPERLINK /subview/17674/17674.htm t _blank 程序 HYPERLINK /view/14417.htm t _blank 设计 HYPERLINK /subview/9793/10663680.htm t _blank 语言,是由 HYPERLINK /view/1061350.htm t _blank Sun Microsystems公司于1995年5月推出的Java程序设计语言和 HYPERLINK /view/209634.htm t _blank Java平台(即 HYPERLINK /view/169

8、790.htm t _blank JavaEE, HYPERLINK /view/1560387.htm t _blank JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对 HYPERLINK /view/824.htm t _blank C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和 HYPERLINK /view/4547.htm t _blank 安全性,广泛应用于个人 HYPERLINK /subview/13621/4882082.htm t _blank PC、 HYPERLINK /view/754520.htm t _

9、blank 数据中心、 HYPERLINK /subview/2468/8069356.htm t _blank 游戏控制台、 HYPERLINK /view/3805.htm t _blank 科学 HYPERLINK /view/296324.htm t _blank 超级计算机、 HYPERLINK /view/49217.htm t _blank 移动电话和 HYPERLINK /view/6825.htm t _blank 互联网,同时拥有全球最大的开发者专业社群。在全球 HYPERLINK /view/1316082.htm t _blank 云计算和 HYPERLINK /vie

10、w/1168245.htm t _blank 移动互联网的产业环境下, HYPERLINK /subview/29/12654100.htm t _blank Java更具备了显著优势和广阔前景。 HYPERLINK /subview/29/12654100.htm t _blank Java是由 HYPERLINK /view/1061350.htm t _blank Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计 HYPERLINK /view/9793.htm t _blank 语言(以下简称Java语言)和Java HYPERLINK /view/

11、58664.htm t _blank 平台的总称。由 HYPERLINK /view/974364.htm t _blank James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为 HYPERLINK /view/180796.htm t _blank Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的 HYPERLINK /view/209644.htm t _blank HotJava浏览器(支持Java applet)显示了Java的魅力: HYPERLINK /

12、view/469855.htm t _blank 跨平台、动态的 HYPERLINK /view/3912.htm t _blank Web、 HYPERLINK /view/11165.htm t _blank Internet计算。从此,Java被广泛接受并推动了 HYPERLINK /view/3912.htm t _blank Web的迅速发展,常用的 HYPERLINK /view/7718.htm t _blank 浏览器均支持 HYPERLINK /view/533192.htm t _blank Javaapplet。另一方面,Java HYPERLINK /view/4551

13、7.htm t _blank 技术也不断更新。 HYPERLINK /subview/29/12654100.htm t _blank Java分为三个体系JavaSE( HYPERLINK /view/160728.htm t _blank J2SE)(Java2 Platform Standard Edition,java平台标准版),JavaEE( HYPERLINK /view/1507.htm t _blank J2EE)(Java 2 Platform,Enterprise Edition,java平台 HYPERLINK /view/38340.htm t _blank 企业版)

14、,JavaME( HYPERLINK /view/7125.htm t _blank J2ME)(Java 2 Platform Micro Edition,java平台微型版)。Java与传统 HYPERLINK /view/17674.htm t _blank 程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发 HYPERLINK /view/9988.htm t _blank 公司被要求所设计的 Java HYPERLINK /view/37.htm t _blank 软件必须相互 HYPERLINK /subview/348591/51

15、44387.htm t _blank 兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件 HYPERLINK /view/195720.htm t _blank 开发商的认同。这与 HYPERLINK /view/39784.htm t _blank 微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java HYPERLINK /view/3281.htm t _blank 编程语言是个 HYPERLINK /view/66543.htm t _blank 简单、 HYPERLINK /view/125370.

16、htm t _blank 面向对象、 HYPERLINK /view/402382.htm t _blank 分布式、解释性、健壮、安全与系统无关、可移植、高性能、 HYPERLINK /view/65706.htm t _blank 多线程和 HYPERLINK /view/31294.htm t _blank 动态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此 HYPERLINK /view/39784.htm t _blank 微软公司推出了与之竞争的 HYPERLINK /view/4294.htm t _blank .NET平台以及模仿 HYPERLIN

17、K /view/29.htm t _blank Java的 HYPERLINK /view/6590.htm t _blank C#语言。Java是功能完善的通用 HYPERLINK /subview/17674/13521310.htm t _blank 程序设计语言,可以用来开发可靠的、要求严格的应用程序。2.2 JAVAEE技术简介 HYPERLINK /view/169790.htm t _blank JavaEE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java HYPERLINK /view/38340.htm t _blank 企业应用.随着WEB和E

18、JB容器概念诞生,使得 HYPERLINK /view/37.htm t _blank 软件应用业开始担心SUN的伙伴们是否还在 HYPERLINK /view/209634.htm t _blank Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。在2004年底 HYPERLINK /view/61891.htm t _blank 中国 HYPERLINK /view/37.htm t _blank 软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容

19、器,保护我们的业务核心组件( HYPERLINK /view/23710.htm t _blank 中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本.此次J2EE改名为Java EE,实际也反映出业界这种共同心声。JavaEE的核心是EJB3.0, 其提供了更兼便捷的 HYPERLINK /view/38340.htm t _blank 企业级的应用框架。2.3 JSP技术简介JSP(Java Server Page服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技

20、术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。 2.4 JSP工作原理JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给

21、服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器Web服务器后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。2.5 JSP体系结构JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。模式一:J

22、SP+JavaBeans技术在这种模式中,JSP页面独自响应请求并将处理结果返回给客户。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:JSP+Servlet+JavaBeans技术Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长

23、期驻留在内存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。2.6 JSP的特点简化的页面生成技术。JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似

24、HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。与Java平台有机集成。JSP技术是Java 2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在JSP页面中可以使用几乎所有的Java组件和Java API,这就能充分发挥出Java语言的强大功能。使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。硬件平台和服务器无关性。JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(Write Once,Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台及Web

25、服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。功能可扩展性。如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(Enterprise JavaBean)以及自定义的标记来扩展功能。JSP可以通过JDBC,与诸如Oracle、SQL Server这样的大型关系数据库进行连接。JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用

26、户在HTML表单中提交的信息。2.7 SQLSERVER 2000 数据库SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出的最新版本。 SQL Server 特点:1真正的客户机/服务器体系结构。

27、 2图形化用户界面,使系统管理和数据库管理更加直观、简单。 3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。 5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 6对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。 7SQL Server提供数据仓库功能,这个功能只在Oracle和其

28、他更昂贵的DBMS中才有。2.8系统数据库连接JDBC技术是Java DataBase Connectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(Application Programming Interface)。它由一组用Java语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBC API可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQL

29、Server。不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事:同一个数据库建立连接;向数据库建立连接;处理数据库返回的结果。JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。很多可视化的Java开发工具,如Visual Age For Java、Visual Caf、J+等都提供了基

30、于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。数据库访问的三层结构如图2.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进

31、行认证,认证通过才能对数据库进行操作。图2.1 使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据

32、库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图2.2所示:图2.2 JDBC的三层模型因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.

33、forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(Java VirtualL Machine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statem

34、ent对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet 对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet 对象。数据库连接如图2.3所示:图2.3 数据库的连接处理数据库的连接处理具体实现如下:/建立JDBCODBC桥sun.jdbc.odbc.JdbcOdbcDriver;/桥建立不成功时的错误处理catch(ClassNotFoundExc

35、eption event)/建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中Con=建立JDBCODBC桥Sql=SQL查询语句执行查询Rs=返回结果/SQL出错处理 catch(SQLException e1)有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台

36、编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载

37、等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。 JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。

38、MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。下列代码段给出了以上三步的基本示例: Connection con = DriverManager

39、.getConnection(jdbc:odbc:wombat,login, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(SELECT a, b, c FROM Table1); while (rs.next() int x = rs.getInt(a); String s = rs.getString(b); float f = rs.getFloat(c); 上述代码对基于JDBC的数据库访问做了经典的总结。2.9 BS模式与C/S模式的比较分析C/S模式主要由客户应

40、用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。 B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。 第一层客户机是用户与整个系统的接

41、口。客户的应用程序精简到一个通用的浏览器软件,如NetscapeNavigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。 第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。 第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。 B/S模式的优势 首先

42、它简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范

43、围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。 再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是

44、决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使MIS系统维护的限制因素更少。 最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。 鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。 B/S模式的新颖与流行,和在

45、某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选。3 概要设计3.1 基本思路充分利用现有网络的软硬件资源,应用WEB的开放式技术,建立反垃圾邮件管理系统的基本目标就是为邮件过滤提供一种交互、开放、易用的环境,为开发应用邮件过滤提供丰富高效的技术手段及其软件工具。围绕实现这个目标,应用平台的开发设计必须突出坚持技术手段内容为主的主体性要求;既要立足当今先进技术,又要考虑未来技术发展的前瞻性要求;最大限度地适应于各种软硬件环境,适用于不同水平用户群的通用性要求;以尽可能低廉的投入而获得尽可能高效的经济性要求。3.2 基本思想在总体结构上采用三层B/S结构:各类资源在服务器一端,采

46、取数据库统一存放和组织,用户在客户机一端,无须任何配置工作,只须使用浏览器向WEB服务器代理提出访问请求,服务器审核后通过中间控件与后台数据库链接,把请求服务的内容以WEB页面形式通过浏览器反馈给用户。3.3 功能模块图系统有4大功能,其功能模块如图3.1所示:反垃圾邮件管理系统反垃圾邮件管理系统首页收件箱发件箱垃圾邮件查看过滤删除图3.1功能模块图3.4 数据库表设计3.4.1 设计表users已注册用户的信息会记录在设计表users中,设计表uesrs如表3.1所示:表3.1 设计表users列名数据类型长度允许空IdInt4否NameNvarchar50是PwdNvarchar50否3.

47、4.2 设计表hmd用户的屏蔽信息会记录在设计表hmd中,设计表hmd如表3.2所示:表3.2 设计表hmd列名数据类型长度允许空IdInt4否MailNvarchar50是NameNvarchar50是3.4.3 设计表mails用户已收到的邮件会记录在设计表mails中,并标记属性,设计表mails如表3.3所示:表3.3 设计表mails列名数据类型长度允许空IdInt4否NameNvarchar50是TitleNvarchar200是ContentNvarchar500是SenderNvarchar50是AddtimeNvarchar50是TypeNvarchar50是3.5 数据删除

48、流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图3.1所示:开始开始选择需要删除记录是否删除更新数据库图3.1数据删除流程图3.6 E-R图根据对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图如图3.6所示:邮箱名密码用户操作操作内容邮箱名密码用户操作操作内容写信发信注册查看垃圾邮件邮件过滤4 详细设计4.1 登陆用户在前台页面输入账号密码,与后台数据库交互,来验证用户合法性,实现包含前台jsp和后台servlet。index.jsp 邮件过滤系统 form action=MailServlet?method=L

49、OGIN name=form1 method=post onsubmit=return check() 邮箱名称: 邮箱密码: 注册 Servlet:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(Constant.CONTENTTYPE);request.setCharacterEncoding(Constant.CHARACTERENCODING);MailBean

50、mb=new MailBean();String method=request.getParameter(method).trim();HttpSession session=request.getSession();if(method.equals(LOGIN)String name=request.getParameter(name);String pwd=request.getParameter(pwd);int flag=mb.userLOGIN(name, pwd);if(flag=Constant.SUCCESS)session.setAttribute(user, name);r

51、equest.getRequestDispatcher(main.jsp).forward(request, response);elserequest.setAttribute(message, 邮箱名或密码错误!);request.getRequestDispatcher(index.jsp).forward(request, response);else if(method.equals(userPWD)String name=request.getParameter(name);String pwd=request.getParameter(pwd);int flag=mb.userP

52、WD(name, pwd);if(flag=Constant.SUCCESS)request.setAttribute(message, 操作成功!);request.getRequestDispatcher(main.jsp).forward(request, response);elserequest.setAttribute(message, 操作失败!);request.getRequestDispatcher(main.jsp).forward(request, response);使用时,用户可以在登陆页面输入账号密码登陆自己的邮箱,或者选择注册新邮箱,登陆界面如图4.1所示:图4

53、.1登陆界面图4.2 注册注册时,通过前台jsp接受注册用户数据,通过后台存入数据库:reg.jsp: 邮件过滤系统-注册 form action=MailServlet?method=userREG name=form1 method=post onsubmit=return check() 邮箱名称: 邮箱密码: 确认密码: 返回首页 Servlet:else if(method.equals(userREG)String name=request.getParameter(name);String pwd=request.getParameter(pwd);int flag=mb.che

54、ckREG(name);if(flag=Constant.SUCCESS)request.setAttribute(message, 该邮箱名已经存在!);request.getRequestDispatcher(reg.jsp).forward(request, response);elseint ff=mb.userREG(name, pwd);if(ff=Constant.SUCCESS)request.setAttribute(message, 注册成功,请登陆!);request.getRequestDispatcher(index.jsp).forward(request, res

55、ponse);elserequest.setAttribute(message, 操作失败!);request.getRequestDispatcher(index.jsp).forward(request, response);用户可以在注册界面注册一个新的邮箱,用户需要输入创建邮箱的账号,密码及确认密码,密码长度不得小于6位,注册界面如图4.2所示:图4.2注册界面图4.3 首页页面掌管主要功能的链接:top.jsp: base href= My JSP top.jsp starting page !- 邮件过滤系统 首页 发邮件 收件箱 垃圾邮件 屏蔽字 a href=MailServl

56、et?method=EXIT退出 用户登陆邮箱后进入首页,在首页可以进行邮件的收发和查看,首页界面如图4.3所示:图4.3首页界面图4.4 发邮件通过前台jsp页面收集信息,后台服务进行发送: My JSP main.jsp starting page !- %String message = (String)request.getAttribute(message);if(message = null)message = ;if (!message.trim().equals()out.println();out.println(alert(+message+););out.println(

57、);request.removeAttribute(message);% function check() if(.value=|document.form1.title.value=|document.form1.content.value=) alert(所有项目必须填写!); return false; form action=MailServlet?method=sendMAIL name=form1 method=post onsubmit=return check() 收 件 人: 邮件主题: 邮件内容: 用户可以发邮件界面向其他用户发送邮件,需要输入发送目标的邮箱地址,邮件主题和

58、邮件内容,发邮件界面如图4.4所示:图4.4发邮件界面图4.5 收件箱从后台调用数据,在jsp页面中显示出收件箱中的邮件 序号主题发件人发送时间查看过滤删除 %List list=new MailBean().getMyMail(name,good); if(!list.isEmpty() for(int i=0;i a href=info.jsp?id=查看 a href=MailServlet?method=GUOLV&mail=&name= 过滤 a href=MailServlet?method=DELMAIL&id= 删除 用户可以在收件箱界面查看其他用户对自己发送的邮件,并进行查看

59、和过滤操作,收件箱界面如图4.5所示:图4.5收件箱界面图4.6 垃圾邮件从后台调用数据,在jsp页面中显示出标记为垃圾的邮件 序号主题发件人发送时间查看删除 %List list=new MailBean().getMyMail(name,lj); if(!list.isEmpty() for(int i=0;i a href=info.jsp?id=查看 a href=MailServlet?method=DELMAIL&id= 删除 用户可以在垃圾邮件界面查看被过滤的邮件,进行查看和删除操作,垃圾邮件界面所图4.6所示:图4.6垃圾邮件界面图5 系统调试与测试5.1 程序调试在设计系统的

60、过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。5.2 程序的测试5.2.1 测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检

温馨提示

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

评论

0/150

提交评论