语言学习类网站建设大学毕业论文.doc
摘 要随着Internet在中国的迅速发展,人们越来越多地使用这项技术来为自己的工作和学习服务.由于web页面能把文本、图像、声音、动画、视频等多种媒体信息集于一体,不但使信息的显示更加生动,而且使信息的浏览更为方便。因此因特网已经发展成为新的传播媒体。现在许多社会部门,企业或个人纷纷建立网站,通过计算机网络实现宣传、交流及资源的整合。“MATLAB新世纪”是一个学习和交流matlab语言的网站。里面主要提供一些matlab语言的有关信息和相关教程。在设计工具的选择上我采用了JSP与SQL Server2000数据库的组合。首先从整体上对网站精心策划并确定网站的设计目标,在技术上合理规划设计指标,收集、整理、编辑网站内容。然后是界面设计,这里涉及的范围极其广泛,我根据本站内容对界面的实际需要进行设计。从功能上来说本站以满足学习和交流matlab语言的需求为出发点,并考虑到今后将要对网站添加和修改相关内容等情况时的操作与维护,通过SQL Server2000所提供的强大功能建立了比较完善的后台管理系统。 本篇论文是对我设计网站的一点论述,以及在设计过程中所遇到的一些要点,难点等。 关键词:MATLAB,SQL Server2000,JSP目 录第1章 网站总体分析与设计思想11.1网站设计思想11.2网站栏目分析11.3主页设计21.4 数据库设计思路3第2章 系统实现工具62.1 Internet的开发环境62.2 开发工具的选用及介绍62.3后台数据库的选择与运用72.4 本系统用到的SQL Server工具简介:82.4.1 为什么使用SQL Server2000而不用其他?92.4.2 SQL Server2000在系统中所扮演的角色9第3章 系统详细设计103.1 数据库的建立103.1.1 学习资料存储103.1.2 课件下载113.1.3 论坛113.1.4 表的建立过程:123.2 网站管理权限的模块划分153.2.1管理员模块153.2.2. 普通用户模块203.2.3. 注册用户模块22第4章 主要编写过程及代码分析244.1 主页的组成构造244.2 界面设计的重点、难点代码的解析254.2.1 数据库与首页显示程序254.2.2 根据不同的条件对数据库进行查询264.2.3 可排序数据的Select指令264.3 网站首页的主要板块制作过程274.3.1 栏目项及栏目文章274.3.2 统计信息的实现方法324.3.3 “M友调查”的实现方法344.4 网站设计完成后的效果图38第5章 总结40参考文献41III第1章 网站总体分析与设计思想1.1网站设计思想网络是传播信息、交流思想的有效工具。对“MATLAB新世纪”这样一个主题学习类网站来说,提供其主要内容的热点技术文章与学习教程是必不可少的,同时在广大matlab语言爱好者群体中如何让他们对本站产生兴趣也是非常重要的一点,出于这点考虑就需要建立起一个平台使大家可以进行交流,而由这个平台所产生的热点话题又与本站的栏目内容结合在一起,使大家可以亲身参与到本站所营造出的互动氛围之中。所以就内容上来说:通过本网站来全面的宣传,展示matlab语言的组成、优点与特色。发布matlab语言的最新技术,并帮助matlab语言爱好者们进行学习与交流,使之在互动中提高对matlab语言的认识与应用水平。1.2网站栏目分析根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分: (1)站长简介:站长的姓名、所在单位名称、辅导领域、电子邮件、个人介绍、所著作品简述,以及探究的课题和参与的课题。方便网友了解站长的概况等。(2)讲座连载:凭借站长多年来对matlab语言的研究与掌握而精心制作的教学类栏目,通过由简到繁、由浅入深的办法逐步令初学者了解matlab语言、并用具体示例予以详细的说明来展现matlab语言的相关知识。(3)应用文摘:让站长与网友在网络科学探究中一起成长,专门介绍站长的精彩教案、科研论文、以及网友向站长推荐的优秀文章。(4)应用程序介绍:这里把一些与matlab语言有关软件的介绍及使用方法为浏览者一一说明,方便大家学习交流。(5)资源分享区:“MATLAB新世纪”提供大量与matlab语言有关的软件资源和课件资料,供网友下载(6)论坛:是matlab语言爱好者们互动的平台,这里大家可以发表一些自己的见解与他人交流,也可以把问题发出来寻求其他人的帮助,同时还可以把自己的研究成果拿出来共享。同时论坛与网站的栏目相结合,即网站实现数据共享管理模式。用户提供的任何一个数据,只要在栏目中需要,都可以随时调用实现共享。1.3主页设计网站主页采用静、动相结合的方式,静态主页方式介绍matlab语言简介和一些图形资料,对于站长简介、讲座连载、应用文摘、应用程序介绍、资源下载、论坛这六类,就得利用JSP与数据库相结合的技术建立数据库查询管理系统,采用交互式的动态web画面来实现如图1-1所示。图1-1 主页结构图(注:带下划线的表示是链接方式)1.4 数据库设计思路本系统从管理权限方面考虑,设计分为管理员和普通用户两大模块。管理员具有强大的后台数据管理权限,能够进行网站管理方面的所有操作,如对栏目、信息类别、上传文件、上传文件信息等进行管理。而对于这些管理功能中的大部分来说,普通用户是不可以进行操作的。所以把管理员和普通用户分成了两大模块来进行编写的,其中用户模块又分为注册用户和未注册用户。未注册用户可以直接查看信息、搜索信息、下载课件。而注册用户除此之外还可以在论坛上发表文章及协同站长管理网站等。主界面(如图1-2所示)是用DREAMWEAVER和JSP来做,主要是让用户对本站有一个初步的了解,内容包括(显示栏目内容,热点文章,统计信息,最新加入以及栏目类里的文章)。对于各个小的功能模块,做起来比较容易。都是运用JSP和HTML语言来实现的。其中的难点是怎么把这些功能块进行组合,有序的连接起来形成一个整体性、实用性很强的综合功能模块。本站采用的数据库是SQL Server2000 ,拟建立InfoSite数据库,包含如下几个表:(各个表的详细功能后面有介绍)(1)User 用户信息表; (2)Class 信息类别表;(3)News 信息表;(4)Soft 上传文件信息表(5)Vote 用户调查信息表(6)Topic 论坛主题信息表(7)Sort 论坛分类信息表(8)Respond 论坛所有回复信息表图1-2 数据库功能流程图第2章 系统实现工具2.1 Internet的开发环境Internet是一个使用TCP/IP协议、全球性的非集中管理的计算机网络。Internet技术的发展为编程人员提供了更广泛的施展身手的空间。早先"Internet应用程序"这个词仅仅是指一些用FTP协议下载文件或浏览HTML页面的工具,而如今使用JSP结合HTML语言,不仅可以为Internet开发应用程序,而且还可以把Internet技术作为一部分融入大型的解决方案中。2.2 开发工具的选用及介绍随着WWW(World Wide Web)的普及,动态网页技术也急速发展。从原来的CGI(Common Gateway Interface)到ASP(Active Server Page),都从某种程度上满足了网页开发人员对动态网页开发技术的需求。但是不管是CGI还是ASP都存在一定的局限性,如CGI对服务器资源的耗费,ASP只能同Microsoft IIS一起使用等,这些都限制了这些技术的使用范围,极大地阻碍了它们的推广。而JSP(Java Server Page)技术的出现解决了以上问题,其拥有以下几个优点:与操作平台无关,能够在任何Web或应用程序服务器上运行;将应用程序逻辑和页面显示分离;提供代码重用,极大的简化开发基于Web的交互式应用程序的过程。我们知道Java是未来的主流开发技术,具有很多优势。JSP则是Java在InternetIntranet Web上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。另外JSP技术还具有以下几个特点:(1)用简单易懂的脚本程序,结合HTML代码可以快速地完成动态网页的开发。(2)对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快。(3)所有应用都是基于服务器的,所以它们可以时刻保持最新版本。(4)客户端的浏览器可以不具备运行各种脚本的能力,因为这些脚本均在WEB服务器端执行。(5)JSP的源程序不会被传到客户的浏览器上,对维护编码人员的知识产权非常重要,不但可以避免所写的源程序被人剽窃,也提高了程序的安全性。(6)客户端的接口不是很繁琐,对于各种应用易于进行部署、维护和修改。MATLAB新世纪的开发正是基于以上这些优势而选择使用JSP技术的。2.3后台数据库的选择与运用(1)使用的数据库本系统后台数据库选用的是Microft公司中文版SQL Server2000。它以其强大的功能、简便的操作,日益为广大数据库用户所喜爱,是当今流行的数据库软件之一。(2)SQL Server2000简介SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本优点的同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成度高等优点。可跨越运行从Microsoft Windows 98的膝上型电脑到Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。2.4 本系统用到的SQL Server工具简介:(1)企业管理器企业管理器(Enterprise Manager)是SQL Server中最重要的管理工具。在使用SQL Server的过程中,大部分的时间都是和它打交道的。通过企业管理器可以管理所有的数据库系统工作和服务器工作,也可以调用其它的管理和开发工具。(2)服务管理器服务管理器(Service Manger)用于启动,暂停或停止数据库服务器。(3)查询分析器查询分析器(Query Analyzer)用于执行命令(SQL脚本程序),以查询,分析或处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,理解SQL Server的工作有很大的帮助。2.4.1 为什么使用SQL Server2000而不用其他?目前在大多数的数据库开发中使用的都是SQL SERVER2000,它提供了高效的数据库解决方案,可处理海量数据,是个大型的数据库系统。尤其是这种数据库针对服务器来说,更为熟悉,一旦有问题解决起来较容易,更深的原因是:SQL Server2000相对于其它非服务器等级的数据库执行的效率要高得多。2.4.2 SQL Server2000在系统中所扮演的角色SQL Server2000在整个系统中所占的工作量并不高,只是在前期建立数据库,设计数据表的时候才涉及到具体的数据库操作,但是其所发挥的作用却是十分巨大的,具体表现在本系统中所有的信息存储和模块划分的实现上,并且保证前台对数据库的一系列操作可以方便、稳定、安全的运行。第3章 系统详细设计3.1 数据库的建立本系统后台为SQL Server2000数据库。数据库命名为InfoSite,对数据库的设计充分结合了网站所实现的功能,“MATLAB大观园”是一个以学习为主的教育性网站,其主要为用户提供学习资料,课件下载以及信息交流等功能。针对这些功能和特点,数据库的设计主要考虑到三个方面:3.1.1 学习资料存储网站最主要的功能就是向用户提供各种MATLAB语言的学习资料,以便用户可以方便的查询和选择对自己有帮助的信息,管理员则要定时的更新资料,这样就需要一个有效的存储方法使查询和更新变的更简单和快捷。为了实现以上功能。我使用了下面的数据表:(1) CLASS用于存储所有的类别信息(包括类别ID和类别名称)。(2)NEWS用于存储所有信息内容,其中包括以下各列:Id 用于存放信息的编号 Classid 用于存放信息的类别编号 Title 用于存放信息的标题 News 用于存放信息的内容 Classname 用于存放信息的类别名称 Author 用于存放信息的作者名 Hit 用于存放信息的查看次数 Dtime 用于存放信息的发布时间3.1.2 课件下载课件下载是本站的一个特色栏目,管理员把课件上传到服务器,数据库则用于存储课件的一些相关信息,我使用了下面的数据表:SOFT用于存储所有的课件信息(包括名称,简介,出处,大小,以及存储在服务器上的地址和下载次数)。3.1.3 论坛论坛最主要的目的是为了方便大家对学习MATLAB语言进行交流,所以把用户发表的文章保存在数据库是很有必要的。随着时间的推进,栏目的增加,数据库中的文章自然会越来越多,所以论坛需要一些热心的版主来清理数据库和管理文章,这就要求WWW界面简单到让不懂编程的人也能轻松地进行管理和维护。为了实现以上的这些功能。我使用了下面的数据表:(1)USER保存用户资料,为了提高用户的积极性,论坛还会根据用户的表现划分等级,这就需要统计用户的上站次数和发表文章数等信息。(包括用户名,密码,性别,等级,上站次数和发表文章数等)。(2)TOPIC保存所有论坛栏目的主要信息(包括文章标题,内容,时间,和类别等)。(3)SORT保存论坛栏目项信息(包括栏目名称,主题,版主等)。(4)RESPOND保存了论坛的所有回复信息(包括栏目标题,内容,时间,等级,主题等)。3.1.4 表的建立过程:(1)首先启动 SQL SERVVER2000服务管理器(Service Manger)如图3-1所示。图3-1 SQL SERVVER服务管理器(2)打开SQL SERVVER2000企业管理器(Enterprise Manager)。在数据库文件夹上点右键然后选择新建数据库如图3-2所示。图3-2 SQL SERVVER 企业管理器(3)点开新建的数据库,在表选项上点右键选择新建表如图3-3所示图3-3 创建表(4)添入相应的列名,数据类型,长度如图3-4所示。图3-4 设定列这里建表和列的思路参考了SQL Server实训教程前3章提供的示例后,根据本网站的实际需要进行创建。3.2 网站管理权限的模块划分通过上面建立好的数据库我们能轻松管理网站上的所有信息,下面通过网站权限的模块划分结合数据库实现的功能以图文的方式展现各模块体所拥有的权限。因为各个模块对网站的作用是不同的,其对信息的处理分为提供者与受取者,从这点来考虑共分管理方和用户方两类,其中用户类又分为注册和未注册。以下对他们进行详细说明3.2.1管理员模块(1)管理员登陆如图3-5所示:要进入管理系统,必须通过管理员身份验证,输入用户名和密码之后点击确定,系统会自动与InfoSite数据库中的adminUser数据表中管理员信息进行比较。图3-5 管理员登陆页面(2)添加信息记录功能:点击此项连接进入添加记录页面如图3-6所示,点击分类下拉列表框选择要添加信息的类别,添加标题名称,作者姓名以及文章内容信息,点击确定按钮,此条记录即被添加到InfoSite数据库中的news数据表中,这时普通用户就可以查看此条信息了。图3-6 添加信息页面(3)管理信息记录:点击此项连接进入管理信息记录页面如图3-7所示,这里可以浏览到所有的信息记录,信息是以每页15条显示的,可以通过上一页,下一页进行查看,点击标题可以查看到信息的内容,也可以通过关键字,信息类别进行信息查询,对信息的管理包括两项:修改信息和删除信息,点击修改进入修改页面,此条记录的内容都可以在此页进行修改,点击删除此条记录就被从InfoSite数据库中的news数据表中删除。图3-7 管理信息页面(4)信息类别管理功能:点选此项连接进入信息类别管理页面如图3-8所示,点击添加按钮可以直接添加信息类别,点击修改,此项类别的名称就显示在上面,可以直接修改,同时属于此项类别的所有信息的类别名称也将同时被更改,点击删除,系统会提示警告“文件将要被删除”,如果选是,此条类别记录就被从InfoSite数据库中的class数据表中删除,如果选否,将不做任何操作,但要注意的一点是删除类别的同时属于此项类别的所有信息也将被同时删除.图3-8 类别管理页面(5)上传文件功能:点击此项连接进入上传文件页面如图3-9所示,选择要上传的文件,点击确定上传,文件就会被上传到uploadFiles文件夹下,如果上传成功如图3-10所示,系统就会显示上传文件的名称,服务器上的名称,大小。如果上传失败,可以在原程序中将上传失败文件的后缀名添加到允许上传文件的后缀名中,这样就同样可以上传此文件了。图3-9 文件上传页面图3-10 上传成功页面(6)上传文件的管理功能:点击此链接进入上传文件管理页面如图3-11所示,在此页面将显示所有上传到服务器上文件的名称,点击删除可以将文件从服务器删除掉。图3-11 上传文件管理页面(7)添加附加信息功能:点击此链接进入添加附加信息页面如图3-12所示,进入编辑页面后。给上传文件添加相应的信息,要注意的是添加上传文件地址的时候,要将上传文件成功信息中“存到服务器上的文件名”拷贝下来添加到地址栏中。点击确定此条记录就被添加到InfoSite数据库中的soft数据表中.图3-12 添加附加信息页面(8)附加信息管理功能:点击此链接进入附加信息管理页面如图3-13所示。可以浏览到所有的附加信息记录,信息是以每页15条显示的,可以通过上一页,下一页进行查看,点击删除附加信息就被从InfoSite数据库中的soft数据表中删除.图3-13 附加信息管理页面3.2.2 普通用户模块(1)参加网站调查功能:用户可以在首页参加“M友调查”这个调查,这里提供了几个对网站看法和意见之类的选项,选择相应的选项,点击发表,可以转到调查结果界面,在这里看到这项调查共有多少个用户参加以及每个选项占总选择数的百分比。这个功能模块的另一个作用还在于它是面向所有浏览者的,所以管理员可以广泛的了解网站的不足方面,而经过改正后通过这项调查马上又可以得到相应的意见反馈。(2)查询信息功能:用户可以通过查询关键字的位置(如:文章标题和内容的关键字),以及信息的类别进行自定义查询。例如想寻找关于matlab语言的相关信息,就可以查找“matlab”关键字,如图3-14所示:图3-14 查询结果界面(3)查看信息内容功能:用户可以自由选择对自己有帮助的文章进行阅读。(4)下载功能:在首页点击下载中心,可以查看到所有本网站为你提供的免费课件和软件,选择要下载的软件到下载页面如图3-15所示,在此页面上有软件的具体介绍,点击本地下载就可以把自己想要的软件下载到电脑上了。(由于本人能力有限,这里借用了http/太平洋电脑网提供的代码来实现此功能)图3-15 文件下载页面3.2.3 注册用户模块注册用户除了享有普通用户的一切功能外,还可以在论坛发表信息,通过设立问答区,经验交流区等进行互动与沟通。同时网站管理员在这里也可以更好的与大家交流想法,听取意见。以便加强网站建设,提高网站的生存能力。而在这里发表的优秀文章,经作者本人同意后也可放在网站的信息库中以“应用文摘“的形式供广大网友阅读。同时在注册用户中招募一些对MTLAB语言有足够热情并具有一定能力的人做各版块的版主,这样不但大大降低了站长的工作量同时通过这些爱好者的参与也提高了网站的人气。第4章 主要编写过程及代码分析4.1 主页的组成构造主页在构造上分为五个部分如图4-1所示:(1)站内公告(关于网站的相关信息发布,活动安排,主题思想等)。(2)统计信息(显示本站的总文章数和当天加入的新文章数以及总浏览次数,方便网友直观的了解本站的内容更新情况)。(3)信息排行(显示热点文章浏览排行,既方便用户了解最新热门的话题,同时也令管理员及时准确的掌握用户关心的栏目以及文章)。(4)栏目信息(显示本站所有栏目项以及其下主要文章,这里由于空间有限只显示每个栏目下的五篇文章标题)。(5)M友调查(matlab语言爱好者们对本站的评价和希望,在这里用简单直接的选择方式告诉管理员,以便提高本站质量)。图4-1 主页设计构造图4.2 界面设计的重点、难点代码的解析4.2.1 数据库与首页显示程序首页主要是对网站信息的概括,这就需要根据不同的需要将数据库的数据取出,首先要与数据库创建连接。第一步 加载数据库驱动程序: Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);第二步 创建连接:Connenction con=DriverManager.getConnection("jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=infosite",”sa”,” ”);Connection对象只负责与数据库进行链接的动作,并不能使用数据库内的数据,因此必须建立一个可以存取数据库数据的ResultSet对象第三步 创建Statement:Statement staement=con.createStatement();Statement对象用于将SQL语句发送到数据库中。第四步 执行查询结果:ResultSet resultset=statement.executeQuery(“查询语句”)ResultSet(结果集)对象是负责保存从数据库取出来的数据。4.2.2 根据不同的条件对数据库进行查询下面简单介绍一下数据库的查询语句;1.Select 指令的筛选语句:格式: SelectFrom.SQL语言中,在“Select数据表”中选取某些“栏位”的数据.2.如果要选取的数据表数据包含了一个以上的栏位,则我们可以利用“,”逗号来将栏位名称隔开。3.如果要选取的数据表数据包含了全部的栏位,则可以利用万用字符“*”来代表全部的栏位。4.2.3 可排序数据的Select指令1当我们希望被选取出来的数据记录信息能够依据某个或某几个栏位内容来进行排序时,只要将这些排序依据的栏位摆放在“Order By“保留字之后,然后将这处排序的语句连接在”SelectFrom“后面就行了。2.“Order By“默认的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,则我们可在栏位名称后再加上“Desc”保留字,将排序方式改为“由大排到小”。3. 当我们希望可以取数据库的前几条记录的时候,只要在select 后面加上tip和要取的记录数以及要选取某些“栏位”如果要选择全部栏位可以利用万用字符“*”来代表。4.3 网站首页的主要板块制作过程4.3.1 栏目项及栏目文章首先用DREAMWEAVER构造出网站首页的基本框架如图4-2所示图4-2 首页构造图在首页的空白处实现栏目项及其里面文章标题的显示。首先考虑到网站的栏目会在现有的基础上逐步增加和完善,这样就需要网站能够及时的显示新添加栏目,这里用JAVA程序来实现这一功能,首先选中用DREAMWEAVER构造好的表格如图4-3所示。图4-3 选取表格部分(图中红框部分)这一区域所要显示的是网站现有的栏目以及今后添加的栏目项和栏目下的文章(每个栏目自动显示本栏目中的前5篇文章的标题),点击代码选项,转到代码表达页如图4-4所示,蓝色部分就是刚才选取表格的代码。 图4-4 选取表格的代码首先将栏目表中的所有栏目信息以循环的方法取出。考虑到所有显示的栏目信息不能显示在同一表格中,所以必须让选择的表格和取出的栏目信息一起循环,使表格可以根据栏目信息的多少自动的增加表格的数量,使其实现自动显示新增加的栏目信息功能。然后在取出栏目的循环中作一个嵌套循环,根据取出的栏目名称到数据库中查找出其栏目下的前5条文章标题显示在页面上。在选中代码部分(即所选表格中)加入相应的JAVA程序以实现我们所设想的这些功能,具体编写步骤如下: 以下蓝色部分既为所插入的JAVA语句:<%ResultSet RS_root = sqlbean.executeQuery("select * from class order by classid");(查询所有的栏目信息,并将其保存到结果集中)while(RS_root.next()(如果结果集中还有下一条记录就执行此循环,也就是通过循环将结果集里的记录取出) %><TABLE width=100% height="51" border=0 cellPadding=0 cellSpacing=0 style="BORDER-COLLAPSE: collapse"><TBODY><TR bgcolor="#FFFF99"> <TD height=28 colspan="2" bordercolor="#0000FF"><divalign="left"><strong><font color="#000000" size="4"><font color="#000066" size="2.5"> 【<%=RS_root.getString("classname")%>】(显示栏目名称) </font></font></strong></div></TD> </TR><%sql = "Select top 5 * FROM news where classid='"+RS_root.getString("classid")+"' order by id desc" RS = sqlbean.executeQuery(sql);编写SQL语句使其根据结果集中每条记录的栏目编号查询出此栏目下的前5个信息(即取出栏目下的前5篇文章的信息保存在结果集里) while (RS.next()如果结果集中还有下一条记录就执行此循环,也就是通过循环将结果集里的记录取出 %> <TR> <TD width="428" height="23" valign="middle"> <img src="images/article_common.gif" width="9" height="15"><A href='show.jsp?id=<%=RS.getString("id")%>&classid=<%=RS.getString("classid")%>'>点击文章标题使其转到文章内容显示页,同时也把文章的编号和此文章所属栏目的编号传到此页<font color="#ff9900"></font> <%=RS.getString("title")%>显示文章标题</a></TD> <TD width="186" valign="middle"><div align="center"><%=RS.getString("dtime")%></div></TD> </TR></TBODY></TABLE><% %>图4-5 完成后效果图4.3.2 统计信息的实现方法图4-6 统计信息<% String sql = "Select count(*) as newsall FROM news" 编写一个查询语句,使之查询数据库信息表中的所有信息数,并将所有的信息数存放到newsall(列名自定义)列中 ResultSet RS = sqlbean.executeQuery(sql); 执行查询将查询的结果存放到结果集中: RS.first(); String newsall=RS.getString("newsall"); 将newsall列中的值以字符串的形式取出: RS.close(); 关闭结果集*共有信息*java.util.Date now = new java.util.Date();得到今天的日期:DateFormat df = DateFormat.getDateInstance();初始化一个日期格式化对象String s = df.format(now);将当前的时间格式转化成设定的格式:sql = "Select count(*) as todayall FROM news where datediff(hour,dtime,getdate()<24"编写一个查询语句,使之利用SQL中的datediff函数 查询出在24小时之内新加入的信息数,并将所有的信息数存放到todaysall(列名自定义)列中RS = sqlbean.executeQuery(sql);执行查询将查询的结果存放到结果集中:RS.first();String todayall=RS.getString("todayall");将newsall列中的值以字符串的形式取出:RS.close();关闭结果集*今日更新*sql = "Select sum(hit) as allhit FROM news"编写一个查询语句,使之对news表中的hit列求和,并将结果存放到allhit列中:RS = sqlbean.executeQuery(sql);执行查询将查询的结果存放到结果集中:RS.first();String allhit=RS.getString("allhit");将allhit列中的值以字符串的形式取出:RS.close();关闭结果集。%>*总浏览次数*4.3.3 “M友调查”的实现方法先将用户选择的选项号传到jis.jsp(后台处理页),在后台处理页更新数据库,然后转到view.jsp(调查结果页),然后在v调查结果页显示调查的结果如图4-7所示。 图4-7 M友调查界面具体实现如下: <%String vo = request.getParameter("VoteOption");接收首页传送过来的用户选择项int idd = Integer.parseInt(vo);将其转化成数值类型sqlbean.executeUpdate("update vote set hit=hit+1 where id="+idd+"");更新数据库将此选项的选择数加1%><% String sql = "Select sum(hit) as allhit FROM vote"编写SQL语句(对vote 表的hit列求和,即把此列的所有点击数加在一起)并将查询到的结果保存到allhit列中: ResultSet RS = sqlbean.executeQuery(sql);执行SQL语句并将查询到的结果保存到结果集中: RS.first(); String allhit=RS.getString("allhit");将allhit列中的值以字符串的形式取出: RS.close();关闭结果集 RS = sqlbean.executeQuery("Select * FROM vote where id = '1'");执行SQL语句(查询vote表中id等于1,即第一个调查选项的编号和点击数)并将查询到的结构保存到结果集中 RS.first(); String hit1=RS.getString("hit");将hit列中的值以字符串的形式取出 RS.close();关闭结果集 RS = sqlbean.executeQuery("Select * FROM vote where id = '2'"); RS.first(); String hit2=RS.getString("hit"); RS.close(); RS = sqlbean.executeQuery("Select * FROM vote where id = '3'"); RS.first(); String hit3=RS.getString("hit"); RS.close(); RS = sqlbean.executeQuery("Select * FROM vote where id = '4'"); RS.first(); String hit4=RS.getString("hit"); RS.close();以上程序同第一个选项编写相同,只是id不同,即选项为2,3,4 int hh = Integer.parseInt(allhit); int hh1 = Integer.parseInt(hit1); int hh2 = Integer.parseInt(hit2); int hh3 = Integer.parseInt(hit3); int hh4 = Integer.parseInt(hit4);将上面查询到的所有字符串类型的值(选项的点击数)都转换成数值型,以便于计算: int h1 = 100*hh1/hh; int h2 = 100*hh2/hh; int