出版社: 清华大学
原售价: 89.00
折扣价: 63.20
折扣购买: Java Web开发案例课堂(网站开发案例课堂)
ISBN: 9787302490852
作者长期从事网站开发工作,数年来承接了大量的项目,具有丰富的实践经验。
第3章 零基础开始学习——快速认识JSP JSP(J**a Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术自诞生到现在,已经成为流行技术的一种,尤其是在开发电子商务类的网站方面。JSP以其安全性高、支持多线程、跨平台等特性占领了Web开发的中、高层领域。为此,本章将开始认识JSP的入门知识。 本章要点(已掌握的在方框中打钩) 了解JSP概述 了解JSP的形成历史 熟悉JSP的优势 理解JSP运行机制 理解JSP的开发模式 掌握如何创建和运行JSP页面 3.1 JSP概述 JSP(J**a Server Pages)中文名叫J**a服务器页面,其根本是一个简化的Servlet设计,它是一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入J**a程序段和JSP标记,从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他*作系统上运行。 JSP实现了以<%, %>形式在HTML中插入J**a代码。它是一种Servlet,在服务器端执行,主要用于实现J**a Web应用程序的用户界面部分。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP是一种动态页面技术,其主要目的是将表示逻辑从Servlet中分离出来。J**a Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要J**a Servlet和JSP配合才能完成。JSP具备了J**a技术的简单易用、**的面向对象、具有平台无关性且安全可靠、主要面向因特网的所有特点。 3.2 JSP形成历史 基于浏览器客户端的应用程序相比传统的基于客户端服务器的应用程序的优势在于:几乎没有限制的客户端访问和极其简化的应用程序部署和管理(要*新一个应用程序,管理人员只需要*改一个基于服务器的程序,而不是成千上万的安装在客户端的应用程序)。这样,软件工业正迅速地向基于浏览器客户端的多层次应用程序迈进。 这些快速增长的、基于Web的精巧应用程序要求开发技术上的改进。静态HTML对于显示相对静态的内容是不错的选择,新的挑战在于创建交互的、基于Web的应用程序。在这些程序中,页面的内容是基于用户的请求或者系统的状态,而不是预先定义的文字。 对于这个问题的一个早期解决方案是使用CGI-BIN接口:开发人员编写与接口相关的单独程序,以及基于Web的应用程序,后者通过Web服务器来调用前者。但这个方案有着严重的扩展性问题——每个新的CGI都要求在服务器上新增一个进程。如果多个用户并发地访问该程序,这些进程有可能会消耗掉该Web服务器所有的可用资源,并且系统性能降低到极其低下的地步。 某些Web服务器供应商已经尝试通过为其服务器提供插件和API来简化Web应用程序的开发。这些解决方案与特定的Web服务器相关,但不能解决跨平台*作的问题。例如,微软的ASP技术使得在Web页面上创建动态内容*加容易,但是也只能工作在微软的IIS和Personal Web Server上。 当然,还存在其他的解决方案。但是它们都不能使一个普通的页面设计者能够轻易地掌握。例如,J**a Servlet技术就可以使得用J**a语言编写交互的应用程序的服务器端的代码变得容易,一个J**a Servlet就是一个基于J**a技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。开发人员需要编写出这样的Servlet,以接收来自Web浏览器的HTML请求,动态地生成响应(可能要查询数据库来完成这项请求),然后发送包含HTML或XML文档的响应到浏览器。 采用这种方法,整个网页必须都在J**a Servlet中制作。如果开发人员或者Web管理人员想要调整页面显示,他们就不得不编辑并重新编译该J**a Servlet,即使该J**a Servlet在逻辑上已经能够运行。采用这种方法,生成带有动态内容的页面仍然需要应用程序的开发技巧。 很显然,目前所需要的是一个业界范围内的创建动态内容页面的解决方案。这个方案将解决当前方案所解决不了的问题,例如: * 能够在任何Web或应用程序服务器上运行; * 将应用程序逻辑和页面显示分离; * 能够快速地开发和测试; * 简化开发基于Web的交互式应用程序的过程。 JSP技术就是设计用来满足这些要求的解决方案。JSP规范是Web服务器、应用服务器、交易系统以及开发工具供应商间广泛合作的结果。Sun Microsystems开发出这个规范来整合及平衡已经存在的对J**a编程环境(例如,J**a Servlet和J**aBean)进行支持的技术和工具,其结果是产生了一种新的、开发基于Web应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能。 所谓的JSP网页(*.jsp).就是在传统的网页HTML文件(*.htm或*.html)中加入J**a程序片段(Sriptlet)和JSP标记(Tag)而构成的。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以*作数据库、重新定向网页,以及发送E_mail等,这就是建立动态网站所需要的功能。所有程序*作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求*低,可以实现无Plugin、无ActiveX、无J**a Applet,甚至无Frame。JSP在动态网页的建设中有其强大而特别的功能。 在Sun正式发布JSP之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。JSP使得我们能够分离页面的静态HTML和动态部分。HTML可以用任何通常使用的Web制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“<%”开始,以“%>”结束。 3.3 JSP的优势 JSP技术是由Servlet技术发展起来的,自从有了JSP后,在J**a服务器端编程中普遍采用的就是JSP,而不是Servlet。因为JSP在编写表示页面时远远比Servlet简单,并且不需要手工编译(由Servlet容器自动编译),目前Servlet主要用做视图控制器、处理后台应用等。由于JSP构建在Servlet上,所以它有Servlet所有强大的功能。 在开发JSP规范的过程中,Sun公司与许多主要的Web服务器、应用服务器和开发工具供应商积极进行合作,不断完善技术。 JSP基于强大的J**a语言,具有良好的伸缩性,与J**a Enterprise API紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势,基于J**a平台构建网络程序已经被越来越多的人认为是未来*有发展前途的技术。 从JSP这几年的发展来看,已经获得巨大的成功,它通过和EJB等J2EE组件进行集成,可以编写出处理具有大的伸缩性、高负载的企业级应用。JSP技术在多个方面加速了动态Web页面的开发。 JSP在跨平台、执行速度等特性上具有很大的技术优势,主要体现在以下方面。 (1) 将内容的生成和显示进行分离。 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化*终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和J**aBean组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Bean中,那么其他人,如Web管理人员和页面设计者,就能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问J**aBean组件,使用JDBCTM技术访问数据库或者包含文件),并且将结果以HTML或者XML页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的**可用性。 (2) 生成可重用的组件。 *大多数JSP页面信赖于可重用的、跨平台的组件(J**aBean或者Enterprise J**aBean组件)来执行应用程序所要求的*为复杂的处理。开发人员能够共享和交换执行普通*作的组件,或者使得这些组件为*多的使用者或客户团体使用。 (3) 采用标识简化页面。 Web页面开发人员不一定都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成时所需的。标准的JSP标识能够访问和实例化J**aBean组件、设置或者检索组件属性、下载Applet,以及执行其他*难于编码或耗时的功能。通过开发定制标识库,JSP技术是可扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的构件来工作。 (4)??JSP能提供所有的Servlet功能。 与Servlet相比,JSP能提供所有的Servlet功能,它比用Println书写和修改HTML*方便。此外,可以*明确地进行分工,Web页面设计人员编写HTML,只需要留出空间让Servlet程序员插入动态部分即可。 (5) 健壮的存储管理和安全性。 由于JSP页面的内置脚本语言是基于J**a语言编写的,而且所有的JSP页面都被编译成为J**a Servlet,JSP页面具有J**a技术的所有优点,包括健壮的存储管理和安全性。 (6) 一次编写,随处运行。 作为J**a平台的一部分,JSP拥有J**a编程语言“一次编写,随处运行”的特点。越来越多的供应商将JSP支持添加到其产品中,用户可以使用自己所选择的服务器和工具,但并不影响当前的应用。 (7)??JSP的平台适应性*广。 这是JSP相比于ASP的优越之处。几乎所有平台都支持J**a、JSP+J**aBean,它们可以在任何平台下通行无阻。Windows NT下的IIS通过一个插件就能支持JSP,使用JRUN或者ServletExec,**的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在Windows NT、UNIX和Linux上,因此JSP有*广泛的运行平台。虽然现在Windows NT*作系统占了很大的市场份额,但是在服务器方面,UNIX的优势仍然很大,而新崛起的Linux*是来势不小。从一个平台移植到另一个平台,JSP和J**aBean甚至不用重新编译,因为J**a字节码都是标识的字节码,与平台无关。 (8) J**a中连接数据库的技术是JDBC(J**a Database Connectivity)。 很多数据库系统都带有JDBC驱动程序,J**a程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等*作。Sun公司还开发了JDBC-ODBC Bridge,用此技术,J**a程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以J**a程序能访问诸如Oracle、Sybase、Microsoft SQL Server和Microsoft Access等类型的数据库。 (9) 简单易学。 随着JSP中标签语言的出现,即使不懂J**a的程序员也能编写出功能完善的JSP应用。 3.4 JSP运行机制 JSP文件在用户**次请求时,会被编译成Servlet,再由这个Servlet处理用户的请求,如图3-1所示。 图3-1 JSP运行机制 JSP容器管理JSP页面生命周期分为两个阶段:转换阶段和执行阶段。当有一个对JSP页面的客户请求到来时,JSP容器将JSP页面转换为Servlet源文件,然后调用j**ac工具编译源文件,生成字节码文件,这是转换阶段。接下来,Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求,请求处理完成后响应对象被JSP容器接收,容器将HTML格式的响应信息发送给客户端,这是执行阶段。 本书特色 零基础、入门级的讲解 无论您是否从事计算机相关行业,无论您是否接触过J**a Web程序开发,都能从本书中找到适合的起点。 超多、实用、专业的范例和项目 本书在编排上紧密结合深入学习J**a Web程序开发技术的先后过程,从配置J**a Web开发环境开始,逐步带领大家深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和*作指导,让读者读起来简明轻松,*作起来有章可循。 随时检测自己的学习成果 每章首页中,均提供了“本章要点”,以指导读者重点学习及学后检查。 大部分章节有“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。 细致入微、贴心提示 本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中*清楚地了解相关*作、理解相关概念,并轻松掌握各种*作技巧。 专业创作团队和技术支持 本书由千谷高新教育中心编著和提供技术支持。 您在学习过程中遇到任何问题,可加入QQ群(案例课堂VIP)进行提问,专家人员会在线答疑。 超值赠送资源 全程同步教学录像 涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。比看书*轻松地掌握书中所有的J**a Web程序开发知识,而且扩展的讲解部分使您得到比书中*多的收获。 超多容量资源大放送 本书赠送了十大超值资源。包括本书实例源文件、精美教学幻灯片、精选本书教学视频、MyEclipse常用快捷键、MyEclipse提示与技巧、J**a SE类库查询手册、J**a程序员面试技巧、J**a 常见面试题、J**a常见错误及解决方案、J**a开发经验及技巧大汇总等。




