正在加载图片...
1.3.2公共网关接(CGD 第一个普遍使用来产生动态内容的标准是公共网关接口 Common Gateway Interface (CGI)。CGl使用标准的操作系统特征,比如环境变量和标准输入输出,在web服务期间以及 和主机系统间创建桥和网关。其他程序可以看到 web server传递过来的请求,并创建一个定 制的响应 当web服务器接收到一个对CGl程序的请求,它便运行这个程序并提供它他请求里面包 含的信息。CG程序运行,并将输出返回给 Web server, web server则将输出响应给浏览器 CGI定义了一套关于什么信息将作为环境变量传递,以及它希望怎样使用标准输入和输出 的惯例。象HTTP一样,CGI是灵活和易于实现的,并且已经有大量现成的CGI程序。 CGI的主要缺点是它必须为每个请求运行一个程序。这是一个相对昂贵的处理方法, 对大容量站点来说,每分钟有数千个请求,有可能使站点瘫痪。CGI程序的另一个缺点是 平台依赖性,一个平台上开发的程序不一定在另一个平台上能运行。 1.3.3 Java servlet Sun公司的 Java Servlet平台直接解决了CGl程序的两个主要缺点。 首先, servlet比常规CGl程序提供更好的性能和资源利用。其次,一次编写,随处运行 的JAVA特性意味着 servlet在有JM的操作系统间是轻便可移动的。 Servlet看起来好像是一个微小的 web server。它接受请求并产生响应。但,和常规web servers不同, servlet apl是专门设计来帮助Java开发人员创建动态应用的。 Servlet本身是遍译成字节码的Java类,就像其他Java对象一样。 Servlet访问HTP特 定服务的API,但仍然有另外一个Java对象运行于程序之中,并管理所有的Java资产 为了使常规 web servers能访问 servlet, servlet被安插在一个容器之中。 Servlet容器连接 到Web服务器。每个 servlet都可以宣称它可以处理何种样式的URL。当符合所注册样式的 请求到达, web server将请求传递给容器,容器则调用响应的 servlet 但不像CGI程序,并不是针对每个请求创建一个新的 servlet。一旦容器实例化一个 servlet,它就仅为每个新的请求创建一个新的线程。Java线程可比使用CGl程序的服务器处 理开销小多了。 旦 servlet被创建,使用它处理额外的请求仅带来很小的额外开销。 Servlet开发人员 可以使用init()方法保持对昂贵资源的引用,比如到数据库或者 EJB Home接口的连接, 以便它们可以在不同的请求间进行共享。获得这些资源要耗费数秒时间,这比大多数冲浪者 愿意等的时间要长些。 Servlet的另一个好处是,它是多线程的, servlet开发人员必须特别注意确保它们的 servlet是线程安全的。学习 servlet编程,我们推荐 Java Servlets by example,作者 Alan r Williamson [ Williamson 1.3.4 Java Server Pages 虽然 servlets对CGl程序来说前进了一大部,但它也不是万能药。为产生响应,开发人员不 得不使用大量的 print1n语句来生成HTML。像这样的代码 out println("<P>one line of HTML</P>"); outprintln("<P>Another line of HTML </P>") 在产生HTTP响应的Servlet中是很普遍的。也有一些库有助于你产生HIML,随着应用越来 越复杂,Java开发人员将不再扮演HIML页面设计的角色 同时,大多数项目经理更喜欢将团队分成不同的小组。它们喜欢HTML设计人员处理1.3.2 公共网关接口(CGI) 第一个普遍使用来产生动态内容的标准是公共网关接口Common Gateway Interface (CGI)。CGI使用标准的操作系统特征,比如环境变量和标准输入输出,在Web服务期间以及 和主机系统间创建桥和网关。其他程序可以看到web server传递过来的请求,并创建一个定 制的响应。 当web 服务器接收到一个对CGI程序的请求,它便运行这个程序并提供它他请求里面包 含的信息。CGI程序运行,并将输出返回给Web server,web server则将输出响应给浏览器。 CGI 定义了一套关于什么信息将作为环境变量传递,以及它希望怎样使用标准输入和输出 的惯例。象 HTTP一样,CGI 是灵活和易于实现的,并且已经有大量现成的CGI 程序。 CGI 的主要缺点是它必须为每个请求运行一个程序。这是一个相对昂贵的处理方法, 对大容量站点来说,每分钟有数千个请求,有可能使站点瘫痪。CGI 程序的另一个缺点是 平台依赖性,一个平台上开发的程序不一定在另一个平台上能运行。 1.3.3 Java servlet Sun公司的Java Servlet 平台直接解决了CGI 程序的两个主要缺点。 首先,servlet 比常规CGI程序提供更好的性能和资源利用。其次,一次编写,随处运行 的JAVA特性意味着servlet在有JVM的操作系统间是轻便可移动的。 Servlet看起来好像是一个微小的web server。它接受请求并产生响应。但,和常规web servers不同,servlet API 是专门设计来帮助Java 开发人员创建动态应用的。 Servlet 本身是遍译成字节码的Java 类,就像其他Java对象一样。Servlet 访问HTTP特 定服务的API,但仍然有另外一个Java 对象运行于程序之中,并管理所有的Java资产。 为了使常规web servers能访问servlet,servlet 被安插在一个容器之中。Servlet容器连接 到Web服务器。每个servlet 都可以宣称它可以处理何种样式的URL。当符合所注册样式的 请求到达,web server 将请求传递给容器,容器则调用响应的servlet。 但不像CGI程序,并不是针对每个请求创建一个新的servlet。一旦容器实例化一个 servlet,它就仅为每个新的请求创建一个新的线程。Java 线程可比使用CGI程序的服务器处 理开销小多了。 一旦servlet 被创建,使用它处理额外的请求仅带来很小的额外开销。Servlet 开发人员 可以使用init() 方法保持对昂贵资源的引用,比如到数据库或者EJB Home 接口的连接, 以便它们可以在不同的请求间进行共享。获得这些资源要耗费数秒时间,这比大多数冲浪者 愿意等的时间要长些。 Servlet的另一个好处是,它是多线程的, servlet 开发人员必须特别注意确保它们的 servlet是线程安全的。学习servlet 编程,我们推荐Java Servlets by Example, 作者Alan R. Williamson [Williamson]。 1.3.4 JavaServer Pages 虽然servlets 对CGI 程序来说前进了一大部,但它也不是万能药。为产生响应,开发人员不 得不使用大量的println 语句来生成HTML。像这样的代码: out.println("<P>One line of HTML.</P>"); out.println("<P>Another line of HTML.</P>"); 在产生HTTP 响应的Servlet中是很普遍的。也有一些库有助于你产生HTML,随着应用越来 越复杂,Java 开发人员将不再扮演HTML 页面设计的角色。 同时,大多数项目经理更喜欢将团队分成不同的小组。 它们喜欢HTML 设计人员处理
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有