英语词汇查询系统的设计与实现.docx

上传人:b****5 文档编号:7334577 上传时间:2023-01-23 格式:DOCX 页数:37 大小:635.34KB
下载 相关 举报
英语词汇查询系统的设计与实现.docx_第1页
第1页 / 共37页
英语词汇查询系统的设计与实现.docx_第2页
第2页 / 共37页
英语词汇查询系统的设计与实现.docx_第3页
第3页 / 共37页
英语词汇查询系统的设计与实现.docx_第4页
第4页 / 共37页
英语词汇查询系统的设计与实现.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

英语词汇查询系统的设计与实现.docx

《英语词汇查询系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《英语词汇查询系统的设计与实现.docx(37页珍藏版)》请在冰豆网上搜索。

英语词汇查询系统的设计与实现.docx

英语词汇查询系统的设计与实现

摘要

在信息化时代,学生学习很多时候也会通过信息化手段快速的掌握知识,不断提高自身能力,进而提高社会竞争力。

英语学习在社会竞争中是一项必不可少的技能。

随着信息时代科技的飞速发展,计算机技术大大地提高了工作效率,在辅助教学中的应用也越来越广泛。

智能背单词自测系统是一种高效、便捷的学习方式,具有直观性和趣味性,能够提高用户的学习积极性和主动性,从而提高学习效率。

用户不但可以快速的查询到自己想要的单词,还可以选择多种方式进行背单词自测,测试后系统能够立即批改,准确判断对错,并进行统计测试情况,最后显示正确答案。

管理员可以增加、删除和修改习题,查看每个用户每次的使用情况并对其管理。

本系统采用JAVA语言,当下流行的Struts1框架,JSP页面和MySQL数据库,从而实现系统的基本功能。

设计系统的过程中,首先建立了系统的结构框架,然后在此基础上进行数据库的设计,接着经过详细设计时的不断修改和完善,测试阶段的反复调试和验证,最终形成达到设计要求的可行性系统。

关键词:

英语高效便捷JAVA

ABSTRACT

Intheinformationage,studentsoftenlearnthroughinformationmeanstoimproveability.Englishlearningisanecessaryskillinthesocialcompetition.Withtherapiddevelopmentofinformationage,computertechnologyhasbeengreatlyincreasedworkefficiency.Theapplicationofauxiliaryteachinghasbecomingwidelyused.Theself-testsystemofmemorizingwordsisaefficientandconvenientwayoflearning.Thesystemisintuitiveandfunnysothatitcanimproveusers'learningenthusiasm,initiativeandefficiency.Userscannotonlyfastquerytoownwords,butalsocanchooseavarietyofwaystobackthewordself-test.Systemcanjudgerightandwrongaftertestandshowtherightanswerifwrong.Administratorcaninsert,delete,updatewordsandchecktheusageofeachusereverytime.

ThissystemhasusedtheJAVAlanguage,SSHframework,MySQLdatabaseandjsptoachievethebasicfunctionofsystem.Ihaveestablishtheframeworkofthesysteminthedesigningofsystem.OnthebasisofsystemIdesignthedatabase.Thenaftercontinuousmodificationandtest,Icompletethedevelopmentofsystemfinally.

Keywords:

EnglishEfficientConvenientJAVA

引 言

英语是世界上最广泛使用的第二语言,是欧盟和许多国际组织与英联邦国家的官方语言之一。

而且英语也是与计算机联系最密切的语言,大多数编程语言都与英语有联系,英语在软件行业、编程世界里都占有压倒性的优势。

据不完全统计,全球有8500种以上的编程语言,其中大概有2400种起源于美国,600中起源于英国,有160中来自于加拿大,由此可见,世界上有三分之一以上的编程语言在是以英语为母语的国家发展起来的。

毫不夸张的说,软件学习如果离开了英语将寸步难行。

我们在学校中学习的软件知识,大多只是皮毛,起到抛砖引玉的作用,而当我们真正想要深入去了解这些知识,那么最有效的方法就是阅读文档。

不管是Struts框架还是Html5,都提供了详细的文档来教我们如何使用,然而这些文档都是英文的。

即使有中文文档,也是在英文文档的基础上翻译而来,那么受限于翻译人员本身的英文水平,以及翻译人员的技术水平,往往会和原版的文档多少有些差异,这些差异有时候会导致我们错误的理解,为软件学习带来很多麻烦。

既然英语对软件学习这么重要,那么英语不好的同学想要学习软件知识怎么办呢?

本系统就是来解决这部分同学的难题的,本系统就是结合了本人在学习软件时遇到的真实问题,帮助那些英语方面有欠缺的同学,让他们能更好的学习软件。

一般的英语词汇查询软件,都是以C/S模型实现,更新维护也就是软件运营商在一味地塞入新单词,改错误,而缺乏针对性,而且很多时查到的单词也并不是我们想要的意思,缺乏实用性。

另一方面,这种软件一般都是基于互联网更新和维护,对于没有外网的用户使用起来很麻烦。

而本系统是用JAVA语言开发的动态WEB项目,属于B/S模型,而且本系统使用了MySQL这样的轻量级数据库,基本可以在任何老旧机器上运行,只需简单的配置,就可以让用户通过内网访问,每个人都可以将自己遇到过的专业或常用词汇提交到数据库与他人共享,随时供大家查询,而且不需要专业的人员维护。

本系统是靠一点一滴积累每一位使用者的经验,构建的一个专业的、含金量高的词库。

这种用户使用,用户参与维护的模式,不但提高了整个系统的实用性,同时还调动了同学的积极性,是同学对软件和英语学习更有兴趣。

相比其他英语单词查询系统,本系统更像一个共享的笔记本,在这里你可以找到你想要的,也可以分享你想分享的。

让同学们在这种互帮互助的氛围下,学好英语,学好软件,这就是我设计本系统的初衷。

第一章系统技术简介

1.1JAVA简介

Java是一种面向对象的语言,具有跨平台、泛型编程等特性,一般用在企业级Web应用开发当中。

詹姆斯·高斯林在九十年代初便开发出了Java的雏形,一开始java叫做Oak,一般用在家用电器等当中的控制语言,在许许多多的家电中承担通信和控制的任务。

由于这些智能化的家电的市场的需求并没有预期的那么高,Sun公司于是放弃了该系列计划。

由于当时网络的迅速发展,詹姆斯·高斯林预见了Oak在互联网中的前景于是进一步发展Oak,在1995年5月命名Java正式发布。

Java后来越来越壮大,慢慢变成核心的互联网编程语言。

Java语言的特点很像C++。

拥有C++语言面向对象这一核心思想,Java抛弃了C++语言里有较大争议的指針,改成引用取代,与此同时还取消了C++以及原来运算符重载,也取消了多重继承的特性,改用接口,并添加了垃圾回收功能。

在JavaSE1.5版本加入了类型安全的枚举、泛型编程等。

Sun公司对于Java语言的解释是:

“Java编程语言是个简单、可移植、面向对象、健壮、分布式、安全与系统无关、高性能、解释性、多线程和动态的语言”。

Java和普通的编译语言以及直译语言不一样。

它首先将源代码转变成字节码,再依靠不同平台各自的虚拟机来解释和执行字节码,最终形成“一次编译、到处执行”的跨平台特点。

在较早期的虚拟机里,会使得Java程序的运行效率变得很低。

不过在J2SE1.4.2发布以后,Java的运行速度获得了很大的提升。

和传统型态不一样的是当Sun公司刚刚发布Java时就决定把它开放。

全世界所有的Java开发公司所进行开发的Java软件相互之间都必须要兼容。

“Java依赖于群体的力量而不是某一个公司的力量”成为了Sun公司的口号,大多数的软件开发商也认可这个理念。

这样的理念与微软的精英和封闭式模式恰恰相反,之后,微软也发布了.NET平台和sun公司进行竞争,以及C#用来模仿Java。

再到后来Sun公司被Oracle收购,Java从此便成了Oracle的产品之一了。

1.2JSP简介

JavaServletPage(JSP)是一种基于Java的技术,用于生成动态网页,支持跨平台、跨Web服务器。

JSP与Microsoft的ActiveServerPage类似,但它使用类似HTML的标记以及Java代码片段来代替VBScript。

如果其本身不支持ASP的Web服务器,JSP就是能够考虑的对象。

也能为服务器购买ASP插入模块,不过成本高昂,而且现在Sun还不对使用JSP收取许可费。

不能将JSP与JavaScript弄混,Web服务器能够将由JSP生成的Java代码段自动的变成JavaServlet。

JSP还能够自动的控制原先使用Perl或者API自行编辑大量的功能。

支持复杂的Java程序的一般是使用Servlet处理,Servlet适用于由服务器端调用以及执行全部的Java类,Servlet是利用Java编写的小程序。

Servlet是使用JavaServlet应用程序的一套编程接口及相关类和方法的Java程序。

JSP动态网页的开发有2种形式:

JSP+JavaBeans和以及JSP+Servlet+JavaBeans。

第二种模式还使用到JSP与Servlet,结合JSP与Servlet技术,JSP与Servlet两者各自的优势得到了极致的展现。

JSP技术通常用来展现页面特征,但是Servlet技术通常完成大量的逻辑处理,换句话说,JS通常是用来发送给前端的用户,但是Servlet一般是用来处理用户的请求,进行请求的复杂的逻辑处理。

实际上,Servlet时电子商务的开始,JSP在Servlet基础上有了更进一步的发展,Servlet充当着控制角色,用来负责用户请求事务的处理。

另外Servlet一般用Java来编写,Servlet给予Java应用程序的几乎全部的优势,可以从一个服务器转换到另一个服务器里,不要过分担心操作系统以及服务器的类型。

更重要的是Servlet是模块化的,任意一个Servlet都可以执行一个特殊任务,不仅如此还能够把它们合到一起,Servlet间还可以相互进行信息传导,能够形成Servlet链,提取Servlet的输出信息,然后将其传导到另外一个Servlet来处理工作。

JSP技术本身没有处理复杂逻辑的能力,只能检索Servlet创建的JavaBeans或对象,再将动态内容插入到预定义的模块中,而Servlet用来创建JSP需要的JavaBean和对象,根据用户的行为决定处理哪个JSP页面,并将结果发送给用户。

由于Servlet非常适合后台开发,而Servlet本身需要相对较高的编程技术,因此Servlet本身在页面表现形式上有欠缺,不如JSP优秀。

在开发过程中,先开发JSP页面,然后把JSP代码转换成Servlet,这样做充分利用了JSP页面的表现形式,避免了Servlet在页面表现方面的不足,缩短了开发周期。

1.3MVC简介

在当前应用系统设计里,MVC(Model(模型)-View(视图)-Control(控制))作为主力系统设计模式。

在本系统中,Model(模型)用JavaBean进行实现,View(视图)由JSP、Html进行实现,Control(控制)用Struts进行实现。

Struts的MVC封装包是MVC设计模式的一种实现,MVC设计模式将数据访问与数据表现进行分离,能够开发一个带有伸缩性以及便于扩展的控制器用来维护整个流程的优势,成为了J2EE平台的首选。

整个项目的业务流程控制全部由Struts的配置文件web.xml文件和struts-config.xml文件来配置,让业务流程能够不用硬编码到源程序里,让系统更容易维护,灵活性也增强很多。

按照以上设计思路,将该系统在逻辑上分为四层:

业务展现层、业务控制层、业务逻辑层、业务持久层。

业务展现层主要用于人机交互界面,提供有好的人机交互界面;业务逻辑层是对业务控制层的管理和导向,进行整个业务的逻辑处理;业务层控制主要负责应用逻辑的实现,控制整个业务流程;持久层负责数据的存储和组织。

其中各层采用技术如下:

(1)业务展现层:

JSP、Html

(2)业务控制层:

Struts

(3)业务逻辑层:

Struts

(4)持久层:

JavaBean实现对象到关系数据库的映射

 

图1-1系统分层结构图

图1-1是系统的分层结构图,展示了系统的分层结构。

具体的业务流程描述如下:

业务展现层的页面表单提交到业务控制层的Action方法中,业务控制层的Action方法调用业务逻辑层的Service方法,业务逻辑层的Service方法调用业务持久层的DAO方法。

DAO方法来定义所有的数据库存储操作,进行数据库操作后得到的数据存储到Model中,Model将数据传给DAO方法,DAO方法将数据传给Service方法,Service方法进行相应的业务逻辑处理,处理结束后将处理结果传给Action方法,Action方法将页面展现数据传给业务占现层,业务展现层将最后的处理结果显示在页面上。

在本系统中集成了Struts架构。

该方法是将其本身作为信息系统,加以构建的,主要为实现MVC分离,同时在其模型部分,通过JavaBean来完成持久层的支持。

在这之中ControllerService类是控制器Service类,负责把HTTP请求打包并传送到相应Action动作类和JSP页面。

当系统初始化的时候,ControllerService类将解释Struts配置文件。

这些文件定义了这个程序的ActionMapping。

Controller类用这些映射来把HTTP请求转换为程序的Action动作类。

Action动作类处理请求并响应客户端,或者转发控制和错误处理。

Model类运用该语言产生一个基本对象,为所有Form中各个字段定义一个属性,产生了全新的检查机制,来证明属性类型的正确性,而后,写出基本的DAO接口,用以实现对于封装数据库的访问,通过与底层数据库纪录实体模型类之间进行交互,来操作数据库,完成数据更新。

在业务类中,采用DAO类来实现Java类与数据库之间的转换和访问。

1.4Struts简介

在网络迅速发展,并为人们的日常生活、娱乐和生产经营管理带来方便之时,我们无法否认这样的一个现实情况:

传统的Web开发模式,与现代Web应用的不相称。

传统的Web开发,对于小的项目开发还可以勉强应付,但如果面对的是大的企业级应用时,就显得力不从心。

使得Web开发人员疲于应付各种不期而至的状况。

在原始的JavaWeb了,JSP文件一般只负责业务逻辑、控制网页流程以及建立HTML。

这给Web的开发带来了很多的问题:

●HTML代码与Java程序强耦合在一起:

JSP文件的编写者不仅要是网页的设计者,还要是Java的开发者。

●内嵌的流程逻辑:

想要得到这个应用程序的整个流程,一定要浏览所有的网页。

●调试困难:

HTML标记、Java代码和JavaScript代码都聚集在一个网页中,使得调试变得很难。

●强耦合:

改变业务逻辑或者数据牵连的网页数量可能很多。

为了解决上述问题,才有了基于MVC的JSPModel1和JSPModel2的出现。

JSPModel2用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。

JSPModel2体系结构是联合使用JSP以及Servlet来进行提供内容服务的方式。

其汲取JSP和Servlet两种技术各自的优势,用JSP来生成表示层的内容,用Servlet进行深层次的处理任务。

Servlet是控制器,作用是处理用户请求,建立JSP页面要用JavaBean对象,依靠不同的用户请求选择不同的JSP页面给不同的用户。

在JSP仅负责检索之前Servlet建立的JavaBean对象,从Servlet当中得到内容加入静态模版。

如图1-2:

图1-2JSPModel2

由于JSP技术越来越成熟,许多的开发人员将通过Web应用框架进行工作。

框架为Web应用提供了预备的软件架构和相关的软件包,它大大提高了开发Web应用的速度和效率。

Jakarta-Struts是Apache软件组织提供的一项开放源代码项目,是JSPModel2的一种具体实现,它为JavaWeb应用提供了模型-视图-控制器(Model-View-Controller,MVC)框架,尤其适用于大型可扩展的Web应用。

Struts为Web应用提供了一个通用的框架,让开发人员能够将主要的精力放在怎样解决实际的问题中。

不仅如此,Struts框架还有很多用来扩展以及定制的地方,让应用程序能够更加方便扩展框架,让用户的实际需求得到最大的满足。

1.4.1Struts的概念和体系结构

Struts有一组相互协作的类、Servlet以及JSPTaglib组成。

基于Struts构架的web应用程序基本上符合JSPModel2标准,能够说Struts就是在JSPModel2的基础上实现的一个MVC。

依照上文对于framework的描述,我们知道Struts是一个webframework,这不单单是标记库的组合。

Struts也有十分丰富的标记库以及独立于这个框架工作的实用程序类。

Struts有其自己的控制器,与此同时还整合了别的一些技术来实现模型层和视图层。

在Struts的框架里,模型通常情况下是用来实现业务逻辑的JavaBean组件组成,控制器通常使用Action来进行实现,视图通常情况下是JSP文件或者是Html文件构成。

在模型层,Struts非常容易和数据的搜索技术进行联合。

Struts的体系结构如图1-3:

图1-3Struts的体系结构

1.4.2从视图角度(View)

视图是一组JSP文件。

这些文件没有业务逻辑,同时也不具备模型信息,只含有标签,这些标签一般是标准的JSP标签或者是客户化的标签,比如Struts标签库当中的标签,这些标签使用简单,不过这些标签在隐藏信息方面功能非常的强大。

比如,不仅bean名称以及给定bean当中的每个段的名称以外,相关的设计者不要了解有关表单bean的其他信息。

不仅如此,还要把Struts框架了的ActionFormBean分到视图模块里。

ActionFormBean不仅有一些JavaBean的一般方法,还有一些特殊方法,用来验证HTML表单数据用来把他们的属性重新设置成默认值。

不过ActionForm类的实现的时候继承了ValidatorForm类,还在validation.xml文件中进行了相应的配置,这样就可以在形成JavaBean实例时自动对表单数据进行输入验证。

这一部分也会在后一章具体论述系统实现时进行详细论述。

Struts通过ActionFormBean来视图与控制器之间相关信息的传递。

图1-4为ActionFormBean工作原理:

 

图1-4ActionFormBean工作原理

Struts提供了Java类org.apache.struts.action.ActionForm,Java开发者将该类细分来创建表单bean。

在运行时,该bean有两种用法:

―在JSP准备相关的HTML时,表单以进行显示时,JSP会访问这个bean。

这些值是在业务逻辑,亦或是从原来的用户输入来进行提供的。

―当从Web浏览器里返回输入时,这个bean会验证和保存这个输入,以供业务逻辑或后续的重新显示使用。

1.4.3从模型角度(Model)

模型是应用程序的状态以及业务逻辑。

Struts虽然不直接有助于模型开发。

在Struts当中,系统模型的状态一般是ActionFormBean和值对象来表现的。

在大型应用中,业务逻辑一般情况下是由JavaBean的组件来进行实现的。

1.4.4从控制器角度(Controller)

控制器由ActionServlet类和Action类组成。

其中,ActionServlet类是Struts框架的核心组件。

ActionServlet继承了javax.servlet.http.HttpServlet类,它在MVC模型中充当中央控制器的角色。

ActionServlet的任务主要是负责接收HTTP的请求信息,依照配置文件struts-config.xml的相关信息,将请求发送给特定的Action对象。

假如没有Action对象,ActionServlet会先创立对象。

在Strutsframework中,Controller主要为ActionServlet,不过对业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成。

在此当中,Action其实是控制逻辑的实现者,但ActionMapping和ActionForward却指定了不尽相同的业务逻辑或者流程的运行方向。

Action类是Struts框架中需要Web开发人员根据业务逻辑要进行实现的部分。

其主要是负责调用模型的方式,更新模型的状态,以及帮助控制应用程序的流程。

1.4.5Struts的配置文件struts-config.xml

与ActionServlet类具有相互协调工作,为其指明用户请求转发路径的是struts-config.xml文件。

在此文件中具体描述了用户请求路径和Action映射关系。

具体的映射信息是通过元素来配置的。

这些信息在系统启动时被读入内存,供Struts在运行期间使用。

在内存中,每一个元素都对应了一个org.apahe.struts.action.ActionMapping类的实例。

1.4.6Struts的工作流程

1.检索和用户匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。

2.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。

3.根据配置信息决定是否需要表单验证。

如果需要验证,就调用ActionForm的validate()方法。

4.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。

5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发那个Action。

如果想赢得Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。

6.Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发个ActionForward对象指向的JSP组件。

7.ActionForward对象指向的JSP组件生成动态网页,返回各客户。

在流程4时,如果返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示验证失败,此时ActionServlet将直接将请求转发给包含用户提交表单的JSP组件。

而此时,将不会创建Action类的实例并调用Action的execute()方法。

由于理解Struts的工

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1