Java服务器页面(数据库)
时间:2022-12-26 08:30:01 | 来源:信息时代
时间:2022-12-26 08:30:01 来源:信息时代
Java服务器页面 : 由Sun Microsystems公司倡导、许多公司参与共同建立的一种基于Web的应用程序的开发方法。JSP采用的脚本语言是Sun公司的Java语言,它整合并平衡了已有的对Java编程环境进行支持的技术和工具,使基于组件应用逻辑的页面设计的功能更加强大。
JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。JSP规范是Web服务器、应用服务器、交易系统以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*.html)中加入Java程序片段和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。
所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无插件(plugin)、无活动对象(ActiveX)、无Java小应用程序(Java Applet),甚至无框架(Frames),JSP技术在多个方面加速了动态Web页面的开发。
1. JSP的特点
(1)将内容的生成和显示进行分离。利用JSP技术,Web页面开发人员可以使用HTML或者XML来设计和格式化最终页面。使用Java或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,其他人(如Web管理人员和页面设计者)能够编辑和使用JSP页面,而不影响内容的生成。在服务器端JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
(2)生成可重用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程。
(3)采用标识简化页面开发。标准的JSP标识能够访问和实例化JavaBeans组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码或耗时的功能。通过开发定制标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web开发人员能够使用熟悉的工具和如同标识一样地执行特定功能的构件来工作。
(4) JSP能提供所有Servlet功能。JSP能提供所有的Servlet功能,它比用println书写和修改HTML更方便。此外,用户可以更明确地进行分工。例如,让Web页面设计人员编写HTML,然后,留出空间让Servlet程序员插入动态部分。
(5)健壮的存储管理和安全性。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java class,所以JSP页面就具有了Java语言的所有优点,包括健壮的存储管理和安全性。
(6)一次编写,随处运行。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,随处运行”的特点。随着越来越多的供应商将对JSP的支持添加到其产品中,可以使用自己所选择的服务器和工具,但并不影响当前的应用。
(7) JSP的平台适应性更广。几乎所有平台都支持Java、JSP+JavaBeans,它们可以在任何平台下通行无阻。从一个平台移植到另一个平台,JSP和JavaBeans甚至不用重新编译。
2. JSP的运行模式
JSP程序由JSP执行引擎执行,而JSP执行引擎与HTTP服务器一起常驻内存,而且每一时刻只有一个JSP执行引擎在内存,执行多个JSP程序。在第一次运行JSP程序时,JSP被编译为Java Servlet Class字节码,由Java虚拟机对这种字节码进行解释执行,同时编译后的Servlet字节码常驻于服务器的Cache中,使得后续的相同请求执行速度非常快,因为服务器已经缓存了运行的Servlet。JSP的执行过程如图1所示。
图1 JSP的执行过程
与ASP相比,ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,在页面中都需要附加的语言引擎来分析和执行程序代码。但是,它们之间存在本质的区别,因为这两种语言引擎是用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;而在JSP下,代码被编译成Servlet,并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。
如果浏览器请求的是普通的HTML页面,则由Web服务器将这些普通的HTML页面传给浏览器,由浏览器对HTML代码进行解释,转化为页面。如果浏览器请求的是JSP动态内容,则由Web服务器将这个请求传到JSP和Servlet执行引擎,或者直接通过数据库服务器访问数据库(两层结构),或者通过JavaBean(Java组件)来连接数据库服务器,访问数据库(三层结构),并将处理结果通过JSP和Servlet执行引擎发送回Web服务器,以HTML代码的形式传回到浏览器进行显示。
3. 常用的JSP的开发方式
JSP既可以用于开发小型的Web站点、也可以用于开发大型的、企业级的应用程序。根据Web网站的规模,可以采用不同的JSP开发方式。
(1)直接使用JSP: 对于最小型的Web站点,可以直接使用JSP来构建动态网页,这种站点最为简单,所需要的仅仅是简单的留言板、动态日期等基本的功能。对于这种开发模式,一般可以将所有的动态处理部分全部放置在JSP的脚本中,就像一般使用PHP或ASP开发动态网页一样。
(2) JSP+JavaBeans: 中型站点面对的是数据库查询、用户管理和少量的商业业务逻辑。对于这种站点,不能将所有的功能全部交给JSP页面来处理。在单纯的JSP中加入JavaBeans技术将有助于这种中型网络的开发。利用JavaBeans,将很容易完成数据库连接、用户登录与注销、商业业务逻辑封装的任务。如将常用的数据库连接写成一个JavaBean,既方便了使用,又可以使JSP文件简单而清晰,通过封装,还可以防止一般的开发人员直接获得数据库的控制权。
(3) JSP+JavaBeans+Servlet: 无论用ASP还是PHP开发动态网站,有一个比较重要的问题是网站的逻辑关系和网站的显示页面不容易分开。常常可以看到一些夹杂着if-then....,case select或是if(...)和大量显示用的HTML代码的ASP、PHP页面,此外,将网站美工设计的静态页面和动态程序合并的过程是有一定的难度的。在逻辑关系异常复杂的网站中,借助于Servlet和JSP良好的交互关系和JavaBeans的协助,完全可以将网站的整个逻辑结构放在Servlet中,而将动态网页的输出放在JSP页面中来完成。在这种开发方式中,一个网站可以有一个或几个核心的Servlet来处理网站的逻辑,通过调用JSP页面(包含JavaBeans技术,通常用来进行数据库连接)来完成客户端(通常是Web浏览器)的请求。
(4) MVC设计模式: MVC是model-viewcontroller的简称,它是一种设计模式,最近几年被推荐为SUN公司J2EE平台的设计模式。它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成3个核心模块: 模型、视图和控制器,它们分别担负不同的任务。图2显示了其模块各自的功能以及它们的相互关系。
图2 MVC设计模式
视图(view): 视图就是用户界面部分,它为用户提供了输入输出手段,在Web应用程序中也就是HTML、XML、JSP页面。这个部分主要处理用户看到的东西,动态的JSP部分处理了用户可以看见的动态网页,而静态的网页则由HTML、XML输出。
控制器(controller): 控制器负责网站的整个逻辑。它用于管理用户与视图发生的交互。可以将控制器想像成处在视图和数据之间,对视图如何与模型交互进行管理。通过控制器使视图完全独立于控制器和模型,就可以轻松替换前端客户程序。即,网页制作人员将可以独立自由地改变Web页面而不用担心影响这个基于Web的应用程序的功能。
模型(model): 模型就是应用业务逻辑部分,是对企业业务流程中的对象进行抽象,封装了对象的属性和对象隐含的业务逻辑,即真正完成任务的代码。JavaBeans就是模型的代表。
在这种设计模式下,模型同界面相分离,代码即可实现可管理性和可重用性。“控制器”控制着模型和视图之间的交互过程。它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型。因此,MVC的处理过程为:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理; 然后模型根据用户请求进行相应的业务逻辑处理,并返回数据; 最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。