第1章
应用概览:关于JSP
JSP(Java Server Page)是由Sun公司倡导、多家公司参与一起建立的一种动态网页技术标准规范。作为动态网页的一种主流开发技术,JSP基于Java,具有平台无关性、运行效率高、快速上手易于学习等优点。
随着Internet的飞速发展,JSP被越来越广泛地应用于Web开发,许多知名网站,如新浪、网易、阿里巴巴等都采用了JSP技术,其已成为目前最为流行的网络编程语言之一。
本章主要内容如下:
•JSP技术概述;
•JSP运行机制;
•JSP框架简介;
•JSP开发应用方式;
•JSP简单应用。
1.1 JSP概述
1999年Sun公司推出了JSP动态网页技术。JSP以Java编程语言作为脚本语言,Java 是一种简单易学并且完全面向对象的编程语言,特别适合作为Internet应用的开发工具。使用JSP能轻松搭建网络平台,建立功能强大的Web网站。
JSP技术在国外应用非常广泛,近年来在国内也日趋流行。与目前较为流行的Web开发技术ASP、PHP相比,JSP是一种完全与平台无关的开发技术,它将极高的运行效率、较短的开发周期、超强的扩展能力、完全开放的技术标准和自由的开发方式等众多的完美特性集于一身,使构造基于Web的应用程序更加容易和快捷。
JSP实现了Web业务逻辑和页面显示的分离,脱离了硬件平台的束缚,并且编译后大大提高了运行速度,降低了系统模块之间的耦合性,增强了代码的可重用性和可维护性,符合软件工程思想。目前,JSP正逐渐成为Web应用的主流开发工具。
JSP已广泛地应用于电子商务、电子政务等各个行业的管理应用软件中,国际上一些大型电子商务解决方案都采用或即将采用JSP技术,JSP的应用领域已变得越来越大,具有广阔的发展前景。
1.1.1 JSP特点
JSP技术可以让Web开发人员和设计人员非常容易地创建和维护动态网页,特别是目
前的商业系统。作为Java技术的一部分,JSP能够快速开发基于Web、独立于平台的应用程序。JSP把用户界面从系统内容中分离出来,使设计人员能够在不改变底层动态内容的前提下修改整个网页布局。
JSP是一种用于动态网页的表现层技术,它使HTML变得更简单,允许将静态HTML 内容与服务器端脚本混合起来生成动态输出。JSP技术以Java语言为基础,也允许使用诸如JavaScript和VBScript等其他脚本语言。JSP提供了大量的服务器端标签,可以在不写Java代码的情况下完成大多数动态内容操作。对于只熟悉脚本编写的开发人员,甚至仅仅是HTML编写者,也可以使用JSP标签生成简单的输出。
JSP是一种以组件为中心的开发技术,它以JavaBean和Enterprise JavaBean(EJB)组件模型来包含商务和数据逻辑。由于JSP以组件模型为中心这一特点,Java和非Java开发者均可使用JSP进行开发。非Java开发者可以通过JSP标签来使用Java开发者创建的JavaBean。Java开发者不仅可以创建和使用JavaBean,还能在JSP页面中使用Java语言来更精准地控制基于底层JavaBean的表达逻辑。
从形式上来看,JSP网页和HTML或XML网页非常相似,即都包含由标签封装的文本。它们的不同之处是,HTML与XML网页标签通过用户浏览器显示的是静态内容,而JSP标签能够通过Web服务器的处理来生成动态内容;JSP是编译型的,而HTML与XML 是解释型的。
1.1.2 JSP运行机制
简单地说,一个JSP网页就是在HTML网页中包含了能够生成动态内容的可执行Java 应用程序代码,网页应用程序可能包含JavaBean、JDBC(Java Data Base Connectivity)对象、EJB和RMI(Remote Method Invocation)对象等,所有这些对象都可以非常容易地从JSP网页上访问到。例如,一个JSP网页可以包含HTML代码所显示的静态信息,也可以调用一个JDBC对象来访问数据库的动态信息。
JSP的所有程序都是在服务器端运行的。服务器端接收到用户通过浏览器提交的请求,服务器端的JSP程序负责处理来自客户端的请求,客户请求信息被存储在Request 对象中并发送给Web服务器,JSP引擎根据JSP文件的指示处理Request对象,处理结果以Response对象的方式返回给JSP引擎,JSP引擎Web服务器根据Response对象最终生成JSP页面,返回给客户端浏览器。在这个处理执行过程中,JSP程序在首次载入时都通过JSP引擎被翻译成Servlet文件,JSP对Request对象和Response对象的处理最终都是通过Servlet来完成的。JSP以Java Servlet为基础,JSP运行时,JSP引擎只需将JS
P编译一次使之成为Servlet文件,由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到的响应多需要较长的时间,当这个JSP页面被再次访问时,则不需要再翻译和编译,JSP引擎可以直接来执行没有变动的JSP页面,因此页面的访问速度会大大提高,这样就相应提高了服务器的响应速度。当一个JSP页面被请求时,JSP引擎首先将其和其对应的Servlet文件相比较,如果此时的JSP页面文件最新,说明原来的JSP页面已经被更新了,需要重新编译;如果JSP页面文件没有变化,则直接执行原来的JSP页面。
1.1.3 JSP与ASP、PHP的比较
目前,建立Web站点的语言主要有ASP、PHP和JSP三种,前两者的领地正在不断地被后者抢占。
随着Internet的飞速发展和技术的不断进步,开发语言、IDE和数据库,都在不断地变革发展。在Web应用领域的ASP、PHP和JSP三种开发语言中,我们虽然可以说哪一种技术是最为流行的,但却很难说哪一种技术是最好的。每一种技术都在它最对口的应用上,可以最大限度地发挥它的作用,可以把我们想要的功能实现的最为完美。
1.ASP
ASP(Active Server Pages)是微软的Windows IIS系统自带的脚本语言,利用它可以开发动态的Web服务应用程序。ASP的语法非常类似Visual Basic,学过VB的人可以很快上手,ASP也是这几种脚本语言中最简单易学的开发语言。
ASP脚本简单、代码易懂,可快速地开发网站应用程序,是小型网站应用的最佳选择,但也是这几种语言中唯一不能支持跨平台的语言。
2.PHP
PHP(Hypertext Preprocessor)是一种嵌入HTML页面中的脚本语言。它大量地借用C 和Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速地开发动态网页。
PHP是完全免费的开源产品,但因为结构上的缺陷,其只适合编写小型的网站系统。
3.JSP
JSP(JavaServer Pages)是Sun公司推出的一种动态网页技术。JSP技术以Java语言为基础,熟悉Java的人可以快速上手。
JSP本身虽然也是脚本语言,却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行
程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此,普遍认为JSP的执行效率比PHP和ASP高。
JSP在技术结构上有着其他脚本语言所没有的优势:JSP可以通过JavaBean等技术实现内容的产生和显示相分离,并且JSP可以使用JavaBean或EJB来执行应用程序所要求的更为复杂的处理,进而完成企业级分布式的大型应用的开发。
虽然JSP的配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型网站系统来讲,JSP技术(结合JavaBean和EJB)几乎成为唯一的选择,不少国外的大型企业系统和商务系统都使用JSP技术。作为Java技术家族的一部分,JSP技术能够支持高度复杂的基于Web的应用。
简而言之,JSP相比较而言,没有最好,只有更好。
1.1.4 JSP技术优势
作为一种流行的Web开发工具,JSP与其他动态网站开发技术比较,具有以下特点和优势。
1.平台和服务器的无关性
JSP应用程序可以跨平台执行,具有平台无关性,能够运行于Windows、Linux、UNIX、Solaris 和AIX等操作系统。具有“一次编写,到处运行”的技术优势。现在已经有许多Web服务器支持JSP,JSP具有良好的可移植性。
2.执行效率高
目前行的php开发工具有JSP以Java Servlet为基础,运行时,JSP引擎只需将JSP编译一次使之成为Servlet文件,当有相同的客户请求时,JSP服务器将产生该Servlet文件的一个线程来响应,而不是重新编译执行JSP文件,这样就大大提高了服务器的响应速度。
3.代码可重用性
JSP可以将商业逻辑封装在组件中,用来执行一些复杂的处理,这样有助于实现JSP 页面的模块化,便于开发人员的分工协作。如组件开发人员可以专注于组件开发,JSP页面编写人员可以专注于页面开发,在需要处理逻辑的地方使用组件,而不必关心其实现细节,并且当应用逻辑发生变动时,只需改动组件而不必更改JSP代码。这样,就极大地提高了代码的可重用性,增强了系统的可伸缩性,符合软件工程的设计思想。
4.易于维护性
使用JSP技术构建的应用程序更加易于维护和管理。JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现。由于JSP的开放性和跨平台性,能够适用网络中的各种Web应用程序不断地变化和发展。
5.开发工具全面强大
目前市面上有很多优秀的Java开发工具,如Eclipse、NetBeans和JBuilder等,借助这些开发工具进行JSP开发,可以高效地编写JSP代码。
6.快速上手,容易学习
JSP是以Java语言为基础的,而Java语言语法简单,可以快速上手。JSP程序设计人员在网页制作人员设计的HTML页面基础上,到需要插入JSP代码的地方编写JSP程序,就可生成JSP页面。
1.2 Web应用程序开发模式
由于Java EE(Java Platform,Enterprise Edition)各种架构的盛行,多层次、分布式的Web应用程序设计成为相当热门的开发技术,Eclipse在这方面具有极为强大的开发能力,可用来生成各种各样的Web应用程序。
在三层应用中,客户层、Web层和数据库层分别属于三个不同的层面。这些层次可以位于同一台机器上,但通常情况下它们分布在不同的物理机器上。所谓多层次分布式计算,即是将程序从逻辑上划分为不同的层次,分别在不同的组件上运行以共同完成某一业务功能的操作。客户层应用程序在Web浏览器中运行,实现用户输入和操作界面的管理;Web 层应用程序在Web服务器中间件中运行;数据库层是一个具体的数据库管理系统,实现数据的查询、插入、更新和删除等操作。
开发Web应用程序,架构设置即选择一个合适的设计模式非常重要。在当今的Web
应用程序开发标准中,给出了两种使用JSP的方式,它们分别是Model 1模式和Model 2模式。Model 1是JSP+JavaBean的结合,Model 2是JSP+JavaBean+Servlet的结合。
1.Model 1模式
Model 1模式是指JSP+JavaBean。在该模式下JSP页面独自响应请求并处理结果返回给客户,通过JavaBean来完成数据处理,通过JSP实现页面显示。该模式实现了页面显示和业务逻辑的分离,比较容易上手,开发工具也比较丰富,可以实现快速开发。但是使用这种模式会导致页面里嵌入大量的Java代码,增加了页面维护的难度。
Model 1模式在开发一些小型项目时具有较大的优势,但缺点是程序复用度不高,当修改一些程序时,可能对其他程序产生较大影响,页面显示和业务逻辑没有完全分离,程序之间的耦合性较大。Model 1模式不适用于大规模项目的开发。
2.Model 2模式
Model 2模式是指JSP+JavaBean+Servlet。该模式结合了JSP和Servlet技术,充分利用了JavaBean技术的优点,实现了业务逻辑、显示逻辑和控制逻辑的分离,基于MVC的框架。MVC模式是目前十分流行的Web设计模式,MVC即Model-View-Controller(模型-视图-控制器)。Model表示应用程序的业务逻辑,常用JavaBean、EJB实现;View表示应用程序的显示,用JSP实现;Controller表示应用程序的控制逻辑,用Servlet实现。Model 2模式又称为MVC模式,该模式实现了业务逻辑和页面显示较大程度的分离,便于代码的维护管理,适用于大规模项目的开发,但开发的难度比Model 1模式大。
1.3 JSP开发Web网页的主要方式
根据开发规模的不同,JSP开发Web站点主要有以下几种方式。
1.直接使用JSP
这种方法最为简单,适合于一些小型的Web站点。在这种模式中,JSP页面可以利用JavaScript进行简
单的业务逻辑处理。
2.JSP+JavaBean
这种方法适合中小规模的Web站点。由于此类站点具有一定规模的商业逻辑,可以将商业逻辑和界面显示分开处理,利用JavaBean技术,对商业逻辑进行封装。商业逻辑可由专门的Java程序设计人员进行编写,而界面则由网页设计人员设计。
3.JSP+JavaBean+Servlet
在逻辑关系异常复杂的网站中,借助Servlet与JSP良好的交互关系以及JavaBean技术,利用JavaBean技术对商业逻辑进行封装,Servlet技术对逻辑结构进行封装,JSP输出动态页面。在Java EE模型中,Servlet的这项功能可以被EJB代替。
4.Java EE
Java EE平台规范是一个用于简化分布式应用开发与部署的基于组件的模式。这种设计模式采用框架技术,用于快速实现客户解决方案,建立企业应用程序。JSP作为Java EE 的一个组成部分,可用于开发各种规模的Web站点。
对于大型复杂的Web应用,可以采用Java EE模型。Java EE可以广泛地采用框架技
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论