毕业论文--基于JSP的旅游管理系统设计与实现

毕业论文--基于JSP的旅游管理系统设计与实现

ID:35896824

大小:1.05 MB

页数:53页

时间:2019-04-22

上传者:U-9364
毕业论文--基于JSP的旅游管理系统设计与实现_第1页
毕业论文--基于JSP的旅游管理系统设计与实现_第2页
毕业论文--基于JSP的旅游管理系统设计与实现_第3页
毕业论文--基于JSP的旅游管理系统设计与实现_第4页
毕业论文--基于JSP的旅游管理系统设计与实现_第5页
资源描述:

《毕业论文--基于JSP的旅游管理系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

太原理工大学毕业设计(论文)用纸摘要随着科技的迅速发展,计算机技术已应用到社会的各个领域。随着计算机技术和通信技术的迅速发展,网络的规模也逐渐增大,网络的元素也随之不断增加,有的利用其通信,有的利用其商业用途,在网络上进行出售、收购、宣传等操作,从而使得网络越来越成为现今社会上必不可少的元素,而网站就是这个网络里很庞大的元素。通过旅游信息网这个平台,可以使用户足不出户就可以了解旅游信息,避免他们盲目的寻找旅游景点和旅游线路等。系统的主要功能包括:旅游景点管理、旅游路线管理、在线预订旅游路线、网站论坛、网站公告管理等。分为管理员用户、会员用户这二种用户平台。本系统前台主要使用JSP作为开发语言,后台使用SqlServer2012作为数据库管理系统,开发环境是MyEclipse8.5,服务器采用tomcat6.0,开发出的一个基于Web技术的B/S结构的旅游网系统。关键词:旅游网,JSP,B/S结构49 太原理工大学毕业设计(论文)用纸DesignandimplementationoftourismmanagementsystembasedonJSPABSTRACTWiththerapiddevelopmentofscienceandtechnology,thecomputertechnologyhasbeenappliedtoeachfieldofthesociety.Withtherapiddevelopmentofcomputertechnologyandcommunicationtechnology,thesizeofthenetworkincreases,networkelementsarealsoincreasing,someusetheircommunication,andsomeuseitforcommercialuse,sale,purchase,publicityandotheroperationsinthenetwork,sothatthenetworkisincreasinglybecominganessentialelementofmodernsociety,andthewebsiteisverylargeinthenetworkelements.Throughtheplatformoftourisminformationnetwork,userscanremainwithindoorscangettravelinformation,avoidblindblindsearchfortouristattractionsandtouristroutes.Themainfunctionsofthesysteminclude:management,touristattractionstourismmanagement,onlinebookingtravelroute,webforums,bulletinmanagementwebsite.Asadministrator,membersoftheusertothetwouserplatform.ThefrontofthesystemusingJSPasthedevelopmentlanguage,theuseofSqlServer2012asadatabasemanagementsystem,thedevelopmentenvironmentisMyEclipse8.5,theserverusestomcat6.0,adevelopedtourismnetworksystembasedonB/SstructureofWebtechnology.Keywords:TourismNetwork,JSP,B/Sstructure49 太原理工大学毕业设计(论文)用纸目录摘要iABSTRACTii目录iii第1章绪论11.1课题背景11.2目的和意义11.3开发工具及技术11.3.1开发工具11.3.2JSP21.3.3JavaScript31.4软硬件需求3第2章需求分析52.1可行性分析52.1.1技术的可行性52.1.2经济的可行性52.1.3操作可行性52.1.4法律的可行性52.2系统用户用例图52.2.1普通用户用例图52.2.2管理员用例图62.3功能模块需求分析72.4设计的基本思想82.5性能需求82.5.1系统的安全性82.5.2数据的完整性82.6界面需求8第3章系统分析与设计103.1数据库的分析与设计103.1.1数据库的概念结构设计103.1.2数据库的逻辑结构设计123.1.3数据库的连接原理143.2中文乱码问题处理15第4章系统功能实现174.1管理员登陆页面174.2管理员模块184.2.1旅游景点管理194.2.2旅游线路管理224.2.3会员信息管理244.2.4系统公告管理264.2.5退出系统2649 太原理工大学毕业设计(论文)用纸4.3普通用户模块274.3.1系统主页面实现274.3.2旅游景点查询274.3.3用户注册28第5章系统测试295.1系统测试目的与意义295.2测试过程295.2.1主页面的登录模块测试295.3其他错误30结论31参考文献32致谢33附录34译文资料44中文译文5149 太原理工大学毕业设计(论文)用纸第一章绪论1.1课题背景计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,随处都可以看到种类繁多的信息管理系统,比如,企业办公化自动管理系统,电子商务系统等等。随着信息技术的日益发展已深入到社会的各个角落,网站系统也不例外,所谓网站,就是指在国际网络上,根据一定的规则,使用html等工具制作的用户展示特定内容的相关网页的集合,简单的说。网站就是一种通信工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的咨询,或者利用网络来提供相关的网络服务,人们可以通过网页浏览器来访问网站,获取自己需要的咨询(信息)或者享受网络服务。随着人们生活水平的提高,旅游行业的不断发展,旅游已经成为人们生活中不可分割的一部分,旅游业已成为当今世界上发展势头最强劲的产业,它是集吃、住、行、游、购、娱六大要素的一个综合性产业,此外,旅游活动涉及到众多的服务设施和旅游资源,其信息有着丰富的空间和时间的内涵,同时由于旅游过程是一个受人为、自然等多种因素制约的复杂的过程,如何使游客在很短的时间内,能够及时地查找到所要旅游目的地的信息,是游客所关心的问题,更是旅游部门要解决的问题。1.2目的和意义此系统开发主要为了满足用户的需要,为用户提供方便。此系统用MVC架构,系统主要包括旅游景点展示、旅游线路预订、用户论坛、景点查询等模块。此系统为旅游公司人员提供更方便、快捷的工作环境,又可以通过网络使客户更方便、快捷的报名参加旅游项目,以节省公司人员和游客双方的时间,提高工作效率。1.3开发工具及技术1.3.1开发工具此次设计主要采用MyEclipse8.5加Tomcat6.0后台服务器进行,设计过程中页面主要使用JSP技术完成,下面对MyEclipse8.5、Tomcat6.0和SqlServer2012数据库进行简要介绍。1.MyEclipse8.5MyEclipse8.5,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse8.5的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse8.5企业级工作平台(MyEclipse8.5EnterpriseWorkbench,简称MyEclipse8.5)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,SQL,Hibernate。2.Tomcat6.049 太原理工大学毕业设计(论文)用纸Tomcat6.0是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat6.0部分是Apache服务器的扩展,但它是独立运行的,所以当运行tomcat6.0时,它实际上作为一个与Apache独立的进程单独运行的。3.SqlServer2012SqlServer2012使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分利用CPU资源;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;可以处理拥有上千万条记录的大型数据库。对于一般的个人使用者和中小型企业来说,SqlServer2012提供的功能已经绰绰有余,而且由于SqlServer2012是开放源码软件,因此可以大大降低总体拥有成本。1.3.2JSPJSP技术使用Java编程语言编写类XML的tags和Scriltlets,来封装产生动态网页的处理逻辑。网页还能通过tags和Scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。内部对象说明:request客户端请求,此请求会包含来自GET/POST请求的参数;response 网页传回客户端的响应;pageContext网页的属性是在这里管理;session与请求有关的会话;applicationservlet正在执行的内容;out用来传送响应的输49 太原理工大学毕业设计(论文)用纸出流;config代码片段配置对象;pageJSP网页本身;exception针对错误网页,未捕捉的例外。1.3.3JavaScriptJavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用JavaScript可以开发交互式Web网页。JavaScript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了JavaScript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。1.4软硬件需求硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:WindowsXP/vista/Win7开发工具:MyEclipse8.5后台服务器:ApacheTomcat6.5开发语言:Java浏览器:IE8.049 太原理工大学毕业设计(论文)用纸第二章需求分析2.1可行性分析开发任何一个系统,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。下面就技术、经济、操作和法律四个方面来介绍。2.1.1技术的可行性本系统开发工具是MyEclipse8.5和SqlServer2012数据库,开发语言是Java,主要使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。大三时就学习了java课程,本系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过软件工程,软件测试,UML统一建模语言等课程,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。2.1.2经济的可行性本系统所用的软件都是开源的,为开发软件节省了大量的金钱和时间,达到降低成本,提高开发效率的目的,本系统对计算机配置的要求不高,甚至网吧更换下来的低配置电脑都可以完全满足需要,所以在经济上具有完全的可行性。2.1.3操作可行性本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。2.1.4法律的可行性此旅游信息网是自行开发的网络系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。2.2系统用户用例图2.2.1普通用户用例图出于安全性的考虑,普通用户只有浏览旅游景点和浏览旅游线路、线路预订等功能,其他的删除修改功能都没有设计,因为普通用户最主要关心的就是旅游景点的更新和旅游线路的查询等功能,普通用户用例图如图2.1所示。49 太原理工大学毕业设计(论文)用纸图2.1普通用户用例图2.2.2管理员用例图管理员是系统的核心用户,涉及到七大功能模块,管理员对系统的所有用户有着操作的权限,能够及时动态的更新系统的各项信息。管理员用例图如图2.2所示。图2.2管理员用例图2.3功能模块需求分析本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示(2)管理员用户具有旅游景点管理、旅游线路管理、会员管理管理,线路预订管理、系统公告管理、修改个人密码等功能(3)普通用户用户具有浏览旅游景点、旅游线路预订、在线注册、论坛发帖留言49 太原理工大学毕业设计(论文)用纸等功能(4)具有较强的安全性,避免用户的恶意操作系统的功能结构图,分普通用户平台,管理员平台。其功能结构分别如图2.3和图2.4所示。2.3普通用户功能模块图图2.4管理员用户功能模块图2.4设计的基本思想设计思想遵循以下几点:1.采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页搜索方式的用户。2.采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。3.采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代49 太原理工大学毕业设计(论文)用纸码的重载,简化设计和实现过程。4.简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。5.速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。6.设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。2.5性能需求2.5.1系统的安全性本旅游网系统在管理权限上要严格进行控制,具体要求如下:1.要想管理本系统的景点信息、线路信息,必须先要凭用户名和密码登陆到系统中,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。2.在具体实现中设定不同权限,不同权限用户登录到系统后,不能越级操作,管理员可以使使用所有模块;普通用户用户只能在线浏览信息,比如,查询景点信息、浏览线路信息、预订线路等功能。2.5.2数据的完整性1.各种记录信息的完整性,信息记录内容不能为空。2.各种数据间相互联系的正确性。3.相同数据在不同记录中的一致性。2.6界面需求界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。1.输出设计输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。2.输入设计输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。输入设计的原则有如下几点:49 太原理工大学毕业设计(论文)用纸1)输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少。2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误49 太原理工大学毕业设计(论文)用纸第三章系统分析与设计3.1数据库的分析与设计计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库的设计一般经过规划。需求分析、概念设计、逻辑设计、物理设计5个步骤。3.1.1数据库的概念结构设计概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,最后对集成的结构分析优化得到最后结果。数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。(1)普通用户实体E-R图如图3.1所示。性别姓名年龄密码联系方式用户名普通用户图3.1普通用户E-R图49 太原理工大学毕业设计(论文)用纸(2)旅游景点实体E-R图如图3.2所示。门票景点介绍地址景点图片景点名称旅游景点图3.2旅游景点信息实体E-R图(3)旅游线路信息E-R图如图3.3所示。价格联系人联系电话发团地点发团时间发布时间名称旅游线路图3.3旅游线路信息实体E-R图(4)公告信息E-R图如图3.4所示。公告内容发布时间公告标题公告信息图3.4公告信息实体E-R图49 太原理工大学毕业设计(论文)用纸(5)管理员信息E-R图如图3.5所示。登陆账号登陆密码用户ID管理员图3.5管理员信息实体E-R图(6)论坛帖子信息E-R图如图3.6所示。内容发布时间标题论坛帖子图3.6论坛帖子信息实体E-R图3.1.2数据库的逻辑结构设计我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。*所有的主键必须定义非空(NOTNULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,普通用户公寓管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。(1)普通用户表主要是记录了普通用户基本信息。表结构如表3.1所示。表3.1普通用户表(t_user)列名数据类型长度允许空是否主键说明user_idInt4否是用户IDuser_namevarchar50否否用户名user_pwvarchar50否否用户密码user_realnamevarchar50否否姓名49 太原理工大学毕业设计(论文)用纸user_addressvarchar50否否住址user_sexvarchar50否否性别user_telvarchar20否否联系方式user_emailvarchar20否否电子邮箱(2)旅游景点信息表主要是记录了旅游景点的基本信息,表结构如表3.2所示。表3.2旅游景点信息表(t_jingdian)列名数据类型长度允许空是否主键说明IdInt4否是景点IDNameVarchar50否否景点名称DizhiVarchar50否否地址MenpiaoVarchar50否否门票价格JieshaoVarchar50否否简单介绍FujianVarchar50否否景点图片(3)旅游线路信息表主要是旅游线路的相关信息,其中ID是主键,表结构如表3.3所示。表3.3旅游线路信息表(t_xianlu)列名数据类型长度允许空是否主键说明IdInt4否是线路IDxianluminchengvarchar50否否线路名称fatuandidianvarchar50否否发团地点fatuanshiianvarchar50否否发团时间xianlujiagevarchar50否否价格lianxidianhuavarchar50否否联系人lianxidianhuavarchar50否否联系电话fabushijianDate50否否发布时间(4)公告信息表记录了管理员发布的系统公告基本信息,表结构如表3.4所示。表3.4公告信息表(t_gonggao)列名数据类型长度允许空是否主键说明gonggao_idInt4否是公告IDgonggao_titleVarchar50否否公告标题gonggao_contentVarchar50否否公告内容gonggao_dataVarchar50否否发布日期(5)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如49 太原理工大学毕业设计(论文)用纸表3.5所示。表3.5管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdInt4否是编号usernameVarchar50否否用户名userPwVarchar50否否密码3.1.3数据库的连接原理采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO,是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3.10所示。封装使用DataSourceDataAccessObjectBusinessObject创建/使用获取/修改DataTransferObject图3.10DAO模式类图图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库,代码如下:publicDBContent(){StringCLASSFORNAME="//连接数据库的驱动Stringurl="jdbc:SqlServer2000://localhost:1433;databaseName=db_bmxx";Stringuser="sa";//连接数据库的用户名Stringpassword="sa";//连接数据库的密码49 太原理工大学毕业设计(论文)用纸try{Class.forName(CLASSFORNAME);con=DriverManager.getConnection(url,user,password);//加载数据库的驱动}}在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。3.2中文乱码问题处理在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。在web.xml中配置:SetCharacterEncodingFiltermyweb.util.filter.SetCharacterEncodingFilterencodinggb2312SetCharacterEncodingFilter/*//*表示工程下所有的页面都会有此过滤器的处理对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:publicvoidinit(FilterConfigfilterConfig)throwsServletException{this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同样定义了DataFormate类来处理字符转换:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串转换成uincode编码*/if(gbStr==null){gbStr="";}}49 太原理工大学毕业设计(论文)用纸第四章系统功能实现在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。4.1管理员登陆页面1.描述:为了保证系统的安全性,要使用本系统必须先登陆到系统中。2.程序运行效果图如图4.1所示:图4.1管理员登陆页面设计3.在登陆页面输入用户名和密码后,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码进行判断,进入到管理界面,如果错误则提示“用户名和密码不正确”,页面调转到登陆页。loginservice关键代码:publicStringlogin(StringuserName,StringuserPw,intuserType){try{Thread.sleep(700);}Stringresult="no";if(userType==0){49 太原理工大学毕业设计(论文)用纸Stringsql="fromTAdminwhereuserName=?anduserPw=?";Object[]con={userName,userPw};ListadminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.size()==0){result="no";}else{WebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();TAdminadmin=(TAdmin)adminList.get(0);session.setAttribute("userType",0);session.setAttribute("admin",admin);result="yes";}}}4.2管理员模块1.描述:管理员主页面:左方页面展示了管理员可操作的七大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。2.程序运行效果图如图4.2所示。图4.2管理员主页面49 太原理工大学毕业设计(论文)用纸在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:if(session.getAttribute("user")==null){out.print("");}4.2.1旅游景点管理1.景点信息录入(1)描述:管理员输入旅游景点相关信息后点击录入按钮,如果是没有输入完整的信息,比如没有输入旅游景点名称,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。(2)程序效果图如图4.3所示。图4.3景点信息录入49 太原理工大学毕业设计(论文)用纸(3)流程图如图4.4所示。登陆系统管理员录入旅游景点信息系统验证旅游景点户信息录入成功结束通过未通过图4.4景点信息录入流程图2.景点信息管理1.描述:管理员点击左侧的菜单“旅游景点管理”,页面跳转到景点管理界面,调用后台的action类查询所有景点信息。2.程序效果图如下图4.5所示。49 太原理工大学毕业设计(论文)用纸图4.5旅游景点信息管理景点管理关键代码:publicStringjingdianAdd(){TJingdianjingdian=newTJingdian();jingdian.setName(name);jingdian.setDizhi(dizhi);jingdian.setMenpiao(menpiao);jingdian.setJieshao(jieshao);jingdianDAO.save(jingdian);this.setMessage("操作成功");this.setPath("jingdianMana.action");return"succeed";}publicStringjingdianMana(){Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("jingdianList",jingdianList);returnActionSupport.SUCCESS;}publicStringjingdianDel(){49 太原理工大学毕业设计(论文)用纸TJingdianjingdian=jingdianDAO.findById(id);jingdian.setDel("yes");jingdianDAO.getHibernateTemplate().update(jingdian);return"succeed";}publicStringjingdianDetailHou(){TJingdianjingdian=jingdianDAO.findById(id);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("jingdian",jingdian);returnActionSupport.SUCCESS;}3.景点信息删除1.描述:先是点击景点信息管理,页面跳转到景点管理界面,浏览所有的景点信息,点击要删除的景点,弹出的确定对话框,即可删除该景点信息。2.程序效果图如下图4.6所示图4.6景点信息删除4.2.2旅游线路管理1.线路信息录入1.描述:在此页面主要是输入线路信息,包括线路名称、发团时间、发团地点、线49 太原理工大学毕业设计(论文)用纸路价格、联系人、联系电话等,其中线路介绍这个地方,使用的是开源的在线文本编辑器fckEditor这个富文本框实现。是否为空也是通过form表单中的onsubmit="returncheckForm()来检查。2.程序效果图如图4.7所示。图4.7线路信息录入3.在整个系统中所有涉及输入日期的地方都是采用的mydata97这个日历控件的方式来实现,要在工程中导入Calendar.js文件,在文本框的属性定义中定义方法onclick="newCalendar().show(this);"即可。2.线路信息管理1.描述:管理员点击左侧的菜单“线路管理”,页面跳转到线路管理界面,调用后台的线路Action类查询出所有的线路信息,绑定到request对象,然后页面跳转到相应的jsp,显示出线路信息。2.程序效果图如下图4.8所示。图4.8线路信息管理页面49 太原理工大学毕业设计(论文)用纸线路管理关键代码:publicStringxianluAdd(){TXianluxianlu=newTXianlu();xianlu.setXianlumincheng(xianlumincheng);xianlu.setFatuandidian(fatuandidian);xianlu.setFatuanshiian(fatuanshiian);xianlu.setXianlujiage(xianlujiage);xianlu.setLianxidianhua(lianxidianhua);xianlu.setDel("no");xianluDAO.save(xianlu);this.setMessage("操作成功");this.setPath("xianluMana.action");return"succeed";}publicStringxianluMana(){Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("xianluList",xianluList);returnActionSupport.SUCCESS;}publicStringxianluDel(){TXianluxianlu=xianluDAO.findById(id);xianlu.setDel("yes");xianluDAO.getHibernateTemplate().update(xianlu);this.setMessage("操作成功");this.setPath("xianluMana.action");return"succeed";}4.2.3会员信息管理1.会员信息管理1.描述:游客访问该站点的时候,可以注册成为会员,管理员登陆后可以管理会员信息,点击左侧的“会员管理“,读取数据库中,提取会员的信息,绑定到request对象,再输出到相应的jsp显示页面页面。2.程序效果图如图4.9所示。49 太原理工大学毕业设计(论文)用纸图4.9会员信息管理会员管理核心代码:publicStringuserReg(){TUseruser=newTUser();user.setUserName(userName);user.setUserPw(userPw);user.setUserAddress(userAddress);user.setUserTel(userTel);user.setUserRealname(userRealname);user.setUserEmail(userEmail);return"successAdd";}publicStringuserEdit(){TUseruser=userDAO.findById(userId);user.setUserName(userName);user.setUserPw(userPw);user.setUserAddress(userAddress);user.setUserTel(userTel);user.setUserRealname(userRealname);user.setUserSex(userSex);Mapsession=ServletActionContext.getContext().getSession();session.put("user",user);return"successAdd";}publicStringuserLogin(){Stringsql="fromTUserwhereuserName=?anduserPw=?";Object[]con={userName,userPw};ListuserList=userDAO.getHibernateTemplate().find(sql,con);49 太原理工大学毕业设计(论文)用纸if(userList.size()==0){this.setMessage("用户名或密码错误");this.setPath("qiantai/default.jsp");}else{Mapsession=ServletActionContext.getContext().getSession();TUseruser=(TUser)userList.get(0);session.put("user",user);this.setPath("qiantai/default.jsp");}return"succeed";}4.2.4系统公告管理1.公告发布1.描述:输入公告的标题和内容点击发布即可。2.程序效果图如图4.10所示。图4.10公告发布3.这里使用到的是从http://java.fckeditor.net网站上面下载的一个在线编辑器。下载相关文件之后导入到webroot文件夹下面,记事本打开ewebeditor.htm文件,将config.ServerExt="asp";改为config.ServerExt="jsp";最后在发布信息页面引入<%@tagliburi="http://java.fckeditor.net"prefix="FCK"%>即可。4.2.5退出系统1.描述:点此按钮回到系统的主页面。2.关键代码:主要是通过javascript语句来实现,item_word[8][4]="退出系统";49 太原理工大学毕业设计(论文)用纸item_link[8][4]="javascript:window.open('../index.jsp','_self')";4.3普通用户模块4.3.1系统主页面实现1.描述:页面的上方显示的是该网站的logo和当前的时间,下方主要部分是信息显示区域,右侧中间部分是通知公告,管理员发布的信息公告都可以在此点击后链接到相应的信息页面查看具体通知公告,右上方是登陆模块,用户必须输入正确的用户名、密码和验证码后才能进入系统,右下方方是一个精美的日立表。2.程序运行效果图如图4.15所示。图4.15系统主页面设计4.3.2旅游景点查询1.描述:在文本框输入旅游景点关键字,点击查询按钮。调用后台的java类jingdianAction查询所有的景点信息,并绑定这些信息到request对象中,在显示层jsp展示出来,然后用户点击景点名称,即可显示该景点的放映信息。2.程序效果图如图4.16所示。49 太原理工大学毕业设计(论文)用纸图4.16景点查询界面设计4.3.3用户注册1.描述:对于游客,至于浏览的功能,如果想进一步使用本系统,比如说线路预订等,首先需要注册一个合法的账号,然后登陆后,点击导航栏菜单“免费注册”,调用js的open()方法,弹出注册页面,输入相关正确信息后点击注册按钮即可完成注册,如果是没有输入完整的信息。checkForm()函数中是各种的校验输入数据的方式。2.程序效果图如图4.17所示。图4.17用户注册界面设计49 太原理工大学毕业设计(论文)用纸第五章系统测试5.1系统测试目的与意义系统测试,英文是SystemTesting。是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试的目的是验证最终软件系统是否满足用户规定的需求。系统测试流程如图5.1所示。迭代制定测试计划设计测试用例执行系统测试缺陷管理与改错图5.1系统测试流程5.2测试过程在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。5.2.1主页面的登录模块测试测试流程:1.打开系统首页,输入错误的登录信息2.登录3.输入正确的登录信息4.登录5.测试结果测试表格如表5.2所示。49 太原理工大学毕业设计(论文)用纸模块名称测试用例预期结果实际结果是否通过登录模块用户名:null密码:null弹出错误提示,请输入用户名登陆失败,提示请输入用户名通过登录模块用户名:m1密码:null弹出错误提示,请输入密码失败,提示输入密码通过登录模块用户名:m1密码:1弹出错误提示,用户名或者密码错误登陆失败,提示用户名或者密码错误通过图5.2登陆模块测试表格5.3其他错误在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值类型不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5.3所示。图5.3由于servlet路径配置错误,运行时的提示49 太原理工大学毕业设计(论文)用纸结论本文主要介绍了通过JSP和SQL建设网站的整个过程。网站主要实现了三个方面,一是旅游前台展示、用户后台、管理员后台。在这三个方面又衍生出了许多小的功能模块,各功能模块间又存在联系,从整体上来说,网站整体界面设计较好,主要功能齐全,能满足大部分用户的需求,运行良好,多次测试都没有报错,与数据库交互方面也能正常进行,说明本网站的总体设计是成功的。由于自己能力有限,开发经验不足,许多功能在实现时考虑不周到,虽然实现了功能,但是依然存在着许多问题,比如在网站建设时网站的安全性,完全没有考虑过,而且自己也不知道怎么从安全方面着手建设网站。在数据库方面,设计的不太理想,导致开发时遇到了许多问题,比如表间的关联约束,做的就不太好,数据的冗余问题都有待改善。通过本次毕业设计我锻炼了自己的自学、研究能力,也从中学到不少在学校在课堂上学不到的东西.通过实践我也深刻的体会到软件开发的艰辛及问题解决后的喜悦心情,培养我的独立思考问题的能力,同时也增强了我的理论联系实际的能力,这为自己以后的工作奠定了良好的基础。本系统可以在很大程度上为山西旅游业的进一步发展起到推动作用,但由于时间按和技术条件的限制,还存在一些不足之处,有些功能还需要改进,还应该做进一步的系统调查需求分析工作,更深入的完善系统。总之,一个紧跟时代步伐的真正使用的软件必需有一个不断完善改进的过程。49 太原理工大学毕业设计(论文)用纸参考文献[1]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解[M].北京:电子工业出版社,2011.4.[2]孙佳,刘中兵,李伯华.JSP+Oracle动态网站开发案例精选[M].北京:清华大学出版社,2011.9.[3]赵辉,姚胤含.白领就业指南:JavaWeb开发设计师之路[M].北京:电子工业出版社,2011.9.[4]清宏计算机工作室.JSP编程技巧[M].北京:机械工业出版社.[5]张利国.Java实用案例教程[M].北京:清华大学出版社,2012.1.[6]李伯华,邹晨.Jsp数据库项目安全导航[M].北京:清华大学出版社,2011.[7]田文燕.从纸笔测试到计算机化语言测试的发展[J].湖北广播电视大学学报.2007.6.[8]曾灵秀,李然.计算机化自适应测验的理论与应用[J].四川教育学院学报,2006年12月,第22卷[9](美)Eckel,B.Java编程思想(英文版)[M].机械工业出版社,2012.1.[10](美)Bronson.Java程学设计基础.北京大学出版社[M],2005.1.[11](美)温斯耐特SQLServer应用开放核心技术[M].机械工业出版社,2006.9[12]刘强,郎青.基于J2EE网络考试系统的设计与实现[J]–中央民族大学学报(自然科学版);2006年5月,第15卷第2期[13]杨易.Jsp网络编程技术与实例[M].人民邮电出版社,2012.10.[14]赛奎春.JSP信息系统开发实例精选[M].北京:机械工业出版社,2012.9.[15]AndreaSteelman,JoelMurach.Murach'sJavaServletsandJSP[M].2011.[16]MarkusAleksy,AxelKorthaus,MartinSchader.UseJavaandtheCORBArealizationdistributetypesystem[J].JournalofPingxiangCollege,No.4,2011:104-105.[17]WattsDJ.SmallWorlds.Thedynamicsofnetworksbetweenorderandrandomness[P].America:56A2579BB6,l999-05-13.[18]Tsui,FrankF.JSPEMDASHARESEARCHSIGNALPROCESSORINJOSEPHSONTECHNOLOGY[C].IBMJournalofResearchandDevelopment,Vol24,No2,1980:243-252.[19]MichaelGehond.LogicProgrammingandNonmonotonicReasoning[M]德国.SpringerBerlin/Heidelberg.200749 太原理工大学毕业设计(论文)用纸致谢本毕业设计能最终顺利完成,首先要感谢我的指导老师晋剑老师。晋剑老师在我的毕业设计开题、调研、网站开发阶段以及撰写论文的过程中始终都耐心指导,及时的给我网站建设计的建议,在整个指导期间始终严格的要求,晋剑老师的严谨的治学作风和求实的工作态度,以及深厚的理论水平和开发经验都认我受益匪浅,这对我在以后的工作和学习中都有很大的帮助。衷心的感谢在我读本科期间栽培我的各位老师,你们孜孜不倦的教导,不仅让我学会了知识,同时也学会了生活的态度。感谢在本次毕业设计中,给我最大支持和帮助的同学,在我请教时,耐心的请解。通过这次毕业设计的整个开发过程,我系统开发过程从需求分析到具体功能实现,再到最终测试和维护的理解有了很大的进步,让我对系统开发有了更深层次的认识。现在我的动手能力和独立解决问题的能力也得到了很大的锻炼和提高,这是这次毕业设计最好的收获。最后,在整个系统开发过程中,我身边的同学和朋友给了我很多的建议,让我很快的确定了系统的业务逻辑。在次,我衷心的向他们表示感谢。49 太原理工大学毕业设计(论文)用纸附录部分源代码用户信息管理:packagecom.action;importjava.util.List;importjava.util.Map;importorg.apache.struts2.ServletActionContext;importcom.dao.TAdminDAO;importcom.model.TAdmin;importcom.opensymphony.xwork2.ActionSupport;publicclassadminActionextendsActionSupport{privateintuserId;privateStringuserName;privateStringuserPw;privateStringmessage;privateStringpath;privateintindex=1;privateTAdminDAOadminDAO;publicStringadminAdd(){TAdminadmin=newTAdmin();admin.setUserName(userName);admin.setUserPw(userPw);adminDAO.save(admin);this.setMessage("操作成功");this.setPath("adminManage.action");return"succeed";}49 太原理工大学毕业设计(论文)用纸publicStringadminManage(){ListadminList=adminDAO.findAll();Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("adminList",adminList);returnActionSupport.SUCCESS;}publicStringadminDel(){adminDAO.delete(adminDAO.findById(userId));this.setMessage("删除成功");this.setPath("adminManage.action");return"succeed";}publicTAdminDAOgetAdminDAO(){returnadminDAO;}publicvoidsetAdminDAO(TAdminDAOadminDAO){this.adminDAO=adminDAO;}publicStringgetMessage(){returnmessage;}publicintgetIndex(){returnindex;}publicvoidsetIndex(intindex){this.index=index;49 太原理工大学毕业设计(论文)用纸}publicvoidsetMessage(Stringmessage){this.message=message;}publicStringgetPath(){returnpath;}publicvoidsetPath(Stringpath){this.path=path;}publicintgetUserId(){returnuserId;}publicvoidsetUserId(intuserId){this.userId=userId;}publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetUserPw(){returnuserPw;}publicvoidsetUserPw(StringuserPw)49 太原理工大学毕业设计(论文)用纸{this.userPw=userPw;}}登陆页面代码:%@pagelanguage="java"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>login.jspbody{margin-left:0px;}.style2{color:#990000}.input2{font-size:12px;border:3pxdouble#A8D0EE;color:#344898;}.submit1{border:3pxdouble#416C9C;height:22px;width:45px;background-color:#F2F2F2;font-size:12px;49 太原理工大学毕业设计(论文)用纸padding-top:1px;background-image:url(bt.gif);cursor:hand;}.STYLE12{font-family:Georgia,"TimesNewRoman",Times,serif}.STYLE13{color:#316BD6;}.STYLE15{color:#fdsere;font-size:9pt;}functioncheck1(){if(document.ThisForm.userName.value==""){alert("请输入用户名");document.ThisForm.userName.focus();returnfalse;}if(document.ThisForm.userPw.value==""){alert("请输入密码");document.ThisForm.userPw.focus();returnfalse;}document.getElementById("indicator").style.display="block";loginService.login(document.ThisForm.userName.value,document.ThisForm.userPw.value,0,callback);}functioncallback(data){document.getElementById("indicator").style.display="none";if(data=="no"){alert("用户名或密码错误");}49 太原理工大学毕业设计(论文)用纸if(data=="yes"){alert("通过验证,系统登录成功");window.location.href="<%=path%>/loginSuccess.jsp";}}用户名: 密  码:  49 太原理工大学毕业设计(论文)用纸/img/loading.gif"style="display:none"/>49 太原理工大学毕业设计(论文)用纸译文资料DesignandimplementationoftourismmanagementsystembasedonJSPTHETECHNIQUEDEVELOPMENTHISTORYOFJSPTheJavaServerPages(JSP)isakindofaccordingtowebofthescriptplaitdistancetechnique,similarcarriesthescriptlanguageofJavaintheserveroftheNetscapecompanyofserver-sideJavaScript(SSJS)andtheActiveServerPages(ASP)oftheMicrosoft.JSPcomparestheSSJSandASPtohavebettercanexpandsex,anditisnomoreexclusivethananyfactoryorsomeoneparticularserverofWeb.ThoughthenormofJSPistobedrawupbySuncompanyof,anyfactorycancarryouttheJSPonownsystem.TheAfterSunreleasetheJSP(theJavaServerPages)formally,thethiskindofnewWebapplicationdevelopmenttechniqueveryquicklycausedthepeople'sconcern.JSPprovidedaspecialdevelopmentenvironmentfortheWebapplicationthatestablishesthehighdynamicstate.AccordingtotheSunparlance,theJSPcanadapttoincludetheApacheWebServer,IIS4.0onthemarketatinsideof85%serverproduct.ThischapterwillintroducetherelatedknowledgeofJSPandDatabases,andJavaBeanrelatedcontents,isallcertainlyrougherintroductionamongthembasiccontents,sayperhapstoisaGuideonly,ifthereaderneedsthemoredetailedinformation,pleasingthebookofconsultthehomologousJSP.GENERALIZETheJSP(JavaServerPages)isfromthecompanyofSunMicrosystemsinitiate,themanycompaniestheparticipatetothebuildupthetogetheroftheakindtheofdynamicthestatewebthepagetechniquestandard,theithavetheitintheconstructiontheofthedynamicstatethewebpagethestrongbutthedonottheespeciallyofthefunction.JSPandthetechniqueofASPoftheMicrosoftareveryalike.BothallprovidetheabilitythatmixeswithacertainprocedurecodeandisexplainbythelanguageenginetocarryouttheprocedurecodeinthecodeofHTML.Underneathwearesimpleofcarryontheintroductiontoit.JSPpagesaretranslatedintoservlets.So,fundamentally,anytaskJSPpagescanperformcouldalsobeaccomplishedbyservlets.However,thisunderlyingequivalencedoes49 太原理工大学毕业设计(论文)用纸notmeanthatservletsandJSPpagesareequallyappropriateinallscenarios.Theissueisnotthepowerofthetechnology,itistheconvenience,productivity,andmaintainabilityofoneortheother.Afterall,anythingyoucandoonaparticularcomputerplatformintheJavaprogramminglanguageyoucouldalsodoinassemblylanguage.Butitstillmatterswhichyouchoose.JSPprovidesthefollowingbenefitsoverservletsalone:•ItiseasiertowriteandmaintaintheHTML.YourstaticcodeisordinaryHTML:noextrabackslashes,nodoublequotes,andnolurkingJavasyntax.•YoucanusestandardWeb-sitedevelopmenttools.EvenHTMLtoolsthatknownothingaboutJSPcanbeusedbecausetheysimplyignoretheJSPtags.•Youcandivideupyourdevelopmentteam.TheJavaprogrammerscanworkonthedynamiccode.TheWebdeveloperscanconcentrateonthepresentationlayer.Onlargeprojects,thisdivisionisveryimportant.Dependingonthesizeofyourteamandthecomplexityofyourproject,youcanenforceaweakerorstrongerseparationbetweenthestaticHTMLandthedynamiccontent.Now,thisdiscussionisnottosaythatyoushouldstopusingservletsanduseonlyJSPinstead.Bynomeans.Almostallprojectswilluseboth.Forsomerequestsinyourproject,youwilluseservlets.Forothers,youwilluseJSP.Forstillothers,youwillcombinethemwiththeMVCarchitecture.Youwanttheappropriatetoolforthejob,andservlets,bythemselves,donotcompleteyourtoolkit.SOURCEOFJSPThetechniqueofJSPofthecompanyofSun,makingthepageofWebdevelopthepersonnelcanusetheHTMLperhapsmarkingofXMLtodesigntoturntheendpagewithformat.UsetheperhapssmallscriptfuturelifeofmarkingofJSPbecomesthedynamicstateonthepagecontents.(thecontentschangesaccordingtotheclaimof)TheJavaServletisatechnicalfoundationofJSP,andthelargeWebappliesthedevelopmentoftheproceduretoneedtheJavaServlettomatchwiththeJSPandthencancomplete,thisnameofServletcomesfromtheApplet,thelocaltranslationmethodofnowisalotof,thisbookinordernottomisconstruction,decidethedirectadoptionServletbutdon'tdoanytranslation,ifreaderwouldliketo,cancallitas"smallserviceprocedure".TheServletissimilartotraditionalCGI,ISAPI,NSAPIetc.Webproceduredevelopmentthefunctionofthetoolinfact,atusetheJavaServlethereafter,thecustomerneednotuseagainthelowlymethodofCGIofefficiency,alsoneednotuseonlytheabilitycometobornpage49 太原理工大学毕业设计(论文)用纸ofWebofdynamicstateinthemethodofAPIthatacertainfixedWebserverterracecirculate.ManyserversofWeballsupporttheServlet,evennotsupporttheServletserverofWebdirectlyandcanalsopasstheadditionalappliedserverandthemoldpiecestosupporttheServlet.Receivebenefitinthecharacteristic(典型的)oftheJavacross-platform,theServletisalsoaterrace(平台)irrelevant,actually,aslongasmatchthenormofJavaServlet,theServletiscompletetohavenothingtodowithterraceandistohavenothingtodowithserverofWeb.BecausetheJavaServletisinternaltoprovidetheservicebythelinedistance,neednotstartaprogresstotheeachclaims,andmakeuseofthemulti-threadingmechanismcanatthesametimeforseveralclaimservice,thereforetheefficiencyofJavaServletisveryhigh.ButtheJavaServletalsoisnottohasnoweakness,similartotraditionalCGI,ISAPI,theNSAPImethod,theJavaServletistomakeuseofoutputtheHTMLlanguagesentencetocarryoutthedynamicstatewebpageof,ifdevelopthewholewebsitewiththeJavaServlet,theintegration(集成)processofthedynamicstatepartandthestaticstatepageisanevil-forebodingdreamsimply.ForsolvingthiskindofweaknessoftheJavaServlet,theSUNreleasedtheJSP.Anumberofyearsago,Martywasinvitedtoattendasmall20-personindustry(产业)roundtablediscussiononsoftwaretechnology.SittingintheseatnexttoMartywasJamesGosling,inventor(发明)oftheJavaprogramminglanguage.Sittingseveralseatsawaywasahigh-levelmanagerfromaverylargesoftwarecompanyinRedmond,Washington.Duringthediscussion,themoderatorbroughtupthesubjectofJini,whichatthattimewasanewJavatechnology.Themoderatoraskedthemanagerwhathethoughtofit,andthemanagerrespondedthatitwastooearlytotell,butthatitseemedtobeanexcellentidea.Hewentontosaythattheywouldkeepaneyeonit,andifitseemedtobecatchingon,theywouldfollowhiscompany'susual"embrace(信奉)andextend"strategy(战略).Atthispoint,Goslinglightheartedlyinterjected"Youmeandisgrace(耻辱)anddistend(使扩张)."Now,thegrievance(不满)thatGoslingwasairing(风干;通风)wasthathefeltthatthiscompanywouldtaketechnologyfromothercompaniesandsuborn(收买)itfortheirownpurposes.Butguess(认为,猜测)what?Theshoeisontheotherfoothere.TheJavacommunity(社区,团体)didnotinvent(发明,创造)theideaofdesigningpagesasamixture(混合)ofstaticHTMLanddynamiccodemarked(标记)withspecialtags(标签).For49 太原理工大学毕业设计(论文)用纸example,ColdFusiondidityearsearlier.EvenASP(aproductfromtheverysoftwarecompanyoftheaforementionedmanager)popularizedthisapproach(方法)beforeJSPcamealonganddecidedtojumponthebandwagon(流行).Infact,JSPnotonlyadoptedthegeneral(普通的)idea,itevenusedmanyofthesamespecialtagsasASPdid.TheJSPisanestablishment(确定,制定)atthemodelofJavaservletsonoftheexpressionlayer(层)technique(技术),itmakesplait(编)writetheHTMLtobecomemoresimple.BeliketheSSJS,italsoallows(允许)youcarrythestaticstateHTMLcontentsandserversthescript(脚本)mixtoputtogethertheborndynamicstateexportation(出口).JSPthescriptlanguagethattheJavaisthetacit(缄默的,不言而喻的)approval(认可),however,beliketheASPandcanuseotherlanguages(suchasJavaScriptandVBScript),thenormofJSPalsoallowstouseotherlanguages.JSPCHARACTERISTICSIsaserviceaccordingtothescriptlanguageinsomeonelanguageofthestaturessystemthiskindofdiscuss(论述),theJSPshouldbeseemakeisakindofscriptlanguage.However,beakindofscriptlanguage,theJSPseemedtobetoostrongagain,almostcanuseallJavasintheJSP.Beakindofaccordingtotextoriginally(最初)of,takemanifestation(表现)asthecentraldevelopmenttechnique,theJSPprovidedalladvantagesoftheJavaServlet,and,whencombinewithaJavaBeanstogether,providingakindofmakecontentsandmanifestationthatsimplewaythatlogic(逻辑)separate.Separatethecontentsandadvantageoflogicalmanifestationsis,thepersonnel(人员的)whorenews(更新)thepageexternal(外部的)appearance(外观)neednotknowthecodeofJava,andrenewtheJavaBeanspersonnelalsoneednotbedesignthewebpageofexpert(熟练的,专家)inhand,canusetotakethepageofJavaBeansJSPtodefinethetemplate(模板)ofWeb,tobuildupaformhavethealikeexternalappearanceofthewebsitethatpageconstitute(组成).JavaBeanscompletes(完成)thedatatoprovide,havingnocodeofJavainthetemplatethus(因此),thismeansthatthesetemplatescanbewrittenthepersonnelbyaHTMLplait(编)tosupport.Certainly,canalsomakeuseoftheJavaServlettocontrolthelogicofthewebsite,adjust(调整)throughtheJavaServlettousethewayofthedocumentofJSPtoseparatewebsiteoflogicandcontents.Generallyspeaking,inactual(真实的,目前的)engine(引擎)ofJSP,thepageofJSPis49 太原理工大学毕业设计(论文)用纸theeditandtranslate(翻译,转化)typewhilecarryout,notexplainthetypeof.Explainthedynamicstatewebpagedevelopmenttoolofthetype,suchasASP,PHP3etc.,becausespeedetc.reason,havealreadycan'tsatisfy(令人满意的)currentthelargeelectroniccommerce(贸易)needsapplied,traditionaldevelopmenttechniquesareallattoeditandtranslatetheexecutive(执行的)waychange,suchastheASP→ASP+;PHP3→PHP4.IntheJSPnormbook,didnotrequesttheprocedureintheJSPcodepart(becalledtheScriptlet)andmustwritewiththeJavadefinitely.Actually,havesomeenginesofJSPareadoptiveotherscriptlanguagessuchastheEMAC-Script,etc.,butactuallythisafewscriptlanguagesalsoaretosetupontheJava,editandtranslatefortheServlettocarryoutof.WriteaccordingtothenormofJSP,havenoScriptletofrelationwithJavaalsoiscanof,however,mainlylieintheabilityandJavaBeans,theEnterpriseJavaBeansbecauseoftheJSPstrongfunctiontoworktogether,soevenistheScriptletpartnottousetheJava,editandtranslateofperformancecodealsoshouldisrelatedwithJava.JSPMECHANISMTocomprehendtheJSPhowunitethetechnicaladvantagethatabovevariousspeakof,cometocarryoutvariousresulteasily,thecustomermustunderstandthedifferentiationof"themoduledevelopsforthewebpageofthecenter"and"thepagedevelopsforthewebpageofthecenter"first.TheSSJSandASPareallinseveralyearagotorelease,thenetworkofthattimeisstillveryyoung,nooneknowstostillhaveinadditiontomakingallbusiness,datasandtheexpressionlogicentertheoriginalwebpageentirelyheapwhatbettersolvethemethod.Thiskindofmodelthattakepageasthecenterstudiesandgetstheveryfastdevelopmenteasily.However,alongwithchangeoftime,thepeopleknowthatthiskindofmethodisunwellinsetuplarge,theWebthatcanupgradeappliestheprocedure.Theexpressionlogicwriteinthescriptenvironmentwaslockinthepage,onlypassingtosheartosliceandgluetostickthencandriveheavyuse.Expressthelogictousuallymixtogetherwithbusinessandthedatalogics,whenthismakesbetheproceduremembertotrytochangeanexternalappearancethatappliestheprocedurebutdonotwanttobreakwithitslliedbusinesslogic,applytheprocedureofmaintenancebeliketowalkthesimilardifficultyontheeggshell.Infactinthebusinessenterprise,heavyusetheapplicationofthemodulealreadythroughverymature,noonewouldliketorewritethoselogicsfortheirappliedprocedure.HTMLandsketchthe49 太原理工大学毕业设计(论文)用纸designerhandedovertotheimplementworkoftheirdesigntheWebplaittheonewhowrite,maketheyhavetodoublework-Usuallyisthehandicraftplaittowrite,becausehavenofittoolandcancarrythescriptandtheHTMLcontentsknottotheservertoputtogether.Chienbutspeech,applythecomplexityoftheprocedurealongwiththeWebtopromotecontinuously,thedevelopmentmethodthattakepageasthecenterlimitssextobecometogetupobviously.Atthesametime,thepeoplealwaysatlookforthebettermethodofbuilduptheWebapplicationprocedure,themodulespreadsincustomer'smachine/servertherealm.JavaBeansandActiveXwerepublishedthecompanytoexpandtoapplytheproceduredeveloperforJavaandWindowstousetocometodevelopthecomplicatedprocedurequicklyby"thefastapplicationproceduredevelopment"(RAD)tool.Thesetechniquesmaketheexpertinthesomerealmbeabletowritethemodulefortheperpendicularapplicationplaitintheskillarea,butthedevelopercangofetchtheusagedirectlybutneednotcontroltheexpertiseofthisrealm.Beakindoftakemoduleasthecentraldevelopmentterrace,theJSPappeared.ItwiththeJavaBeansandEnterpriseJavaBeans(EJB)moduleincludesthemodelofthebusinessandthedatalogicforfoundation,provideagreatdealoflabelandascriptterracestousetocometoshowintheHTMLpagefromthecontentsofJavaBeanscreationorsendapresentinreturn.BecauseofthepropertythatregardsthemoduleasthecenteroftheJSP,itcandriveJavaandnotthedeveloperofJavausesequally.NotthedeveloperofJavacanpasstheJSPlabel(Tags)tousetheJavaBeansthatthedeluxedeveloperofJavaestablish.ThedeveloperofJavanotonlycanestablishandusetheJavaBeans,butalsocanusethelanguageofJavatocometocontrolmoreaccuratelyintheJSPpageaccordingtotheexpressionlogicofthefirstfloorJavaBeans.SeenowhowJSPishandleclaimofHTTP.Inbasicclaimmodel,aclaimdirectlywassendtoJSPpagein.ThecodeofJSPcontrolstocarryonhourofthelogicprocessingandmoduleofJavaBeans'handoverwitheachother,andthemanifestationresultindynamicstatebornly,mixingwiththeHTMLpageofthestaticstateHTMLcode.TheBeanscanbeJavaBeansormoduleofEJBs.Moreover,themorecomplicatedclaimmodelcanseemakefromisrequestotherJSPpagesofthepagecallsignorJavaServlets.TheengineofJSPwantstochase(追逐)thecodeofJavathatlabelofJSP,codeofJavaintheJSPpageevenallconverts(转化,转变)intothebigpiecetogetherwiththestaticstate49 太原理工大学毕业设计(论文)用纸HTMLcontentsactually.Thesecodespiecewasorganized(组织)theJavaServletthatcustomercannotseetogotobytheengineofJSP,thentheServleteditsandtranslatethemautomatically(自动的)bytecodeofJava.Thus,thevisitantthatisthewebsiterequestsaJSPpage,undertheconditionofitisnotknowing,analreadyborn,theServletactual(真实的)fullgeneralthatpreparedtoeditandtranslatecompletesallworks,veryconcealment(隐蔽)butagainandefficiently.TheServletistoeditandtranslateof,sothecodeofJSPinthewebpagedoesnotneedwhentheeverytimerequeststhatpageisexplain.TheengineofJSPneedtobeeditandtranslateafterServletthecodeendismodify(修改)onlyonce,thenthisServletthateditedandtranslatecanbecarryout.TheinviewofthefactJSPengineautoisborntoeditandtranslatetheServletalso,neednotprocedure(程序)memberbeginstoeditandtranslatethecode,sotheJSPcanbringvivid(生动的)sexthatfunctionandfastdevelopmentsneedthatyouareefficiently.ComparedwiththetraditionalCGI,theJSPhastheequal(相等的)advantage.First,onthespeed,thetraditionalprocedureofCGIneedstousethestandardimportation(输入)ofthesystemtooutputtheequipmentstocarryoutthedynamicstatewebpageborn,buttheJSPisdirectismutually(相互地)theconnectionwithserver.AndsayfortheCGI,eachinterviewneedstoaddtoaddaprogresstohandle(处理),theprogressbuildupanddestroybyburningconstantly(不断地)andwillbeanotsmallburden(负担)forcalculator(计算机)ofbetheserverofWeb.Thenextinorder,theJSPisspecialized(专门的)todevelopbutdesignfortheWebof,itspurposeisforbuildingupaccordingtotheWebappliedprocedure,includedthenorm(规范)andthetoolofthewholeset.UsethetechniqueofJSPcancombine(结合)alotofJSPpagestobecomeaWebapplicationprocedureveryexpediently(方便地).49 太原理工大学毕业设计(论文)用纸中文译文JSP的技术发展历史JavaServerPages(JSP)是一种基于web的脚本编程技术,类似于网景公司的服务器端Java脚本语言——server-sideJavaScript(SSJS)和微软的ActiveServerPages(ASP)。与SSJS和ASP相比,JSP具有更好的可扩展性,并且它不专属于任何一家厂商或某一特定的Web服务器。尽管JSP规范是由Sun公司制定的,但任何厂商都可以在自己的系统上实现JSP。在Sun正式发布JSP(JavaServerPages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括ApacheWebServer、IIS4.0在内的85%的服务器产品。本文将介绍JSP相关的知识,以及JavaBean的相关内容,当然都是比较粗略的介绍其中的基本内容,仅仅起到抛砖引玉的作用,如果读者需要更详细的信息,请参考相应的JSP的书籍。概述JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而特别的功能。JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。下面我们简单的对它进行介绍。JSP页面最终会转换成servlet。因而,从根本上,JSP页面能够执行的任何任务都可以用servlet来完成。然而,这种底层的等同性并不意味着servlet和JSP页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用Java编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。和单独使用servlet相比,JSP提供下述好处:JSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML:没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。能够使用标准的网站开发工具。即使是那些对JSP一无所知的HTML工具,我们也可以使用,因为它们会忽略JSP标签(JSPtags)。可以对开发团队进行划分。Java程序员可以致力于动态代码。Web开发人员可以将经理集中在表示层(presentationlayer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态HTML和动态内容进行弱分离(weakerseparation)和强分离(strongerseparation)。此处的讨论并不是说人们应该放弃使用servlet而仅仅使用JSP。事实上,几乎所有的项目都会同时用到这两种技术。在某些项目中,更适宜选用servlet,而针对项目中的某些请求,我们可能会在MVC构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是servlet并不一定能够胜任所有工作。JSP的由来Sun公司的JSP技术,使Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的)。49 太原理工大学毕业设计(论文)用纸JavaServlet是JSP技术的基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称源于Applet,现在国内的翻译方式很多,本书为了避免误会,决定直接采用Servlet而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI、ISAPI、NSAPI等Web程序开发工具的作用是相似的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全与平台无关且是与Web服务器无关的。由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程会非常难以实现。为了解决JavaServlet的这种缺点,SUN推出了JSP。许多年前,Marty受到邀请,参加一个有关软件技术的小型研讨会.坐在Marty旁边的人是JamesGosling---Java编程语言的发明者。隔几个位置,是来自华盛顿一家大型软件公司的高级经理。在讨论过程中,研讨会的主席提出了Jini的议题,这在当时是一项新的Java技术。主席向该经理询问他的想法.他回答说,虽然现在言之过早,但这看起来会是非常有前途的一项技术。他们会持续关注这项技术,如果这项技术变得流行起来,他们会遵循公司的“接受并扩充(embraceandextend)”的策略.此时,Gosling随意地插话说“你的意思其实就是不接受且不扩充(disgraceanddistend)。”在此,Gosling的抱怨显示出,他感到这个公司会从其他公司那里拿走技术,用于他们自己的目的.出人意料的是,形势已经完全不同。Java团队并没有发明这一思想----将页面设计成由静态HTML和用特殊标签标记的动态代码混合组成.。ColdFusion多年前就已经这样做了。甚至ASP(来自于前述经理所在公司的一项产品)都在JSP出现之前推广了这种方式。实际上,JSP不只采用了这种通用概念,它甚至使用许多和ASP相同的特殊标签。JSP是建立在Javaservlets模型之上的表达层技术,它使编写HTML变得更简单。像SSJS一样,它也允许你将静态HTML内容与服务器端脚本混合起来生成动态输出。JSP把Java作为默认的脚本语言,然而,就像ASP可以使用其他语言(如JavaScript和VBScript)一样,JSP规范也允许使用其他语言。JSP的特点按照脚本语言是服务于某一个子系统的语言这种论述,JSP应当被看作是一种脚本语言。然而,作为一种脚本语言,JSP又显得过于强大了,在JSP中几乎可以使用全部的Java类。作为一种基于文本的、以显示为中心的开发技术,JSP提供了JavaServlet的所有好处,并且,当与一个JavaBeans类结合在一起时,JSP提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得Java代码,而更新JavaBeans类的人员也不必是设计网页的行家里手,就可以用带JavaBeans类的JSP页面来定义Web模板,以建立一个由具有相似的外观的页面组成的网站。49 太原理工大学毕业设计(论文)用纸JavaBeans类完成数据提供,这样在模板中就没有Java代码,这意味着这些模板可以由一个HTML编写人员来维护。当然,也可以利用JavaServlet来控制网站的逻辑,通过JavaServlet调用JSP文件的方式来将网站的逻辑和内容分离。一般来说,在实际的JSP引擎中,JSP页面在执行时是编译式,而不是解释式的。解释式的动态网页开发工具如ASP、PHP3等由于速度等原因已经满足不了当前大型电子商务应用的需要了,传统的开发技术都在向编译执行的方式改变,如ASP→ASP+;PHP3→PHP4。在JSP规范书中,并没有明确要求JSP中的程序代码部分(称为Scriptlet)一定要用Java来写。实际上,有一些JSP引擎就是采用的其他脚本语言,如EMAC-Script、WebL等,但实际上这几种脚本语言也是构建在Java上面,编译为Servlet来实现的。按照JSP规范书写,和Java没有任何关系的Scriptlet也是可以的,不过,由于JSP的强大功能主要在于能和JavaBeans、EnterpriseJavaBeans共同运转,所以即使是Scriptlet部分不使用Java,编译成的执行代码也应该是与Java相关的。JSP的机制要理解JSP怎样联合以上各种所提到的技术的优点,从而轻而易举地实现各种效果,用户必须首先了解“组件为中心的网页开发”和“页面为中心的网页开发”的区别。SSJS和ASP都是在几年前推出的,那时网络还很年轻,没有人知道除了把所有的商务、数据和表达逻辑统统堆进原始网页中之外还有什么更好的解决方法。这种以页面为中心的模型容易学习并且得到相当快速的发展。然而,随着时间的推移,人们认识到这种方法不适于构建大型的、可升级的Web应用程序。在脚本环境中书写的表达逻辑被锁在页面内,只有通过剪切和粘贴才能被重用。表达逻辑通常和商务及数据逻辑混在一起,这使得当程序员试图改变一个应用程序的外观而不想破坏与之紧密结合的商务逻辑时,应用程序的维护就变得十分艰难。其事实上,企业中可重用组件的应用早已经很成熟,没有人愿意为它们的应用程序重写那些逻辑。HTML和图形设计师把它们的设计的实施工作交给了Web编写者,使他们不得不加倍工作——常常是手工编写,因为没有合适的工具可以把服务器端脚本与HTML内容结合起来。简而言之,随着Web应用程序的复杂性不断提升,以页面为中心的开发方式的局限性变得明显起来。与此同时,人们一直在寻找建立Web应用程序的更好方法,组件在客户机/服务器领域流行起来。JavaBeans和ActiveX被“快速应用程序开发”(RAD)工具发行商推广给Java和Windows应用程序开发者用来快速开发复杂的程序。这些技术使某领域内的专家可以为本领域内的垂直应用编写组件,而开发者可以直接拿来使用而不必掌握这一领域的专门技术。作为一种以组件为中心的开发平台,JSP出现了。它以JavaBeans和EnterpriseJavaBeans(EJB)组件包含商务和数据逻辑的模型为基础,提供大量标签和一个脚本平台用来在HTML页中显示由JavaBeans产生或回送的内容。由于JSP的以组件为中心的性质,它可以被Java和非Java开发者同样使用。非Java开发者可以通过JSP的标签(Tags)来使用高级Java开发者创建的JavaBeans。Java开发者不仅可以创建和使用JavaBeans,还能在JSP页中使用Java语言来更精密地控制基于底层JavaBeans的表达逻辑。现在来看看JSP是如何处理HTTP请求的。在基本请求模型中,一个请求直接被送到JSP页中。JSP代码控制着进行逻辑处理时与JavaBeans组件的交互,并在动态生成的、混合了静态HTML代码的HTML页中显示结果。Beans可以是JavaBeans或EJB组件。另外,更加复杂的请求模型可看作从被请求页呼叫其他JSP页或JavaServlets。JSP引擎实际上要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java49 太原理工大学毕业设计(论文)用纸Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在它不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作,非常隐蔽而又高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能带给你高效的性能和快速开发所需的灵活性。和传统的CGI相比较,JSP有相当的优势。首先,在速度上,传统的CGI程序需要使用系统的标准输入输出设备来实现动态网页的生成,而JSP是直接和服务器相关联的。而且对于CGI来说,每一个访问就需要新增加一个进程来处理,进程不断地建立和销毁对于作为Web服务器的计算机将是不小的负担。其次,JSP是专门为Web开发而设计的,其目的是为了建立基于Web的应用程序,其中包含了一整套的规范和工具。使用JSP技术可以很方便地将一大堆JSP页面组合成为一个Web应用程序。49

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭