Oracle JavaServer Pages Developer's Guide and Reference
Release 8.1.7

Part Number A83726-01





Go to previous page Go to beginning of chapter Go to next page

Support for OracleJSP in Oracle Environments

This section provides brief overviews of Oracle environments that support and provide OracleJSP, covering the following topics:

The Oracle Servlet Engine (OSE), a Web server and servlet container that runs inside the Oracle8i database, supports a JSP pre-translation model. JSP pages are translated into servlets prior to or during deployment into the database and subsequently run in the database address space.

For the other Oracle environments, the OracleJSP container supports the typical on-demand translation model, typically translating the pages at runtime. OracleJSP is designed to run effectively in either situation and provide consistent semantics regardless of your choice of server.

Overview of the Oracle Servlet Engine (OSE)

If your JSP pages are intended to access an Oracle8i database, you can execute them directly in the database--the Oracle Servlet Engine (OSE), which is included with Oracle8i JServer, incorporates the OracleJSP container. This reduces communication overhead compared to JSP execution in a middle tier. Access to the database is through the Oracle JDBC server-side internal driver.

The OSE execution model requires the developer to take some special steps to deploy the JSP pages into the Oracle8i database. This includes translating the pages, loading them into the server, and "publishing" them to make them available for execution.

During installation of Oracle8i release 8.1.7, the Oracle HTTP Server, powered by Apache, is set as the default Web server, acting as a front-end for JSP and servlet applications running in OSE. Refer to your installation instructions if you want to change this setting.

Oracle Servlet Engine release 8.1.7 supports the servlet 2.2 and JSP 1.1 specifications, incorporating OracleJSP release 8.1.7 (

Overview of the Oracle Internet Application Server

The Oracle Internet Application Server is a scalable, secure, middle-tier application server. It can be used to deliver Web content, host Web applications, connect to back-office applications, and make these services accessible to any client browser. Users can access information, perform business analysis, and run business applications on the Internet or corporate intranets or extranets.

To deliver this range of content and services, Oracle Internet Application Server release 1.0.x incorporates the Oracle HTTP Server release 1.0.0 (powered by Apache), the iCache for database caching and applications in the middle tier, Oracle Forms Services and Oracle Reports Services to support Oracle Forms-based applications and reports generation, and various business logic runtime environments that support Enterprise JavaBeans, stored procedures, and Oracle Business Components for Java.

For database access, the Oracle HTTP Server can route HTTP requests to servlets or JSP pages running in either of the following scenarios:

Oracle Internet Application Server release 1.0.x provides servlet and JSP environments as follows:

See the Oracle Internet Application Server 8i Documentation Library for more information about the Internet Application Server.


Future releases of Oracle Internet Application Server may replace the Apache/JServ environment with an alternative servlet environment.  

Role of the Oracle HTTP Server, Powered by Apache

Oracle HTTP Server release 1.0.0, powered by the Apache Web server, is included with Oracle Internet Application Server release 1.0.x and Oracle8i release 8.1.7 as the HTTP entry point for Web applications accessing the Oracle8i database.

You can employ the Oracle HTTP Server to access Oracle8i from applications running either inside or outside the database. It accesses the database through appropriate Apache add-on modules.

The remainder of this section covers the following topics:

Use of Apache Mods

In using the Oracle HTTP Server, powered by Apache, dynamic content is delivered through various Apache mod components provided either by Apache or by other vendors such as Oracle. (Static content is typically delivered from the file system.) An Apache mod is typically a module of C code, running in the Apache address space, that passes requests to a particular mod-specific processor. (The mod software will have been written specifically for use with the particular processor.)

The following Apache mods are of interest to OracleJSP developers:

More About mod_ose

The mod_ose component, supplied by Oracle, delegates HTTP requests to JSP pages or servlets running in OSE. It communicates with OSE using HTTP over the Net8 protocol and can handle either stateless or stateful requests. Each virtual domain configured in the Oracle HTTP Server is associated with a database connection string (a Net8 name-value list) that indicates where to make a connection to execute the request. The connection uses Net8 directly, providing the same load balancing and hot backup functionality as OCI.

If an application running in an Oracle Internet Application Server framework uses mod_ose, then the Internet Application Server's Apache/JServ servlet 2.0 environment is not involved. The Oracle Servlet Engine's own servlet 2.2 environment is used instead.

JSP applications and servlets running in OSE use the Oracle JDBC server-side internal driver for rapid database access. For an overview of OSE, see "Overview of the Oracle Servlet Engine (OSE)".

You can use the JServer session shell exportwebdomain command to configure mod_ose to find published servlets and JSP pages in the database.

See the Oracle8i Oracle Servlet Engine User's Guide for more information about mod_ose and for information about the exportwebdomain command.

More About mod_jserv

The mod_jserv component, supplied by Apache, delegates HTTP requests to JSP pages or servlets running in the Apache/JServ servlet container in a middle-tier JVM. Oracle Internet Application Server release 1.0.x includes the Apache/JServ servlet container, which supports the servlet 2.0 specification, and either JDK 1.1.8 or 1.2.2. The middle-tier environment may or may not be on the same physical host as the back-end Oracle8i database.

Communication between mod_jserv and middle-tier JVMs uses a proprietary Apache/JServ protocol over TCP/IP. The mod_jserv component can delegate requests to multiple JVMs in a pool for load balancing.

JSP applications running in middle-tier JVMs use the Oracle JDBC OCI driver or Thin driver to access the database.

Servlet 2.0 environments (as opposed to servlet 2.1 or 2.2 environments) have issues that require special consideration. See "Considerations for Apache/JServ Servlet Environments".

Refer to Apache documentation for mod_jserv configuration information. (This documentation is provided with Oracle8i and with the Oracle Internet Application Server.)

Oracle Web Application Database Access Strategies

Developers who are targeting the Oracle8i database from JSP applications have a number of options, including the following:

  1. Run in the Apache/JServ servlet container through the Oracle HTTP Server (using mod_jserv).

  2. Run in the Oracle Servlet Engine through the Oracle HTTP Server (using mod_ose).

  3. Run in the Oracle Servlet Engine and use it as the Web server directly (although it is generally recommended to use Oracle HTTP Server).


    When you use the Oracle HTTP Server, be aware that the Apache/JServ servlet container has a different default doc root for static files than the Oracle Servlet Engine has. See "Doc Root for Oracle Internet Application Server Versus Oracle Servlet Engine".  

Running in Apache/JServ, because it uses a standard JVM (currently JDK 1.2.2 or 1.1.8), is necessary if you want to use the JDBC OCI driver or if the application requires Java features not available in the Oracle8i JServer environment (JNI, for example).

However, running in Apache/JServ has the disadvantage of requiring a pool of multiple JVMs that must be configured manually. (For more information, refer to the Apache mod_jserv documentation provided with Oracle8i or the Oracle Internet Application Server.)

If you do not require Java features such as JNI, especially for applications that are SQL-intensive, running in OSE is usually preferable for the following reasons:

Although employing the Oracle Servlet Engine directly as the Web server is feasible, and may be preferable in some situations, accessing it through the Oracle HTTP Server and mod_ose is the typical scenario and is recommended.

In particular, Oracle HTTP Server and mod_ose can handle the following situations that OSE by itself cannot:

The default installation of Oracle8i release 8.1.7 uses the Oracle HTTP Server as the front-end Web server for JSP pages and servlets that run in OSE.

Overview of Other Oracle JSP Environments

In addition to the Oracle Servlet Engine and Oracle Internet Application Server, the following Oracle environments support OracleJSP:

Oracle Application Server

Oracle Application Server (OAS) is a scalable, standards-based middle-tier environment for application logic, offering database integration in supporting business applications in both corporate and e-business environments.

New customers will presumably use Oracle Internet Application Server, discussed previously, instead of OAS. For existing OAS customers, however, Oracle Application Server release includes a servlet 2.1 environment and OracleJSP release (supporting the JSP 1.0 specification).

Refer to the Oracle Application Server Developer's Guide: JServlet and JSP Applications for more information.

Oracle Web-to-go

Oracle Web-to-go, a component of Oracle8i Lite, consists of a collection of modules and services that facilitate development, deployment, and management of mobile Web applications.

Web-to-go lets developers extend Web-based applications to intermittently connected users without coding the infrastructure required for replication, synchronization, and other networking issues. Unlike traditional mobile computing technologies, which rely on custom or proprietary application-programming interfaces (APIs), Web-to-go uses industry-standard Internet technologies.

Web-to-go release 1.3 provides a servlet 2.1 environment and OracleJSP release (supporting the JSP 1.0 specification). Future releases will offer a servlet 2.2 environment and OracleJSP 1.1.x.

Refer to the Oracle Web-to-go Implementation Guide for more information.

Oracle JDeveloper

JDeveloper is a Java development tool, rather than a "platform" like the other Oracle products listed here, but incorporates a Web listener, servlet runner, and the OracleJSP container for execution and testing.

See "Oracle JDeveloper Support for OracleJSP" for more information.

JDeveloper version 3.1 provides a servlet 2.1 environment and OracleJSP release (supporting the JSP 1.0 specification). Future releases will offer a servlet 2.2 environment and OracleJSP 1.1.x.

Go to previous page
Go to beginning of chapter
Go to next page
Copyright © 1996-2000, Oracle Corporation.

All Rights Reserved.