中间件
Application Server
最初发布时间:2004 年 11 月 1 日
最后更新时间:2006 年 1 月 16 日
作者:Frances Zhao
本演示将说明 OC4J 支持的某些 Servlet 2.4 特性:
本演示要求安装并正确配置了以下软件组件:
通过 Servlet 2.4,您现在可以将 servlet 用作 welcome 文件,这对于使用 servlet 作为“前端控制器”的应用程序很有用。为此,首先要在 web.xml 中定义 servlet。例如,在本方法文档的 web.xml 文件中写入以下内容:
<servlet>
<servlet-name>DemoServlet</servlet-name>
<servlet-class>web.DemoServlet</servlet-class>
</servlet>
<!-- optional -->
<servlet-mapping>
<servlet-name>DemoServlet</servlet-name>
<url-pattern>/demoservlet</url-pattern>
</servlet-mapping>
然后,在 web.xml 中创建一个指定上述 servlet 名称的 welcome-file 元素。例如:
<welcome-file-list>
<welcome-file>DemoServlet</welcome-file>
</welcome-file-list>
如 %HOWTO_HOME%/etc/web.xml 中所示,您同时还可以定义其他 welcome 文件,如果在 web 应用程序中找不到 servlet,可以使用这个方法。
Servlet 2.4 提供了两个可用于 HTTP 请求的新的监听程序接口:javax.servlet.ServletRequestListener 和 javax.servlet.ServletRequestAttributeListener。本演示应用程序只实现了前者,并且只要激活已配置的 servlet DemoServlet,就可以将日志消息打印到 OC4J 控制台。
对于实现的监听程序,每当 web 应用程序收到一个新请求,系统就会通知监听程序并调用它的 requestInitialized() 方法。该方法的参数类型为 javax.servlet.ServletRequestEvent。通过调用该对象的 getServletRequest() 方法,开发人员可以访问 javax.servlet.ServletRequest 类型的新请求(可以通过新请求执行所需的任何操作)。请参阅 %HOWTO_HOME%/src/web/java/ServletReqLsnr.java 获取详细信息。
实现的监听程序还必须有一个不带参数的构造函数。您在 web.xml 中定义实现的监听程序,如:
<listener>
<listener-class>web.ServletReqLsnr</listener-class>
</listener>
Servlet 2.4 为 ServletRequest 接口添加了一些新方法:
这些方法提供了一个机制,用于查询低级 IP 连接详细信息以及了解连接的路由方式。本方法应用程序还举例说明了如何调用这些方法,如 %HOWTO_HOME%/src/web/java/DemoServlet.java 中所示。
以下说明适用于在 Oracle Containers for J2EE 10g (10.1.3) 的独立实例上运行本演示。
请检查以确保以下属性在示例分发根目录下的 ant-oracle.properties 文件中配置正确(注意:某些属性将默认为相应环境变量的值,如下所示。如果您已经在环境中设置了这些变量,则不必在文件中更改这些值)。如果有必要,将这些变量修改为环境的相应值:
此外,请确保与 OC4J ant 版本关联的 ant 命令位于执行路径 ( %ORACLE_HOME%/ant/bin) 中。
如果您运行的是 Oracle 应用服务器 10 g 的受管理版本并且要使用 OPMN,则必须更改以下值以符合您的配置:
独立安装: %ORACLE_HOME%/bin/oc4j start
注意, oc4j 命令期望 JAVA_HOME 环境变量指向一个完整的 JDK 安装。
受管理的 OracleAS 安装: %ORACLE_HOME%/opmn/bin/opmnctl startall
确保与 OC4J ant 版本关联的 ant 命令位于执行路径 ( %ORACLE_HOME%/ant/bin) 中。
在顶层 %HOWTO_HOME% 目录中,键入命令:
%HOWTO_HOME%/lib 目录中现在应包含新建的 servlet_demo.ear 和 servlet_demo-web.war。
如果构建成功,此命令还将尝试部署此应用程序。它将首先测试 OC4J 是否正在运行。
还可以使用以下命令分别部署应用程序。确保定义了 %ORACLE_HOME% 环境变量。在顶层 %HOWTO_HOME% 目录中,键入命令:
在浏览器窗口中,浏览到:
如果网站主机名或端口号不同,则使用实际值替换。
还可以使用该链接访问 演示 servlet。重新加载该页面几次。检查结果页面,同时查看演示监听程序是否在 OC4J 控制台中更新了日志。
学习完本文档后,您应可以:
热门下载 | ||