最新基于JSP的网上投票系统的研究以及实现.docx
《最新基于JSP的网上投票系统的研究以及实现.docx》由会员分享,可在线阅读,更多相关《最新基于JSP的网上投票系统的研究以及实现.docx(38页珍藏版)》请在冰豆网上搜索。
最新基于JSP的网上投票系统的研究以及实现
X="计算机等级考试"
【答案】
A.工资的最大值B.工资的最小值
C.将恢复所有被逻辑删除的记录D.只能恢复被物理删除的当前记录
A、5个网段B、4个中继器C、3个网段可挂接设备D、5个网段可挂接
每个子网的网络号和主机范围如下:
IF班级号="1002"
【答案】DISTINCT
C.DOQUERYzgjk.qprD.CREATEQUERYzgjk.qpr
?
str(n)+"的大写汉字为叁"基于JSP的网上投票系统的研究与实现
摘要
信息时代的今天,人们对信息的需求越来越多,各类调查也越来越普遍。
传统的问卷调查,编写、打印、分发、填写、收集再统计,手续繁琐耗费人力,还受到地域的限制。
随着互联网的发展,网络投票应势而生,它不受地域限制,不管你在哪里,什么时间,只要有一台连网电脑,你就可以参与投票。
不仅用户可以方便的投票,管理者也可以方便的收集投票并通过数据库迅速的看到投票统计结果。
本系统采用JSP语言开发,用Mysql做为后台数据库,它集投票、统计和管理功能于一体,记录用户所投选项,更新数据库,能够显示投票结果,并即时更新。
投票的票数以数字和图形两种形式显示。
管理员模块能够增加、修改和删除投票主题、投票标题和投票各选项,是否禁止重复投票,可以方便地实现网络投票管理。
网络投票系统大大节省了人力物力,使投票调查更高效、更快捷。
关键词:
数据库,JSP,Mysql
1绪论
1.1背景
如今很多的服务行业都要进行服务的反馈,以便更好的提高产品的质量和作出更好的服务,投票系统就是一个反馈信息的软件,通过它可以更好更快捷方便的反馈信息共服务商参考。
因此开发一个能够供客户反馈信息的平台是很有必要的。
(1)方便的操作。
原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。
(2)友好的界面。
友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。
在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。
决策者通过这些统计数据做出相应的决策。
在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。
1.2JSP简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
JSP内置对象:
(1)request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
(2)response对象:
对客户的请求做出动态的响应,向客户端发送数据。
(3)session对象
session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
session对象的ID:
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。
同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。
(4)application对象
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。
但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
application对象常用方法:
1)publicvoidsetAttribute(Stringkey,Objectobj):
将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
2)publicObjectgetAttribute(Stringkey):
获取application对象中含有关键字的对象。
(5)out对象
out对象是一个输出流,用来向客户端输出数据。
out对象用于各种数据的输出。
(6)pagejava.lang.Object
对应this关键字。
JSP网页本身,page对象是当前页面转换后的Servlet类的实例。
从转换后的Servlet类的代码中,可以看到这种关系:
Objectpage=this;在JSP页面中,很少使用page对象。
(7)config
Java.jspvalidator相关的错误
常用的方法有getInitParameter(StringparamNarne)及getInitParameternarnes()等方法。
事实上,JSP页面通常无须配置,也就不存在配置信息。
因此,该对象更多地在Servlet中有效。
(8)exception
java.lang.Throwable的实例,该实例代表其他页面中的异常和错误。
只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,该对象才可以使用。
常用的方法有getMessage()和printStackTrace()等。
(9)pageContext
javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。
常用的方法有getServletContext()和getServletConfig()等。
1.3概述
在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。
决策者通过这些统计数据做出相应的决策。
在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。
他可以设计这样一个投票主题:
你认为该网站如何?
(A.很好B.一般C.不好)然后提供给用户进行投票。
我的投票系统具有极大的灵活性,投票类型分为单选投票和多选投票。
管理员可以在线设计不同的投票主题供用户进行投票。
对于该设计报告还有什么不当之处请见谅,同时也希望你能多提宝贵意见。
我会认真参考您的意见,修改和完善该系统。
术语列表:
JSP:
(JavaServerPages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。
JDBC:
(JavaDataBaseConnectivity),Java数据库连接。
它主要是一套让你访问数据库的API,程序人员可以利用JDBCAPI来执行SQL语句。
Servlet:
Servlet可以称之为“服务器小程序”,与Javaapplication不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。
通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML页进行交互。
MVC:
包含三个基础部分:
Model、View和Controller,这三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性。
各个部分的实现技术可以总结如下:
Model:
(1)JavaBean、EJB的EntityBean
(2)View:
JSP、Struts的TagLib
(3)Controller:
Struts的ActionServlet、Action
概括起来MVC的优点主要有一下方面:
1)多个视图可以对应一个模型。
按MVC设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护
2)模型返回的数据与显示逻辑分离。
模型数据可以应用任何的显示技术,例如,使用JSP页面、Velocity模板或者直接产生Excel文档等
3)应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性
4)控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。
因此,控制层可以说是包含了用户请求权限的概念
5)MVC更符合软件工程化管理的精神。
不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码
对于MVC的概念性的东西也就废话到此,其关键的地方就是各个模块的实现技术分别是什么。
Struts2:
Struts2是从Struts1发展而来,但实际上Struts2与Struts1在框架的设计思想上面还是有很大的区别,Struts2是以WebWork的设计思想为核心,Struts2之所以以WebWork的设计思想为其核心,一点就是最近WebWork的上升势头,再就是WebWork没有Struts1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。
Struts2的简单处理流程如下:
浏览器发送请求
1)中心处理器根据struts.xml文件查找对应的处理请求的Action类
2)WebWork的拦截器链自动对请求应用通用功能,例如:
WorkFlow、Validation等功能
3)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Execute方法来处理用户请求
4)将Action类中的对应方法返回的结果响应给浏览器
JavaBeans:
JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。
应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程