JSP简介
2020-07-27 21:48:50
供稿:网友
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为http://www.javasoft.com/products/jsp。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
JSP技术在多个方面加速了动态Web页面的开发:
一.将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
二.强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
三.采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。
四.技术分析
Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出<% %>以及<%= %>。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点:
1、 JSP的效率和安全性更高
ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,包括笔者以前用ASP开发的网站,ASP程序全部被人下载了去。JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。
2、 JSP的组件 (Component) 方式更方便
ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。
3、 JSP的适应平台更广
ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。