基于JSP的在线投票系统_第1页
基于JSP的在线投票系统_第2页
基于JSP的在线投票系统_第3页
基于JSP的在线投票系统_第4页
基于JSP的在线投票系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录 TOC o 1-2 h z u HYPERLINK l _Toc105644888 一 引言 PAGEREF _Toc105644888 h 1 HYPERLINK l _Toc105644889 二 JSP概述 PAGEREF _Toc105644889 h 1 HYPERLINK l _Toc105644890 (一)JSP的概念 PAGEREF _Toc105644890 h 1 HYPERLINK l _Toc105644891 (二)JSP的优点 PAGEREF _Toc105644891 h 2 HYPERLINK l _Toc105644892 (三)JSP的使用 PAG

2、EREF _Toc105644892 h 2 HYPERLINK l _Toc105644893 三 JavaBean简介 PAGEREF _Toc105644893 h 3 HYPERLINK l _Toc105644894 (一)JavaBean的概念 PAGEREF _Toc105644894 h 3 HYPERLINK l _Toc105644895 (二)JavaBean的优点 PAGEREF _Toc105644895 h 3 HYPERLINK l _Toc105644896 (三)JavaBean的使用 PAGEREF _Toc105644896 h 3 HYPERLINK l

3、 _Toc105644897 四 JSP的数据库访问技术 PAGEREF _Toc105644897 h 5 HYPERLINK l _Toc105644898 (一)JDBC概述 PAGEREF _Toc105644898 h 5 HYPERLINK l _Toc105644899 (二)JDBC的结构 PAGEREF _Toc105644899 h 5 HYPERLINK l _Toc105644900 (三)JDBC 的接口特性 PAGEREF _Toc105644900 h 6 HYPERLINK l _Toc105644901 (四)JDBC与数据库模型 PAGEREF _Toc10

4、5644901 h 7 HYPERLINK l _Toc105644902 五 基于JSP的在线投票系统的设计与实现 PAGEREF _Toc105644902 h 8 HYPERLINK l _Toc105644903 (一)前期准备 PAGEREF _Toc105644903 h 8 HYPERLINK l _Toc105644904 (二)系统结构设计 PAGEREF _Toc105644904 h 9 HYPERLINK l _Toc105644905 (三)JavaBean程序的详细设计和实现 PAGEREF _Toc105644905 h 10 HYPERLINK l _Toc10

5、5644906 (四)JSP文件的详细设计和实现 PAGEREF _Toc105644906 h 11 HYPERLINK l _Toc105644907 (五)运行效果图 PAGEREF _Toc105644907 h 11 HYPERLINK l _Toc105644908 六 结论 PAGEREF _Toc105644908 h 12 HYPERLINK l _Toc105644909 致谢 PAGEREF _Toc105644909 h 13 HYPERLINK l _Toc105644910 参考文献 PAGEREF _Toc105644910 h 13 HYPERLINK l _T

6、oc105644911 附录:源代码 PAGEREF _Toc105644911 h 13基于JSP的在线投票系统摘 要 阐述JSP发展和在Web设计中的优势及一些基本的设计技术,论述了JavaBean的发展起因、实际作用和开发技术。分析了JDBC特性及数据库访问技术,重点讲述数据库SQL Server2000的配置、使用和JSP与其的连接。最后详细介绍了基于JSP的在线投票系统的开发过程,当中详细介绍相关的环境配置,系统的结构设计及各部分功能设置。关键字 JSP JavaBean JDBC一 引言 随着信息时代的到来,我们所生活的社会中需要各种各样的信息,网络的出现使得信息的交流更加快捷和方

7、便,使用网络的人日益增加,网络已经在的日常生活不可或缺。人们也不再满足于以往的纯文本的Web页面,人们需要更加具有娱乐性的Web,很快一些新技术(Flash和ActiveX等)和新型脚本描述语言(VBScript和JavaScript等)开始使用。然而这个些语言和工具带给人们感官上的满足无法取代Java的优势:平台的独立性。Java语言的突出优势也被用在创建Web页面,使得JSP技术出现并逐渐流行。可以预想到,JSP必定会成为Web页面开发的主流技术。因此,我们需要对JSP技术做一定的了解,学习一些简单的JSP技术,如JSP的开发技术、JavaBean的开发技术、JSP中数据库的使用等。本课题

8、正是在这种背景下提出来的。二 JSP概述(一)JSP的概念JSP( Java Server Page)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术是在Servlet技术的基础上发展起来的,它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。JSP页面是通过特殊的标记和Java代码进行扩展的HTML形式的Web页面。每一页第一次被调用时,通过JSP引擎自动编译成Servlet,然后每次调用时,执行编译过的Servlet 。JavaServer 引擎抛去特殊的标记和Java源代码,并使用这些代码解析并创建Web服务器要发送的页面,

9、实际上Java代码并不发送到客户机端,因此任意安装了Java环境或没有安装Java环境的Web浏览器都可以使用JSP应用。JSP页面实际上在具有Java环境的Web服务器上被编译成Servlet。因此,为了使用JSP页面,Web服务器必须安装JavaServer引擎。服务器Server浏览器Client JSP数据库请求调用请求回传图2-1 JSP的运行模式服务器端的Java出现得比较晚,Servlet 是在Java 1.2版本时应用的。Servlet是只能在具有Java的Web服务器上Servlet容器上运行的一种Java程序。Servlet container是一种能够安装Servlet和

10、JSP服务器Server浏览器Client JSP数据库请求调用请求回传图2-1 JSP的运行模式JSP放置在Web服务器上,它在解析使用者由表单传送过来的字段数据后,接着通过适当的逻辑生成标准的HTML文件,然后传给客户端,使用者看到的是一般符合HTML格式的文件内容1。(二)JSP的优点1. JSP具有平台无关性。JSP作为Java平台的一部分。拥有Java编程语言的“一次编写,随处可用”特点,因此具有良好的移植性。2. 强调可重用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans TM组件)来执行应用程序所要求的更为复杂

11、的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程。 3. 具有Java语言所有的优点。通过允许开发者使用和集成完成测试过的Java代码,JSP提供服务的稳定性,由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。4. JSP鼓励应用的表示层和数据层之间明显的分界线。使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面

12、上的动态内容,其生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。这有助于作者既保护自己的代码,又保证任何基于HTML的Web浏览器的完全可用性。5. JSP与J2EE服务的无缝集成,增强了扩展体系结构的开发。JavaServer除了提供JSP页面服务外,还提供各种功能和存储器用于创建持续用户会话状态2。(三)JSP的使用JSP的结构由注释、指令、脚本元素和动作组成。1. JSP的注释在JSP的注释中,分为隐藏注释和HTML注释,它们的区别在于后者会被发送到可户端,注释的内容会传到浏览器。HTML注释的使用方法:;隐藏注释的使用方法:;2. J

13、SP的指令 JSP中的指令包括、。include指令是在JSP中包含一个静态文件,同时解析这个文件中的JSP语句,include的使用方法是;page指令是定义JSP文件中的全局属性,作用于整个JSP页面,包括静态的包含文件。page指令的使用方法taglib指令是用来调用标记库中的自定义动作,使用方法3. JSP的脚本元素JSP的脚本元素包括声明、表达式、脚本小程序。在JSP中要使用变量和方法必须先声明,使用方法是;表达式的作用是在表达式标签处显示表达式的运行结果。使用方法;脚本小程序是在JSP文件中直接编写Java程序,使用方法是;4JSP的动作JSP的动作包括标准动作和自定义动作,其中标

14、准动作常用的有jsp:useBean、jsp:setProperty、jsp:getProperty、jsp:include、jsp:forward、jsp:param等。三 JavaBean简介 (一)JavaBean的概念JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象。把它组织成为数据包(Package)以便进行管理。JavaBeans和ActiveX控件一样,可以通过封装业务逻辑建立一整套可以重复利用的对象库。在JSP的开发中往往把大段的代码放在脚本片段(Scriptlet)内,但是绝大多数的Java代码属于可重复使用的,因此可以把这些重复的代

15、码作为JavaBeans的组件。JavaBeans是JSP组件技术的核心。JavaBeans必须满足一定的命名约定。这些约定由Sun和其他几个大公司制定,称为JavaBeans API。只要遵守JavaBeans API的命名约定,就可以开发出可重用的、独立的Java组件。在JSP中,使用bean标签集合,内容开发者不需要编写任何代码就能利用Java强大的功能为页面添加动态元素。(二)JavaBean的优点在开发方面,JavaBeans实现了复杂功能的扩充,而且与在ASP中实现同样功能的COM相比较,具有简单、易学、易用等特点。在维护方面,JavaBeans不需要注册,只要放在CLASSPAT

16、H包含的目录中就行了,现在JavaBeans进行了修改,虽然JSDWK和Tomcat还需要关闭和重新运行,但是开发者承诺在今后的版本中做到不需要关闭服务器。JSP对于在Web应用中集成JavaBean组件提供了完善的支持,这种支持不仅能缩短开发时间,避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责于数据库的交互及数据库提取等。JavaBeans是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库。利用跨平台运行的JavaBean组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。(三)JavaBean的使用1

17、JavaBean的编写和使用 在Java编程环境中编写程序。如下例: package packagename public class classname element1type element1; public classname ( ) public void setProperty(element1type p1) this. property1=p1; public element1type getProperty( ) return (perty1); 因为JavaBean中的Java程序都是放置在相应的数据包(Package)中,所以在程序的开始部分应该声明程序所

18、在的数据包,在编译成功后,将程序放置在TomcatPath webappsROOTWEB-INFclasses目录下的数据包文件夹中。这样这个JavaBean的程序就可以在JSP页面中它使用进行调用。在这个语句当中,是JSP页面调用JavaBeans的关键语句,跟有3个属性,id表示class类在该页面中的名字,class属性是由数据包名和类名联合组成, 用. 符号连接。scope属性是Bean存在的范围以及id变量名的有效范围,它有下列四种取值。page:能在包含元素的JSP文件以及此文件中的所有静态包含文件中使用Beans,直到页面执行完毕向客户端发回响应或转到另外一个文件为止,它是默认值

19、。request:在任何执行相同请求的JSP文件中使用Beans,直到页面执行完毕向客户端发回响应或转到另一个文件为止。session:从创建Beans开始,能够在任何使用相同Session的JSP文件使用Bean。这个Beans存在于整个Session生存周期内,任何在分享此Session的JSP文件都能使用同一Beans。定位对象定义脚本变量提供了类?Instantiation Exception向对象指定脚本变量示例对象示例 对象创建 了对象处理标记主体(如果有)是是否否否是否是图3-1 定位对象定义脚本变量提供了类?Instantiation Exception向对象指定脚本变量示例对

20、象示例 对象创建 了对象处理标记主体(如果有)是是否否否是否是图3-1 JavaBean处理流程图2.处理流程(图3-1)先搜索具有给定id和scope的现有对象,使用指定的type(如果指定了类型)或者指定的类(如果没有指定类型)在当前Java作用域中定义一个使用指定id的Java变量。如果找到了对象,在当前Java作用域中将一个Java变量初始化为这个对象的引用。通过类型属性或者根据类属性按指定形式强制转换引用。如果强制转换失败,则将抛出一个ClassCastException,忽略任何标记主体。完成当前标记的处理。如果没有找到具有指定id和作用域的对象,也没有指定class和beanNa

21、me属性,则将抛出一个InstantiationException,这样完成了当前标记的处理。如果没有找到具体指定id和作用域的对象,并且提供类属性,则将尝试例示指定的类。如果示例成功,则使用指定的id在指定的作用域中定义一个引用该对象的脚本变量。如果示例失败,则将抛出InstantiationException。如果没有找到具体指定id和作用域的对象,并且提供了beanName属性,则将调用方法,将服务器小程序使用的ClassLoader和beanName属性作为参数传递。如果方法成功,则将使用指定的id在指定的作用域中定义引用这个对象的脚本变量。如果示例失败则将抛出Instantiatio

22、nException。如果元素具有非空白的标记主题,则处理这个主体。可以在主体的作用域中使用脚本变量。计算模板文本(静态文本和HTML)、小脚本和操作。这就完成当前标记的处理。四 JSP的数据库访问技术(一)JDBC概述JDBC是执行SQL语句的Java API。JDBC本身是一个产品的商标名。相对与ODBC(Open Database Connectivity开放数据库连接),也可以把JDBC看作“Java Database Connectivity (Java数据库连接)”。它由一组用Java语言编写的类与接口组成。JDBC已成为一种供工具/数据库开发者使用的标准API,用户可以用纯Jav

23、a API来编写数据库应用。使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。用户不需要为每一个关系数据库单独写一个程序。用JDBC API写出唯一的程序,能够将SQL语句发送到相应的任何一种数据库。Java与JDBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。由于Java语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点,因此,它是数据库应用的一个极好的基础语言。现在需要找到一种能使Java应用与各种不同数据库对话的方式,而JDBC正是实现这种对话的一种机制。JDBC扩充了Java的应用范围。随着学习Java程序设计的人越来越多,对Java的

24、数据库的访问需求会越来越迫切。MIS管理员希望Java与JDBC结合,因为这有助于更容易、更经济地发布企业信息。而各个公司可以不断地使用已安装的数据库,方便地存取信息,不必顾及这些数据库是在何种DBMS系统下存储的。有助于缩短新应用的开发时间,并可大大简化数据库的安装与版本控制。另外,在商业销售信息服务领域,Java与JDBC则可以更好地向外界客户提供最新信息4。(二)JDBC的结构JDBC结构需要提供适配器。通过使用专用的协议和API实现一个标准的Java接口,JDBC驱动程序使应用程序适应开发商DBMS。由图4-1可以看到,JDBC支持4种类型的驱动程序:第1类用于访问ODBC(开放式数据

25、库连接)驱动程序;第2类用于将JDBC调用映射到数据库开发商的本机客户端API;第3类用于将JDBC调用映射到一个中间件开发商的协议,然后由一个中间件服务器将这种血衣转换成一个DBMS协议;第4类用于将JDBC调用直接映射到数据库协议;开发人员的角度来看,所有JDBC驱动程序看起来都很相似,因为它们具有相同的接口,开发人员只能访问这个接口。Java应用程序JDBC APIJDBC驱动程序管理器程序程序程序程序ODBC API本机C/C+ DB API本机C/C+ DB APIDB中间件Java应用程序JDBC APIJDBC驱动程序管理器程序程序程序程序ODBC API本机C/C+ DB AP

26、I本机C/C+ DB APIDB中间件ODBC协议DB协议DB协议DB协议图4-1 JDBC结构作为接口的JDBC分为两个层次,一个是面向程序开发人员的JDBC API。另外一个是底层的JDBC Driver API。1. JDBC APIJDBC API 被描述成为一组抽象的Java接口,使得应用程序远可以对某个数据库的连接,执行SQL语句并且处理结果。最重要的接口有: java.sql.DriverManager 处理驱动的调入并且对产生新的数据库连接提供支持。 java.sql.Connection 代表对特定数据库的连接。 java.sql.Statement 代表一个特定的容器,来对

27、一个特定的数据库执行SQL语句。 java.sql.ResultSet 控制对一个特定语句的行数据的存取。其中java.sql.Statement又有两个子类型: java.sql.PreparedStatement 用于执行预编译的SQL语句。 java.sql.CallableStatement 用于执行对一个数据库内嵌过程的调用。2.JDBC API的用途连接服务:包括注册JDBC驱动程序、连接到数据库以及从数据库断开;SQL服务:JDBC支持三种基本的数据库调用,如下:*查询 返回表格式数据结构的调用(SELECT);*数据操作语言(Data Manipulation Language

28、)调用是用于修改数据库表中的数据调用(INSERT、UPDATE和DELETE);*数据操作语言(Data Definition Language)调用是用于建立、修改、修改数据库中的数据表的结构(CREATE TABLE、ALTER TABLE和DELETE TABLE);3种数据库调用都使用对象来指定数据库执行的SQL。结果处理:JDBC支持使用对象的结果处理,ResultSet对象的基本功能是遍历查询结果。下列代码段给出了以上三步的基本示例: Connection con(jdbc:odbc:jsp,login, password); Statement stmt = con.creat

29、eStatement(); ResultSet rs = stmt.executeQuery(SELECT a,b,c FROM TableName); while (rs.next() int x = rs.getInt(a); String s = rs.getString(b); float f = rs.getFloat(c); 在上面的程序中,函数getConnection( )是用于完成与数据源的连接,他的三个参数分别是:URL,用户名,密码。所有的3数据库调用都是使用java.sql.Statement对象来指定数据库执行的SQL,这个对象充当JDBC SQL的容器和传输对象。S

30、tatement对象支持4中执行方法,分别是:executeQuery(用于返回单独一个结果的查询) ,executeUpdate(用于DDL和DML语句),execute(用于可能返回对个结果的查询),execteBatch(用于必须多次更新的数据库调用)。最后从ResultSet检索值。3. JDBC Driver APIJDBC驱动程序分为4 大类:JDBC-ODBC Bridge、Native API Partly Java 、Net Protocol AllJava 及Native Protocol All Java。JDBC-ODBC Bridge 驱动程序:将JDBC 调用转换为

31、ODBC调用。Native API Partly Java 驱动程序:将JDBC 调用转换为针对专用数据库系统的调用,以便与相应的数据库系统,如Oracle 、Informix 或Sybase 等连接。Net Protocol All Java 驱动程序:将JDBC 调用转换成独立于数据库系统的网络协议,再由网络服务器翻译成数据库协议。Native Protocol All Java 驱动程序:将JDBC 调用转换为数据库可直接使用的网络协议,因此客户机可直接访问数据库。(四)JDBC与数据库模型 JDBC API 既支持数据库访问的两层模型,同时也支持三层模型。在两层模型中,Java app

32、let 或应用程序将直接与数据库进行对话。这将需要一个 JDBC 驱动程序来与所访问的特定数据库管理系统进行通讯。用户的 SQL 语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。在三层模型中,命令先是被发送到服务的“中间层”,然后由它将 SQL 语句发送给数据库。数据库对 SQL 语句进行处理并将结果送回到中间层,中间层再将结果送回给用户。可用中间层来控制数据的访问。中间层的另一个好处是,用户可以利用易于使用的高级 API,而中间层将把它转换为相应的低级调用。最后

33、,许多情况下三层结构可提供一些性能上的好处。 通常中间层都用 C 或 C+ 这类语言来编写,这些语言执行速度较快。然而,随着最优化编译器(它把 Java字节代码转换为高效的特定于机器的代码)的引入,用 Java 来实现中间层将变得越来越实际。这将是一个很大的进步,它使人们可以充分利用 Java 的多线程和安全等特征。JDBC 对于从 Java 的中间层来访问数据库非常重要。五 基于JSP的在线投票系统的设计与实现(一)前期准备1安装JSP运行环境 安装和配置先下载并安装Java2的软件开发工具JDK1.5,它是Java应用程序的基础。JSP是基于Java技术的,所以配置JSP环境之前必须要安装

34、J2SDK(JDK)。 将安装到E:JSP目录下,生成和JRE1.5两个文件夹。然后打开 我的电脑属性高级环境变量系统变量,新建JAVA_HOME=E和两个环境变量。安装和配置Tomcat服务器:Apache组织开发的一种JSP引擎,本身具有Web服务器的功能,可以作为独立的Web服务器来使用。下载并安装TomcatE:JSP目录下,生成文件夹。然后添加一个新的环境变量CATALINA_HOME=。这样JSP运行环境基本建立。测试JSP运行环境打开启动,把事先准备好的测试用的JSP页面文件放在E:JSPTomcat5.0webappsROOT目录下,打开IE在地址栏中写入(是一个用于测试配置是

35、否成功的JSP页面),回车后出现正确的测试页面就可以了。最后用E:JSPTomcat5.0binstutdown.bat关闭。2安装MS SQL Server2000下载并安装MS SQL Server2000在E:SQL Server 2000目录下。然后打开“企业管理器”(SQL Server Enterprise Manager)然后进入Microsoft SQL Servers-SQL Server组-local(Windows NT)-数据库,新建一个自己专用数据(MyDB),准备将以后的设计的数据表都放入这个数据库中。3建立数据源 打开系统中的 控制面板-管理工具-数据源(ODBC

36、),在ODBC数据源管理器中选择“系统DSN” 页面(图5-1),点击其中的“添加”,在随后出现的“创建新数据源”对话框(图5-2)从“名称”列表栏中选择“SQL Server”,单击“完成”按钮。 图 5 STYLEREF 1 s 0 SEQ 图 * ARABIC s 1 1 选择要连接数据源的项目 图 5- STYLEREF 1 s 0 SEQ 图 * ARABIC s 1 2 添加新数据源然后出现“建立新的数据源到SQL Server”对话框(图5-3),在服务器栏中选择本地服务器(local)。单击“下一步”,出现选择SQL Server确认身份方法的对话框(图5-4)。选择“使用用户

37、输入登录ID和密码的SQL Server验证” 图 53 数据源名称 图 54 用户ID和密码在“选择数据库”对话框(图5-5)的“改变默认的数据库为”前面加上标记,在下拉列表中选择“MyDB”数据库。在随后的出现的对话框(图5-6)默认值都可不变。 这样JSP就可以通过JDBC-ODBC与先前建立的用户专用数据库MyDB实现连接5。 图 55 选择数据库 图 5-6 选择数据源属性(二)系统结构设计这次设计的是一个基于JSP的在线投票系统,其实在线投票是并不难制作的。但是在大中型的网站中,类似的应用程序是普遍存在和被频繁使用的,所以为了避免经常性的编制烦琐的程序和投票调查的数据有效保存,就要

38、涉及到JavaBean和JSP中数据库的连接、使用。投票系统需要有一个投票页面、选择投票后的处理页面以及提供查看当前的投票统计结果的页面。 因为此次的设计涉及数据库的连接和执行,而且在投票和投票查看涉及到数据库的修改和查询,而且这些都是每个投票系统必备的。所以为了减少以后类似程序的编制负担,把数据库的连接、执行,数据库的修改和数据库的查询分别写成JavaBean的形式。以方便在今后类似的程序中直接调用。1. 数据库文件打开MS SQL Server 2000中的企业管理器,Microsoft SQL Servers-SQL Server组-local(Windows NT)-数据库-MyDB,

39、然后新建数据表vote,数据表vote中的属性是:表 SEQ 表 * ARABIC 1 数据表vote的属性属性名称数据类型大小能否为空vote1Int4否vote2Int4否vote3Int4否vote4Int4否2. JavaBean文件文件是用来进行实现于数据库的连接和执行生成的SQL语句的。实现这两个功能的方法分别是:public void DataBaseConnection( ); public ResultSet execute(String sql);文件是用来对实现在用户投票之后进行对数据库中的投票数据进 行更新的,实现这一功能的方法是:public void devote(

40、int i);文件是用来提供客户查看当前投票统计结果时,对数据库中数据进行提取的功能。实现这一功能的方法是:public void votesee( );在线投票系统JSP页面文件JavaBean文件辅助文件数据库文件在线投票系统JSP页面文件JavaBean文件辅助文件数据库文件数据表vote图5-7 投票系统的结构3. JSP页面文件文件是用户进行投票操作的页面。文件是用来提取客户的选项,并实例化JavaBean 修改数据库中的数据,并给予投票成功的提示。文件是用来显示当前投票结果的,将实例化 JavaBean 查询数据库中的数据,做适当的处理后以条形棒的形式显示结果。以上三个文件放入E:

41、JSPTomcat5.0webappsROOT目录下的vote 文件夹中。(三)JavaBean程序的详细设计和实现前面的系统结构设计中已经设计需要三个JavaBean程序。1文件在文件中设计有两个方法。方法DataBaseConnection()是用来注册驱动程序的,当中使用到 ()方法。当然其中的参数依据驱动的不同而相应不同方法excute( )则是在方法DataBaseConnection的基础上连接数据数据库并且执行上传来的SQL语句,完成数据库的操作。2文件在这个文件中只设计了方法vote()。需要声明一个字符串数组(String votename ),它的值对应着数据库中存储投票数

42、量的数据表(vote)的各个字段的名称,这样就可以自动生成SQL语句,正确的修改用户所投选项在数据库中的记录数据。生成的SQL语句:String sql=update+tablename+set+votenamei+=+votenamei +1;字符串数组中的值(即字段名称)将会在JSP文件中赋予,这样这个vote.java文件将可以被任何的投票程序调用,进行投票数的修改。从而体现JavaBean的一次编写,任意使用的优点。3文件在文件see.java中只设计了一个简单的方法votesee(),它是用于提取数据库中各个投票选项当前的投票记录。然后赋值给数组voteNum,voteNum将会在J

43、SP文件中被调用,实现投票结果显示棒的长度设置。(四)JSP文件的详细设计和实现1vo在这个文件中声明一个名为cost的单选按钮组构成,将在用户点击“确定”按钮后,调用devote.jsp文件,cost成为其的参数,从而实现数据库的修改。cw( ),将在用户点击“查看”按钮之后调用see.jsp程序,弹出显示投票结果的界面。将用到方法window.open()。脚本程序的定义:function cw() window.open(see.jsp,MyWindow); 脚本程序的使用:这个文件使用,将把JavaBean 程序devote实例化,vote是实例化之后的名称,用从vote.jsp 中接

44、收来的参数cost,调用devote中vote( )方法的进行数据库中数据的修改。 String cost=request.getParameter(cost);vote.vote(Integer.parseInt(cost);这个文件使用,将把JavaBean 程序see实例化,vote是实例化之后的名称,调用see中votesee()方法的提取数据库中的数据,从而为数组voteNum赋值。然后统计全部选票,计算各个选项的所占的比例。存入数组voteFlo中。这些以声名的形式存在于文件中。% int total=0;float voteFlo=new float4;vote.votesee(

45、);for(int i=0;i在投票结果的显示条中,调用图片文件red.gif,用数组voteFlo中的数值控制其宽度。从而达到理想的显示效果。 至此在线投票系统的结构设计和文件的详细设计都已经完成。(五)运行效果图 用户在启动Tomcat之后,在地址栏输入,就可以进入用户界面(图5-8),此界面显示投票的内容,设计的是一个对电脑价位调查的投票,共有四个选项,默认的是第四个选项。如果想查看当前的投票情况,可以直接点击“查看”按钮,这时将会有一个显示投票结果情况的弹出框(图5-9)出现。弹出框用红色显示条的长度显示投票结果,每个显示条后边跟有选票数目。 图 58 vote.jsp运行效果图 图

46、59 效果图当用户选择一个选项之后点击“投票”按钮即可,投票成功后会显示感谢投票的提示框(图5-10)。图 510 devote.jsp效果图六 结论此次毕业设计,通过对JSP认真学习使我对网页编程有了基本的了解,特别使用Java语言开发动态网页上,充分感受到Java编程的优势无处不在,尤其是在在学习JSP的精髓部分JavaBean时,这种可重用的、跨平台的组件使得用JSP编写网页更加便捷,加快了开发过程,真正的认识到Java编程“一次编写,各处使用”的特点。在JSP使用数据库方面,简单的学习了SQL Server 2000,在与数据库连接方面做了相应的了解,在于其它的网页编程技术相比感觉到J

47、SP连接数据库方面的简单易用。结合JavaBean技术更可以使得JSP与数据库的连接成为非常容易的事情,同时也形成了分布式的三层(表示逻辑层、应用逻辑层、数据库)数据库系统。可以预料JSP今后必将成为网页开发的主流技术。但是因为接触JSP技术不久和对网页编程知识和技巧的欠缺,在网页的美工方面显得非常简单,而且在控制重复投票方面没有能够提供很好的解决方案,存在漏洞。这些都是在今后的学习和编程上需要注意和改进的地方。参考文献1 Todd Cook (美).JSP从入门到精通(原名Mastering JSP).北京:电子工业出版社,2003 . 1138,1652012 姜晓铭,刘波,张亦华.JSP

48、程序设计精彩实例.北京:清华大学出版社,2001.187,1251873 汪孝宜,刘中兵,徐佳晶.JSP数据库开发实例精粹.北京:电子工业出版社,2005. 1884 Gary Bollinger.JSP程序设计指南.北京:清华大学出版社,2002.144165,3413555 Jeffrey R.Shapiro. SQL Server 2000参考大全.北京:清华大学出版社,2002.147,1051456吴其庆.JSP编程思想与实践.北京:冶金工业出版社,2003.7黄维晋,盛浩.精通JSP网站架构与实例.北京:大恒电子出版社,2002.8Ashton Hobbs.自学JDBC 数据库编程

49、.北京:清华大学出版社, 1998. 27 29.9印旻.Java语言与面向对象程序设计.北京:清华大学出版社,2000.286.11Jayson Falkner,Ben Galbraith. JSP Web编程指南.北京:电子工业出版社,2002.附录:源代码(一)JavaBean程序:1.package vote;import java.sql.*;public class DataBaseConnection public Connection conn;public Statement stmt;public ResultSet rs=null;String sDBDriver=sun

50、.jdbc.odbc.JdbcOdbcDriver;String sConnStr=jdbc:odbc:JSP;public DataBaseConnection() try Class.forName(sDBDriver); catch(java.lang.ClassNotFoundException e) System.err.println(opendb():+e.getMessage(); public ResultSet execute(String sql) rs=null; try conn=DriverManager.getConnection(sConnStr ,sa,830608); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); catch(SQLException ex)

温馨提示

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

评论

0/150

提交评论