JSP虚拟主机

生活百科 2023-01-17 17:58生活百科www.aizhengw.cn

JSP虚拟主机

JSP虚拟主机技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程式更加容易和快捷,而这些应用程式能够与各种Web伺服器,套用伺服器,浏览器和开发工具共同工作。

基本介绍

  • 中文名JSP虚拟主机
  • 作用能够快速地开发和测试
  • 背景全球资讯网短暂的历史中
  • 技术创建显示动态生成内容的Web页面
  • 性质开放的
  • 组件JSP动作或者标识等

什幺是JSP虚拟主机

在Sun正式发布 JSP(JavaServer Pages) 之后,这种新的Web套用开发技术很快引起了人们的关注。JSP为创建高度动态的Web套用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的伺服器产品。即使您对ASP“一往情深”,我们认为,关注JSP的发展仍旧很有必要。

技术

JSP虚拟主机
这里提供了JSP技术的全面概述,描述了其开发背景以及这项技术的总体目标。,在一个简单示例中,还描述了一个基于JavaTM技术的页面的关键组成部分。

背景

开发基于Web的应用程式在全球资讯网短暂的历史中,它已经从一个大部分显示静态信息的网路演化到对股票进行交易和进行购书操作的一个基础设施。在各种各样的应用程式中,对于可能使用的基于Web的客户端,看上去没有任何限制。
基于浏览器客户端的应用程式比传统的基于客户机/伺服器的应用程式有几个好处。这些好处包括几乎没有限制的客户端访问和极其简化的应用程式部署和管理(要更新一个应用程式,管理人员只需要更改一个基于伺服器的程式,而不是成千上万的安装在客户端的应用程式)。这样,软体工业正迅速地向建造基于浏览器客户端的多层次应用程式迈进。
这些快速增长的精巧的基于Web的应用程式要求开发技术上的改进。静态HTML对于显示相对静态的内容是不错的选择;新的挑战在于创建互动的基于Web的应用程式,在这些程式中,页面的内容是基于用户的请求或者系统的状态,而不是预先定义的文字。
对于这个问题的一个早期解决方案是使用CGI-BIN接口;开发人员编写与接口相关的单独的程式,以及基于Web的应用程式,后者通过Web伺服器来调用前者。这个方案有着严重的扩展性问题——每个新的CGI要求在伺服器上新增一个进程。如果多个用户并发地访问该程式,这些进程将消耗该Web伺服器所有的可用资源,并且系统性能降低到极其低下的地步。
某些Web伺服器供应商已经尝试通过为他们的伺服器提供“外挂程式”和API来简化Web应用程式的开发。这些解决方案是与特定的Web伺服器相关的,不能解决跨多个供应商的解决方案的问题。例如,微软的Active Server PagesTM(ASP) 技术使得在Web页面上创建动态内容更加容易,也只能工作在微软的IIS和Personal Web Server上。
还存在其他的解决方案,都不能使一个普通的页面设计者能够轻易地掌握。例如,象Java Servlets这样的技术就可以使得用Java语言编写互动的应用程式的伺服器端的代码变得容易。一个Java Servlets就是一个基于Java技术的运行在伺服器端的程式(与Applet不同,后者运行在浏览器端)。开发人员能够编写出这样的Servlet,以接收来自Web浏览器的HTTP请求,动态地生成回响(可能要查询资料库来完成这项请求),然后传送包含HTML或XML文档的回响到浏览器。
採用这种方法,整个网页必须都在Java Servlet中製作。如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlet,即使在逻辑上已经能够运行了。採用这种方法,生成带有动态内容的页面仍然需要应用程式的开发技巧。
很显然,目前所需要的是一个业界範围内的创建动态内容页面的解决方案。这个方案将解决当前方案所受到的限制,即
能够在任何Web或应用程式伺服器上运行
将应用程式逻辑和页面显示分离
能够快速地开发和测试
简化开发基于Web的互动式应用程式的过程
JavaServer Pages (JSP)技术就是被设计用来满足这样的要求的。JSP规範是Web伺服器、套用伺服器、交易系统、以及开发工具供应商间广泛合作的结果。太阳微系统公司(Sun Microsystems Inc.)开发出这个规範来整合和平衡已经存在的对Java编程环境(例如,Java Servlet和JavaBeansTM)进行支持的技术和工具。其结果是产生了一种新的、开发基于Web应用程式的方法,给予使用基于组件套用逻辑的页面设计者以强大的功能。
Web套用开发的JavaServer Pages技术方法
在开发JSP规範的过程中,太阳微系统公司(Sun Microsystems Inc.)与许许多多主要的Web伺服器、套用伺服器和开发工具供应商,以及各种各样富有经验的开发团体进行合作。其结果是找到了一种为套用和页面开发人员平衡了可移植性和易用性的开发方法。
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的套用是必需的。
JSP页面看上去象什幺?
JSP页面看上去象标準的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。通常,JSP元件创建插入最终页面的文本。
使用示例是描述JSP技术的最好方法。下面的JSP页面非常简单;它列印带年、当月的天,并且根据时间使用"Good Morning"和"Good Afternoon"对您表示欢迎。
该页面结合了普通的HTML和大量JSP元件组成。
对时钟JavaBeans组件的调用
对一个外部档案的包含(用于着作权信息)
JSP表达式和脚本
<HTML>
<%@ page language=="java" imports=="com.wombat.JSP." %>
<H1>Welcome</H1>
<P>Today is </P>
<jsp:useBean id=="clock" class=="calendar.jspCalendar" />
<UL>
<LI>Day: <%==clock.getDayOfMonth() %>
<LI>Year: <%==clock.getYear() %>
</UL>
<% if (Calendar.getInstance().get({ %>
Good Morning
<% } else { %>
Good Afternoon
<% } %>
<%@ include file=="copyright.html" %>
</HTML>

组件

JSP

一个JSP指示将信息传送到JSP引擎。在这个示例中,第一行指出从该页面即将访问的一些Java程式语言的扩展的位置。指示被设定在<%@和%>标记中。
固定模板数据所有JSP引擎不能识别的标识将随结果页面传送。通常,这些标识是HTML或者XML标识。在上面的例子中包括无序列表(UL)和H1标识。
JSP动作或者标识这些通常作为标準或定製标识被实现,并且具有XML标识的语法。在这个例子中,jsp:useBean标识实例化伺服器端的Clock JavaBean。
一个表达式JSP引擎计算在<%==和%>标记间的所有东西。在上面的列表项中,时钟组件(Clock)的Day和Year属性值作为字元串返回,并且作为输出插入到JSP档案中。在上面的例子中,第一个列表项是日子,第二个是年份。
小脚本是执行不为标识所支持的功能或者将所有的东西捆绑在一起的小的脚本。JSP 1.0软体的内置脚本语言是基于Java语言的。在上面示例中的小脚本确定现在是上午还是下午,并且据此来欢迎用户。
这个例子可能小了一点,技术上却不是。从业务上可以将关键的处理封装在伺服器端的组件中,并且Web开发人员能够使用熟悉的语法和工具很容易地访问这些信息。基于Java的小脚本提供了一种灵活的方式以执行其他功能,而不要求扩展的脚本语言。页面作为整体是可读和可理解的,这就使得查找或者预防问题以及
共享工作更加容易。

详细描述

这些组件中的一部分在下面有更详细的描述。
JSP指示
JSP页面使用JSP指示将指令传递到JSP引擎。这其中包括
JSP页面指示传递页面相关的信息,例如缓冲区和执行绪信息或者出错处理。
语言指示指定脚本语言,以及所有的扩展。
包含指示(在上面例子中有显示)可以被用来在页面中包含一个外部的文档。一个好的例子是着作权文档或者公司信息文档——在一个集中地点保存该文档并且在页面中包含比在各个JSP页面中更新要容易些。,被包含的档案也可能是另一个JSP档案。
标识库指示指出页面可以调用的一个客户标识库。

JSP标识

绝大多数JSP处理将通过与JSP相关的基于XML的标识完成。JSP 1.0中包含大量标準标识,这些标识作为核心标识包括
jsp:useBean 这个标识声明对一个JavaBeans组件实例的使用。如果该组件的实例不存在,JavaBeans组件将实例化和注册这个标识。
jsp:setProperty 这个标识在组件的实例中设定一个属性的值。
jsp:getProperty 这个标识获取一个组件的实例的属性值,将其转化为字元串,并且将它放入隐含对象"out"中。
jsp:include
jsp:forward
1.1版本将包含更多的标準标识。
标识的好处在于它们易于在应用程式间使用和共享。基于标识的语法的真正威力来自于客户标识库的开发,使得工具供应商或其他人员能够为特定的要求创建和分派标识。

脚本元件

JSP页面可以在页面中包含小的脚本,称之为小脚本(scriptlets)。小脚本是一个代码片段,在请求的处理过程中被执行。小脚本可以和页面中的静态元件组合(正如上面的例子一样)起来创建动态生成的页面。
脚本在<%和%>标誌中被描述。在这对标誌中的所有东西都会被脚本描述语言引擎执行,在我们的例子中是主机上的Java虚拟机。
JSP规範支持所有常用的脚本元件,包括表达式和声明。
JSP页面的套用模型
JSP页面由JSP引擎执行,引擎安装在Web伺服器或者使用JSP的套用伺服器上。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面给客户端的回响。
JSP页面通常被编译成为Java Servlet。后者是一个标準的Java扩展,在www.java.站点有更详细的描述。页面开发人员能够访问全部的Java套用环境,以利用Java技术的扩展性和可移植性。
当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlet类,并且存储在伺服器的记忆体中。这使得在接下来的对该页面的调用有非常快的回响。(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题,或是伺服器端引用所引起的运行时语法分析。)
JSP页面可以包含在多种不同的套用体系结构或者模型中。JSP页面可以用于由不同协定、组件和格式所组成的联合体中。下面的小节描述了一些可能发生的情况。

一个简单套用

在一个简单实现中,浏览器直接调用JSP页面,JSP页面自己生成被请求的内容(可能会调用JDBC直接从资料库中获取信息)。JSP页面能够调用JDBC或者Java BlendTM组件来生成结果,并且创建标準的HTML,作为结果传送回浏览器。
这个模型基本上用JSP页面(编译成为Java Servlet)代替了CGI-BIN概念。这个方法拥有下列优点
简单而快速地编程
页面作者可以很容易地根据请求和资源状态生成动态内容
这个结构在许多套用上工作良好,但不能扩展到大量的基于Web的并发客户访问稀少的企业资源,因为每个客户必须建立或者共享一个到可用内容资源的连线。例如,如果JSP页面访问资料库,可能生成许多到资料库的连线,这将影响到资料库的性能。

使用Java Servlet的一个灵活的套用

在另一种可能的配置中,基于Web的客户机可能直接对Java Servlet进行请求,Servlet生成动态内容,将结果捆绑到一个结果对象中并且调用JSP页面。JSP页面从该对象中访问动态内容,并且将结果(例如HTML)传送回浏览器。
这个方法创建了更多的可以为应用程式间共享的可重用的组件,并且可以作为更大的套用的一部分完成。,在处理如资料库一样的企业资源的连线时,还是存在扩展性问题。
採用企业级JavaBean技术的可扩展处理
JSP页面也可以作为企业级JavaBean(EJB)体系结构中的一个中间层。在这种情况下,JSP页面和后端资源通过EJB组件进行互动。
EJB组件管理对后端资源的访问,从而为众多的并发使用者提供可扩展的性能。对于电子商务或者其他套用,EJB管理交易和潜在的安全性。这将简化JSP页面。这个模型将为Java 2企业版(J2EE)平台所支持。

JSP页面与XML技术的集成

JSP页面可以用于生成XML和HTML页面。
对于简单的XML生成,开发人员可以包含XML标识和JSP页面的静态模板部分。对于动态XML生成,使用基于伺服器的对象和生成XML输出的客户化标识。
JSP页面与XML工具不是不兼容的。儘管Sun在设计JSP规範时使得JSP页面即使手工操作对于创作者而言也是很容易的,JSP规範也提供了一个机制以便于创建任意JSP页面的一个XML版本。通过这种方法,XML工具能够创作和操作JSP页面。
通过将JSP标识和元件转换为与XML兼容的对等物,可以使用基于XML的工具来操作JSP页面。例如,脚本可以被包含在<%和%>之中,或者基于XML标誌的<jsp:scriptlet>和</jsp:scriptlet>中。事实上,经过下面这样简单的几步将JSP页面转换为XML页面是可能的,这些步骤包括

增加一个JSP根元件

将元件和指示转换为XML兼容的对等物
为页面上其他的元件(通常非JSP)创建CDATA元件
通过这个与XML兼容的方法,创建HTML页面的设计者仍然拥有一个快速创建动态Web页面的易用环境,,基于XML的工具和服务可以与JSP页面集成并且和JSP兼容的伺服器一起工作。

JSP技术的未来

JSP技术被设计为一个开放的,可扩展的建立动态Web页面的标準。开发人员可以使用JSP页面来创建可移植的Web套用,在不同的Web和套用伺服器上为不同的场合所运行,而不论採用什幺适合本身场合和需要的创建工具。
JSP虚拟主机
通过与业界领袖的合作,Sun保证JSP规範是开放的和可移植的。可以使用任何客户机和伺服器平台,在任何地方编写和部署它们。将来,工具供应商和其他厂商将通过为专门的功能提供客户化的标识库而扩展平台的功能。
JSP规範的1.0版本是通向动态Web页面生成的一个开放的工业标準方法的第一步。1.0版本通过一个核心标识集、隐含对象以及开始创建动态Web页面所需的基本功能构成了该方法的基础。已经有几个Web伺服器,套用伺服器和开发工具供应商正在为他们的产品添加JSP1.0的支持,这样在业界已经拥有了最初的、立即的支持。
在1999晚些时候将完成的1.1版本,通过更多的XML支持、客户化标识、以及与J2EE的集成而扩展这个版本。并且供应商们可能会有选择地扩展和扩充在JSP规範中基本的、必需的功能。JSP引擎能够强有力地支持多种脚本语言和对象模型。在业界扩充和使用JSP技术能力的,也向Sun承诺将保证JSP技术保持平台和伺服器间固有的可移植性。

JSP与ASP 的简单比较

JSP与 Microsoft 的ASP技术非常相似。两者都提供在 HTML 代码中混合某种程式代码、由语言引擎解释执行程式代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程式代码则用来描述处理逻辑。普通的HTML页面只依赖于Web伺服器,而ASP和JSP页面需要附加的语言引擎分析和执行程式代码。程式代码的执行结果被重新嵌入到 HTML 代码中,然后一起传送给浏览器。ASP和JSP都是面向Web伺服器的技术,客户端浏览器不需要任何附加的软体支持。ASP的程式语言是VBScript 之类的脚本语言,JSP使用的是 Java ,这是两者最明显的区别。,ASP与JSP还有一个更为本质的区别两种语言引擎用完全不同的方式处理页面中嵌入的程式代码。在ASP下, VBScript 代码被ASP引擎解释执行;在JSP下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。
运行环境
JSP规範定义了供应商在创建JSP引擎时所必须遵从的一些规则。执行JSP代码需要在伺服器上安装JSP引擎。此处我们使用的是Sun的 JavaServerWebDevelopment Kit ( JSWDK )。为便于学习,这个软体包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动伺服器。在默认配置下伺服器在连线埠 8080 监听,使用 http://localhost:8080 即可打开预设页面。在运行JSP示例页面之前,请注意一下安装 JSWDK 的目录,特别是“ work ”子目录下的内容。执行示例页面时,可以在这里看到JSP页面如何被转换成 Java 源档案,然后又被编译成 class 档案(即 Servlet )。 JSWDK 软体包中的示例页面分为两类,它们或者是JSP档案,或者是包含一个表单的 HTML 档案,这些表单均由JSP代码处理。与ASP一样,JSP中的 Java 代码均在伺服器端执行。,在浏览器中使用“查看源档案”选单是无法看到JSP原始码的,只能看到结果 HTML 代码。所有示例的原始码均通过一个单独的“ examples ”页面提供。

JSP和Active Server Pages(ASP)相比

Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP套用可以移植到其他作业系统和非Microsoft的Web伺服器上。

JSP和纯Servlet相比

JSP并没有增加任何本质上不能用Servlet实现的功能。,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。更重要的是,藉助内容和外观的分离,页面製作中不同性质的任务可以方便地分开比如,由页面设计专家进行HTML设计,留出供Servlet程式设计师插入动态内容的空间。

JSP和JavaScript相比

JavaScript能够在客户端动态地生成HTML。虽然JavaScript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对JavaScript来说都是不可用的。,由于是在客户端运行,JavaScript不能访问伺服器端资源,比如资料库、目录信息等等。
JSP和伺服器端包含(Server-Side Include,SSI)相比
SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程式来生成动态内容。,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问资料库的“真正的”程式。

选购虚拟主机注意事项

1、IIS数和CPU占用率
IIS数IIS或WEB连线数指同一时间伺服器可以回响的访问请求,可以简单的理解为允许多少个浏览器视窗访问您的站点,比如说100个IIS连线数就可以有100个浏览器视窗与伺服器连线。
虚拟主机CPU占用率CPU是指你的虚拟主机在运行过程中,所占的整台伺服器的CPU资源的比例。
现在很多虚拟主机商都标榜不限制IIS数,以吸引客户。但实际情况是IIS可以不作出限制,但对你的CPU占用率作出严格的限制,这样的话,虽然你的IIS不受限制,但由于CPU占用率极少,反而降低了你的虚拟主机的可用性。其实是虚拟主机商在玩文字游戏。
2、流量与频宽限制
流量虚拟主机的某段时间内用户数量以及用户所浏览的页面数量等指标。
频宽虚拟主机频宽是指,虚拟主机在同一时间内传输档案的能力。
现在很多虚拟主机商写明,不限制月流量。但由于伺服器的频宽不是无限的,为了能儘量降低成本,一般伺服器的频宽都是百兆共享的。所以为了不影响其它客户的正常使用,虚拟主机租用商往往对每个用户的频宽作出严格的限制,即使你的网站一天24小时在运行。可能月总流量也只有那幺一点。
对于什幺都不限制的虚拟主机大家可要擦亮眼睛,因为什幺都不限制,到头来是什幺都受限制。

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有