Sun Java System Application Server 7 Web应用开发者指南

目录 | 下一部分


Web应用

本模块介绍Web应用是怎样在Sun Java System Application Server中得到支持的,包括以下各节:

介绍Web应用

Sun Java System Application Server 7 支持 Servlet 2.3 API 规范, 它允许 servlet JSP被放在 Web 应用中使用。

一个 Web 应用通常包括许多 servlet JavaServer 页、HTML 文档,以及其它一些Web资源,如图像文件、压缩存档文件和其它的数据。Web应用可以被打包到一个存档文件 ( 一个WAR文件 ) 或放在一个公开的目录结构中。

下列图表可以展示 J2EE 环境的一些细节。Web应用属于表现层。在Web容器中运行着两个Web应用:一个是包括 EJB 模块和连接器的完整的应用程序的一部分, 而另外一个是单独配置的一个Web模块。

J2EE 环境下的Web应用

另外, Sun Java System Application Server 7 支持 SHTML CGI ,它们都是非J2EE应用程序的组件。

本节包括下列话题的概要:

Servlet

Java servlet 是一种在服务器端运行的Java 程序,应用程序服务器可以用它来为客户的请求生成响应内容。 Servlet 可以认为是一种applet,可以在没有用户界面的服务器端运行。Servlet 通过URL调用,或着由其它的 servlet调用。

Sun Java System Application Server 7 支持 2.3 版的Java Servlet 规范。

注意
 

Servlet API 2.3版与2.1 2.2版是充分向下兼容的, 因此所有现存的 servlet程序可以不经过修改或重新编译而直接运行。

可以使用Sun Microsystems提供的 Java Servlet API来开发 servlet。想了解如何使用Java Servlet API,请参考Sun Microsystems提供的相关文档:

http://java.sun.com/products/servlet/index.html

想了解如何在Sun Java System Application Server中开发 servlet,请参考"使用servlet"

JSP

Sun Java System Application Server 7 支持 JavaServer Page ( JSP ) 1.2版的规范。

JSP 实际上就是一种页面, 非常类似于HTML , 两者都可以通过Web浏览器来浏览。不过, 除了 HTML 标签,它还包括结合了Java 代码的一套JSP标签和指令,这些标签和指令可以增强网页设计者在网页中使用动态内容的能力。这些附加的特征提供了不少功能,例如显示属性值以及使用简单的条件语句。

JSP的主要的好处之一就是它们很像 HTML 页。网页设计者可以简单地编写使用了 HTML JSP 标签的页面,然后将其放在他们的应用程序服务器上就可以了。当页面被发布时,它可以自动的被编译。网页设计者不需要知道多少关于 Java 类和 Java 编译器的知识。

虽然Sun Java System Application Server支持JSP的预先编译(precompilation,然而一般只推荐在产品服务器上使用这种方式。

JSP 页面能通过下列方式来使用完整的 Java 功能:

  • 在页面的脚本代码中直接嵌入 Java 代码
  • 使用Java bean
  • 使用含有Java servlet的服务器端标签

虽然Bean servlet 都是需要经过编译的 Java 类,但是它们可以由Java 程序员来定义和编译,然后由他们来发布beanservlet的接口。网页设计者只需从JSP页面中来访问经过预先编译的bean servlet

Sun Java System Application Server 7 支持 JSP 标签库以及标准的可移植标签。

想了解创建JSP的方法,请访问Sun MicrosystemJavaServer Page网页:

http://java.sun.com/products/jsp/index.html

如果想了解关于 Java bean的信息,可以参考Sun Microsystem JavaBeans 网页:

http://java.sun.com/beans/index.html

如果想了解关于如何在Sun Java System Application Server中开发JSP的信息,请参考使用JSP

SHTML

HTML文件可以使用能在服务器上执行的标签。除了支持标准的服务器端标签,或SSI外 ,Sun Java System Application Server 7还允许你嵌入servlet并且定义你自己的服务器端标签。如果了解更多的信息, 可以参考使用服务器解析的HTML

CGI

公共网关接口( CGI )程序运行在服务器上,并且为发出请求的客户端产生并返回一个响应。CGI 程序可以用各种各样的语言来编写,包括 C 、C++、Java、Perl和shell脚本。可以通过URL来调用CGI程序。 Sun Java System Application Server与1.1版的CGI规范兼容。如果需要了解更多的信息,可以参考使用CGI

创建一个Web应用

创建Web应用:

1. 首先为Web应用的所有文件创建一个目录,作为Web应用文档的根目录。

2. 创建所有需要的HTML文件、图像文件和其它静态内容。 将这些文件放在文档根目录下,或者放在一个子目录下,以便让应用程序的其它部分可以访问得到。

3. 创建所有需要的JSP文件。如果需要了解更多的信息, 可以参考使用JSP

4. 创建所有需要的servlet。如果需要了解更多的信息, 可以参考使用servlet

5. 编译servlet。如果需要了解预先编译JSP的细节,可以参考 编译JSP:命令行编译器

6. 按照 Web Application Structure中描述的方式组织这个Web应用。

7. 创建部署描述文件。如果需要了解更多的信息,可以参考 装配和部署Web组件

8. 如果需要的话,将Web应用打包到一个WAR

jar -cvf module_name.war *
jar - cvf module_name.war *

9. 发布Web应用。如果需要了解更多的信息,可以参考 装配和部署Web组件

你可以手工创建一个Web应用,或者也可以使用。如果需要了解更多关于Sun Java System Studio的信息,可以参考Sun Java System Studio 4 ,企业版指南。

发布Web应用

Web应用的部署描述文件是被由Sun Java System Application ServerAdministration界面在发布期间所创建的。你也可以手工地创建这些文件。这些描述文件被打包在Web应用Archive ( .war )文件中。它们包含元数据和插入信息,后者用于确认servlet JSP,并建立它的应用程序身份。如果需要了解更多关于部署描述文件的信息,可以参考"装配和部署Web组件"

调试Web应用

如果需要了解更多关于如何调试应用程序的信息,可以参考Sun Java System Application Server开发者指南。

国际化问题

本节介绍了适用于以下方面的国际化问题:

服务器

如果需要设置整个Sun Java System Application Server的默认配置模式,包括Administration(管理)界面、log等等的配置,你可以选择以下方式中的一种:

  • 进入Administration界面中的服务器实例页面,单击Advanced标签,在Locale域中输入值, 然后单击保存按钮,单击General标签,选择Apply Changes按钮。
  • 在server.xml文件中设置server元素的local属性,重新启动服务器。如果需要了解更多关于server.xml文件的信息, 可以参考Sun Java System Application Server管理员配置文件参考。
Servlet

这一节解释Sun Java System Application Server如何决定为 servlet 请求和 servlet 响应进行字符编码的方式。

如果需要了解关于编码的信息,可以参考:

http://java.sun.com/j2se/1.4/docs/guide/intl/encoding.doc.html

Servlet请求

当处理一个 servlet 请求时,服务器按照以下优先次序,从第一个到最后一个,决定请求字符的编码:

  • setCharacterEncoding () 方法。
  • 按照在sun-web.xml文件中的paremeter-encoding元素规定的格式定义的hidden字段。如果需要了解更多的信息, 可以参考 parameter-encoding。
  • 字符编码方式由sun-web.xml文件中的locale-charset-info元素设置。如果需要了解更多关于此元素的信息, 可以参考 Internationalization Elements。
  • 默认方式,即ISO-8859-1。
Servlet响应

当处理一个servlet响应时, 服务器按照以下优先次序,从第一个到最后一个,来决定响应字符的编码:

  • setContentType () 方法。
  • setLocale () 方法。
  • 默认方式,即ISO-8859-1。
JSP

如果需要了解可以使用哪些编码方式,请参考:

http://java.sun.com/j2se/1.4/docs/guide/intl/encoding.doc.html

要设置JSP 字符的编码方式,可以使用页面指令。例如:

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@page contentType= “text /html
charset=Shift_JIS”%>

contentType 属性定义了下列内容:

  •    JSP页面的字符编码方式。
  • 页面的响应的字符编码方式。
  • JSP页面的响应的MIME类型。

默认值是text /html charset=ISO-8859-1

当处理JSP页面时, 服务器按照下列的优先次序,从第一个到最后一个,来决定字符编码方式:

  •    页面指令和JSP文件的contentType属性。
  • 默认方式,即ISO-8859-1。

有些JSP页面可以使用不同的content type和字符编码方式,取决于不同的请求时间输入。要动态地设置 content type,可以通过调用 response.setContentType()方法。只要没有内容被送到响应流,就可以调用这个方法。

虚拟服务器

虚拟服务器也叫了虚拟主机,是一种虚拟的Web服务器,它可以为一个特定的URL提供内容服务。多个虚拟服务器可以通过使用相同或不同的主机名、端口号或 IP地址来提供内容服务。HTTP服务程序可以直接接收发给不同的基于 URL的虚拟服务器的Web请求。

如果你是第一次安装Sun Java System Application Server,系统将创建一个默认的虚拟服务器。(你也可以为你创建的每个新的HTTP侦听程序分配一个默认的虚拟服务器。如果需要了解更多的细节,可以参考Sun Java System Application Server管理员指南。)

包含了Web组件的Web应用和J2EE应用程序可以放到虚拟服务器上运行。你能通过下列方式中的一种来分配虚拟服务器:

使用Administration界面

你可以按照"部署Web应用"中描述那样,将一个虚拟服务器分配给一个Web模块。

要使用Administration 界面为虚拟的服务器配置默认的Web模块,可以:

1. 按照"Deploying Web Applications"描述的那样来发布Web应用或 J2EE 应用程序。

2. 在你的服务器实例下打开 HTTP 服务器组件。

3. HTTP 服务器组件下打开虚拟服务器组件。

4. 选择你想要分配Web应用的目标虚拟服务器。

5. Default Web Module的下拉列表中选择Web模块。

6. 单击Save按钮。

7. 找到服务器实例页面,选择Apply Changes按钮。

如果需要了解更多的信息,可以参考"默认Web模块"。

编辑server.xml文件

Web模块被作为应用程序的一部分来发布时,在发布期间server.xml文件中将创建一个j2ee-application元素。如果Web模块是单独发布的,发布期间在server.xml中将创建一个web-module元素。j2ee-application and web-module元素都有一个virtual-servers属性,该属性指定了虚拟服务器的ID列表。virtual-servers属性默认为空,这意味着Web应用可以分配给所有的虚拟服务器。

server.xml文件中的每个virtual-server元素都有一个default-web-module 属性,通过该属性你可以为每个虚拟服务器分配一个默认的Web模块。安装时,就已经为每个虚拟服务器分配了默认的Web模块。如果需要了解更多的信息,可以参考"Default Web Modules"

如果需要了解更多关于server.xml和虚拟服务器的信息,可以参考Sun Java System Application Server管理员的配置文件参考。

默认Web模块

你可以为每个默认的虚拟服务器或者你新建的虚拟服务器分配一个默认的Web模块。如果需要了解更多的细节,可以参考"Virtual Servers"。为访问一个虚拟服务器的默认Web模块,你可以将浏览器的URL设为指向虚拟服务器的URL ,这里不要提供环境根目录。例如:

http://myvserver:3184/

如果你没有为虚拟服务器分配默认的Web模块,虚拟服务器将从它的文档根目录来提供HTMLJSP的内容服务,通常是 instance_dir/docroot。为了访问 HTML JSP 内容,你可以将浏览器的URL设成指向虚拟服务器的URL,这里不要提供环境根目录,但是要指定目标文件。例如:

http://myvserver:3184/hellothere.jsp

Servlet和JSP的缓存技术

Sun Java System Application Server支持servletJSP结果的缓存,这样一来,下次访问同样的servletJSP时速度就会更快一些。Sun Java System Application Server可以将请求结果缓存一段指定长的时间。通过这种方式,下一次调用数据时,Sun Java System Application Server就可以直接将缓存的数据返回,而不必再次执行相同的操作。例如,如果你的servlet需要没5分钟返回一次股票行情,你就可以将缓存时间设置成300秒。


对于servlet,如果需要了解更多关于响应缓存的信息,可以参考"缓存servlet结果"。如果需要更多关于JSP 缓存的信息,可以参考" JSP 缓存"

数据库连接池

数据库连接池可以提高 servlet JSP 与数据库交互的性能。有几个兼容JDBC 2.0的驱动程序都支持连接pooling ,例如 Pointbase ( 随不带Solaris 9捆绑安装的Sun Java System Application Server一起提供) Oracle 8i 的更新版,以及CloudScape 3.0 。如果需要了解JDBC的更多信息,可以参考Sun Java System Application Server开发者指南中的J2EE特征和服务部分。

配置Web容器

你可以通过下列方法来为整个服务器配置Web容器中的登录:

  • 通过使用Administration 界面;请参考Sun Java System Application Server管理员指南。
  • 通过编辑server.xml文件;请参考Sun Java System Application Server管理员的配置文件参考。
Web应用示例

用户能检验并且发布的Web应用样例在Sun Java System Application Server中都可以找到, 它们在 install_dir/ samples /webapps 目录下。每个样例都有它的自己的文档。


目录 | 下一部分

 

常见问答
下载中心
产品简介
 
 
Solaris论坛
 
   
 
null