Skip Headers

Oracle Application Server Containers for J2EE Support for JavaServer Pages Developer's Guide
10g (9.0.4)

Part Number B10320-01
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

2
Overview of the Oracle JSP Implementation

The JSP container provided with Oracle Application Server Containers for J2EE (OC4J) in the Oracle Application Server is a complete implementation of the JSP 1.2 specification. This functionality depends upon servlet 2.3 functionality, and the OC4J servlet container is a complete implementation of the servlet 2.3 specification.

This chapter provides overviews of the Oracle Application Server, OC4J, the OC4J JSP implementation and features, and custom tag libraries and utilities that are also supplied (documented in the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference).

The following sections are included:

Overview of the Oracle Application Server and JSP Support

The following sections provide a brief overview of the Oracle Application Server, its J2EE environment, its JSP implementation, and its Web server:


Note:

Users of earlier Oracle Application Server releases can refer to Oracle Application Server 10g Upgrading to 10g (9.0.4) for information about issues in migrating to the current release.


Overview of the Oracle Application Server

Oracle 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. Major areas of functionality include business intelligence, e-business integration, J2EE Web services, performance and caching, portals, wireless services, and management and security. For performance, scalability, and dependability, there are also clustering and load-balancing features.

To deliver this range of content and services, the Oracle Application Server incorporates many components, including the Oracle HTTP Server, Oracle Application Server Web Cache, Oracle Application Server Web Services, Oracle Application Server Portal, Oracle Application Server Wireless, Oracle Application Server Forms Services and Oracle Application Server Reports Services (to support Oracle Forms-based applications and reports generation), Oracle Application Server Personalization, and business logic runtime environments that support Enterprise JavaBeans, stored procedures, and Oracle Business Components for Java.

For its Java environment, Oracle Application Server provides the Oracle Application Server Containers for J2EE (OC4J), a J2EE 1.3-compliant set of containers and services. This includes the JSP container described in this manual, a servlet container, and an EJB container.

For administration, you can fully manage and configure Oracle Application Server and OC4J using the HTML-based Oracle Enterprise Manager. This includes full support for managing clustering, configuration, and deployment.


Notes:


Oracle HTTP Server and mod_oc4j

Oracle HTTP Server, powered by the Apache Web server, is included with Oracle Application Server as the HTTP entry point for Web applications, particularly in a production environment. By default, it is the front-end for all OC4J processes. Client requests go through Oracle HTTP Server first.

When the Oracle HTTP Server is used, dynamic content is delivered through various Apache mod components provided either by the Apache Software Foundation or by Oracle. Static content is typically delivered from the file system, which is more efficient in this case. 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.

Oracle Application Server supplies the mod_oc4j Apache mod, which is used for communication between the Oracle HTTP Server and OC4J. It routes requests from the Oracle HTTP Server to OC4J processes, and forwards responses from OC4J processes to Web clients.

Communication is through the Apache JServ protocol (AJP). AJP was chosen over HTTP because of a variety of AJP features allowing faster communication, including use of binary format and more efficient processing of message headers.

The following features are provided with mod_oc4j:


Notes:

  • Oracle Application Server also includes mod_jserv, from Apache, for the JServ servlet environment. This feature is documented in Appendix B, "The Apache JServ Environment". Additional Apache mod components provided with Oracle Application Server are not relevant for JSP applications.

  • Oracle HTTP Server is not relevant for an OC4J standalone environment (typically used only during development). See "OC4J Standalone".


Overview of OC4J

The following sections provide an overview of features of OC4J, the J2EE component of the Oracle Application Server:

OC4J General Features

OC4J is a high-performance, J2EE-compliant set of containers and services providing a scalable and reliable server infrastructure. In Oracle Application Server 10g (9.0.4), OC4J complies with the J2EE 1.3 specification.

For developer convenience, OC4J has been integrated with Oracle JDeveloper and other development tools, and can run in a standalone mode separate from Oracle Application Server during the development process.

Java applications built with any development tool can be deployed to OC4J, which supports standard EAR or WAR file deployment. You can debug applications deployed to OC4J through standard Java profiling and debugging facilities.

For security, OC4J supports Secure Socket Layer (SSL) and HTTPS functionality.


Note:

Each OC4J instance runs in a single Java virtual machine.


OC4J Services

OC4J supports the following Java and J2EE services:

See the Oracle Application Server Containers for J2EE Services Guide for information.

OC4J Containers

The OC4J 9.0.4 implementation supplies the following J2EE containers:

OC4J containers have been instrumented to support the Dynamic Monitoring Service (DMS) to provide runtime performance data. You can view this data through Enterprise Manager.


Note:

Servlet 2.3 compliance is required in order to support JSP 1.2 compliance.


Key Servlet Container Features

The OC4J servlet container supports the following key features:

See the Oracle Application Server Containers for J2EE Servlet Developer's Guide for information.

Key EJB Container Features

The OC4J EJB container supports the following:

EJB support in OC4J also includes these features:

See the Oracle Application Server Containers for J2EE Enterprise JavaBeans Developer's Guide for information.

OC4J Standalone

In a production environment, it is typical to use OC4J inside a complete Oracle Application Server environment, including the Oracle HTTP Server (as described in "Oracle HTTP Server and mod_oc4j"), OracleAS Web Cache, and Enterprise Manager.

For a development environment, OC4J is also available as a standalone component by downloading OC4J_extended.zip from the Oracle Technology Network (http://otn.oracle.com/tech/java/oc4j).

When using OC4J standalone, you can use its own HTTP Web listener through port 8888. For information about OC4J standalone, see the Oracle Application Server Containers for J2EE Stand Alone User's Guide (downloadable with OC4J_extended.zip) and the Oracle Application Server Containers for J2EE Servlet Developer's Guide.


Note:

To use OC4J standalone, you must have a supported version of the Sun Microsystems JDK installed. A JDK is not provided with the OC4J standalone product.


Overview of the JSP Implementation in OC4J

The JSP container in Oracle Application Server 10g (9.0.4) is compliant with the JSP 1.2 specification.

In general, a JSP 1.2 environment requires a servlet 2.3 environment, such as the OC4J servlet container. The OC4J JSP implementation, however, also supports running on Apache JServ, a servlet 2.0 environment. To make this possible, the OC4J JSP container emulates required servlet features beyond the 2.0 specification.

For a variety of reasons, though, it is generally advisable to use the OC4J servlet 2.3 environment.

These features are discussed in the following sections:

History and Integration of JSP Containers

In Oracle9iAS Release 1.0.2.2, the first release to include OC4J, there were two JSP containers: 1) a container developed by Oracle and known as "OracleJSP"; 2) a container licensed from Ironflare AB and known as the "Orion JSP container".

The OracleJSP container offered several advantages, including useful value-added features and enhancements such as for globalization. The Orion container also offered advantages, including superior speed, but had disadvantages as well. It did not always exhibit standard behavior when compared to the JSP reference implementation (Tomcat), and its support for internationalization and globalization was not as complete.

Oracle9iAS Release 2 (9.0.2) first integrated the OracleJSP and Orion containers into a single JSP container referred to in this manual as the "OC4J JSP container". This container offers the best features of both previous versions, runs efficiently as a servlet in the OC4J servlet container, and is integrated with other OC4J containers as well. The integrated container primarily consists of the OracleJSP translator and the Orion container runtime, running with a simplified dispatcher and the OC4J core runtime classes.

JSP Front-End Servlet and Configuration

The JSP container in OC4J uses the front-end servlet oracle.jsp.runtimev2.JspServlet. See "JSP Configuration in OC4J".

For non-OC4J environments, including Apache JServ, use the old front-end servlet, oracle.jsp.JspServlet. See "Getting Started in a JServ Environment".

OC4J JSP Features for JSP 1.2

In the OC4J 9.0.4 implementation, the OC4J JSP container is fully compliant with the JSP 1.2 specification. Most functionality introduced in this specification is in the area of custom tag libraries.

Configurable JSP Extensions in OC4J

In addition to JSP 1.2 compliance, the OC4J JSP container in Oracle Application Server 10g (9.0.4) includes the following notable features.

Also see "Overview of Oracle Value-Added Features".

The following have been supported since the OC4J 9.0.3 implementation:

The following features have been supported since the OC4J 9.0.2 implementation:

Portability Across Servlet Environments

The JSP container is provided as a component of OC4J but is portable to other environments. Because the OC4J JSP container itself emulates certain required servlet features, this portability extends to older servlet environments, in particular the Apache JServ servlet 2.0 environment. (Generally, a servlet 2.3 environment is required in order to support JSP 1.2 compliance.)

The servlet 2.0 specification was limited in that it provided only a single servlet context for each Java virtual machine, instead of a servlet context for each application. The OC4J JSP servlet emulation allows a full application framework in a servlet 2.0 environment, including providing applications with distinct servlet context and HTTP session objects.

Because of this extended functionality, the OC4J JSP container is not limited by the underlying servlet environment.

Oracle JDeveloper JSP Support

Visual Java programming tools now typically support JSP coding. In particular, Oracle JDeveloper supports JSP development and includes the following features:

See "Application Deployment with Oracle JDeveloper" for more information about JSP deployment support.

For debugging, JDeveloper can set breakpoints within JSP page source and can follow calls from JSP pages into JavaBeans. This is much more convenient than manual debugging techniques, such as adding print statements within the JSP page to output state into the response stream (for viewing in your browser) or to the server log (through the log() method of the implicit application object).

For information about JDeveloper, refer to the JDeveloper online help, or to the following site on the Oracle Technology Network:

http://otn.oracle.com/products/jdev/content.html

(You will need an Oracle Technology Network membership, which is free of charge.) For an overview of JSP tag libraries provided with JDeveloper, see the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference.


Note:

Other key IDE vendors have built plug-in modules that allow seamless integration with OC4J. This provides developers with the capability to build, deploy, and debug J2EE applications running on OC4J directly from within the IDE. You can refer to the following Web site for more information:

http://otn.oracle.com/products/ias/9ias_partners.html

Overview of Oracle Value-Added Features

OC4J value-added features for JSP pages can be grouped into three major categories:

The rest of this section provides feature summaries and overviews in these areas, plus a brief summary of Oracle support for the JavaServer Pages Standard Tag Library (JSTL). JSTL support is summarized more fully in the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference.

Summary of Tag Libraries and Utilities Provided with OC4J

This section provides a brief summary of extended OC4J JSP features that are implemented through standards-compliant custom tag libraries, custom JavaBeans, and other classes. These features are documented in the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference:


Note:

See "Overview of Tags and API for Caching Support" for an overview of additional tag libraries for caching.


Overview of Oracle-Specific Features

This section provides an overview of Oracle-specific programming extensions supported by the OC4J JSP container:


Important:

SQLJ is being desupported after the current release. Consult MetaLink, at the following location, for the desupport notice:

http://metalink.oracle.com/

SQLJ Support

Dynamic server pages commonly include data extracted from databases. JSP developers typically rely on the standard Java Database Connectivity (JDBC) API or a custom set of database JavaBeans.

SQLJ is a standard syntax for embedding static SQL instructions directly in Java code, greatly simplifying database-access programming. The OC4J JSP container supports SQLJ programming in JSP scriptlets.

SQLJ statements are indicated by the #sql token. You can trigger the JSP translator to invoke the Oracle SQLJ translator by using the file name extension .sqljsp for the JSP source code file, or by specifying language="sqlj" in a page directive.

For more information, see "JSP Support for Oracle SQLJ".

Global Includes

The OC4J JSP container provides a feature called global includes. You can use this feature to specify one or more files to statically include into JSP pages in or under a specified directory, through virtual JSP include directives. During translation, the JSP container looks for a configuration file, /WEB-INF/ojsp-global-include.xml, that specifies the included files and the directories for the pages.

This enhancement is particularly useful in migrating applications that had used globals.jsa or translate_params functionality in previous Oracle JSP releases. For more information, see "Oracle JSP Global Includes".

Support for Dynamic Monitoring Service

DMS adds performance-monitoring features to a number of Oracle Application Server components, including OC4J. The goal of DMS is to provide information about runtime behavior through built-in performance measurements so that users can diagnose, analyze, and debug any performance problems. DMS provides this information in a package that can be used at any time, including during live deployment. Data are published through HTTP and can be viewed with a browser.

The OC4J JSP container supports DMS features, calculating relevant statistics and providing information to DMS servlets such as the spy servlet and monitoring agent. Statistics include the following (using averages, maximums, and minimums, as applicable). Times are in milliseconds.

(Counts of JSP instances are applicable only for single-threaded situations, where isThreadSafe is set to false in a page directive.)

Standard configuration for these servlets is in the OC4J application.xml and default-web-site.xml configuration file. Use the Enterprise Manager to access DMS, display DMS information, and, if appropriate, alter DMS configuration.

Also see the Oracle Application Server 10g Performance Guide, which contains precise definitions of the JSP metrics and detailed instructions for viewing and analyzing them.

Enhanced Servlet 2.0 Support

OC4J supports special features for the servlet 2.0 JServ environment. It is highly advisable to migrate to the OC4J servlet 2.3 environment as soon as practical, but in the meantime, be aware of the following:

The referenced sections include information for migration to OC4J.

Overview of Tags and API for Caching Support

Faced with Web performance challenges, e-businesses must invest in more cost-effective technologies and services to improve the performance of their Internet sites. Web caching, the caching of both static and dynamic Web content, is a key technology in this area. Benefits of Web caching include performance, scalability, high availability, cost savings, and network traffic reduction.

OC4J provides the following support for Web caching technologies:

These features are documented in the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference.

Support for the JavaServer Pages Standard Tag Library

With Oracle Application Server 10g (9.0.4), the OC4J JSP product supports the JavaServer Pages Standard Tag Library (JSTL), as specified in the Sun Microsystems JavaServer Pages Standard Tag Library, Version 1.0 specification.

JSTL is intended as a convenience for JSP page authors who are not familiar or not comfortable with scripting languages such as Java. Historically, scriptlets have been used in JSP pages to process dynamic data. With JSTL, the intent is for JSTL tag usage to replace the need for scriptlets.

Key JSTL features include the following:

Tag support is organized into four JSTL sublibraries according to these functional areas.

For a more complete summary of JSTL support, you can refer to the Oracle Application Server Containers for J2EE JSP Tag Libraries and Utilities Reference. For complete information about JSTL, refer to the specification at the following location:

http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.html


Note:

The custom JML, XML, and data-access (SQL) tag libraries provided with OC4J pre-date JSTL and have areas of duplicate functionality. Going forward, for standards compliance, it is generally advisable to use JSTL instead of the custom libraries. Oracle is not desupporting the existing tags, however. For features in the custom libraries that are not yet available in JSTL, where there seems to be general usefulness, Oracle will try to have the features adopted into the JSTL standard as appropriate.



Go to previous page Go to next page
Oracle
Copyright © 2000, 2003 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index