Java EE 7 SDK

Samples Main Page

# The Dynamic Registration Servlet Sample Application

This sample application demonstrates the dynamic registration facilities for Servlets, Filters, and Listeners defined in the Servlet specification.

## Description

This sample application declares a `ServletContextListener` in its deployment descriptor. The `ServletContextListener` registers a servlet with name `DynamicServlet`, a `Filter` with name `DynamicFilter`, and a `ServletRequestListener` in response to the `ServletContextListener.contextInitialized` event.

The `Servlet`, `Filter`, and `ServletRequestListener` are registered using the `ServletContext.addServlet`, `ServletContext.addFilter`, and `ServletContext.addListener` methods respectively.

`ServletContext.addServlet` returns a `ServletRegistration` object, through which all aspects of the registered `Servlet`, including its mappings and initialization parameters, may be configured. Similarly, `ServletContext.addFilter` returns a `FilterRegistration` object, through which all aspects of the registered `Filter`, including its mappings and initialization parameters, may be configured.

The test client accesses the registered `Servlet` at its designated URI. The `Servlet` ensures that the `ServletRequestListener`, as well as the `Filter` that was mapped to the `Servlet`, have both been invoked by checking for the existence of `ServletRequest` attributes that must have been set by these entities.

## Key Features

This sample application demonstrates how to register the following elements in `ServletContextListener`:

- Servlets
- Filters
- Listeners

## Building, Deploying, and Running the Application

Perform the following steps to build, deploy, and run the application:

1. Set up your build environment and configure the application server with which the build system has to work by following the common build instructions.
2. `app_dir` is the sample application base directory: `samples_install_dir/servlet/dynamic-registration-war`.
3. ````Change directory to `app_dir.
   `
4. Build and deploy the sample application using the `mvn` target:

   Use the command below to run this sample which is using Cargo framework:

   `app_dir> mvn clean verify cargo:run`

   You can point Cargo to an already installed and running Glassfish server:

   `app_dir> mvn clean verify cargo:run -Dglassfish.home=$<glassfish_dir>` (e.g. ../glassfish4)

   You can also build, deploy the sample application without Cargo:

   `app_dir> mvn install`

   `app_dir> asadmin deploy ./target/<app_name>.war`

5. To test the application, use a web browser to access
   `http://<javaee.server.name>:<javaee.server.port>/dynamic-registration-war`
   You should see the following output:
   `HELLO WORLD! GLASSFISH`
6. Use the glassfish command line to undeploy the application.

   `app_dir> asadmin undeploy` <app_name>

7. Use the target `clean` to remove the temporary directories like /target.

   `app_dir> mvn clean`

## Building, Deploying, and Running the Application in NetBeans IDE

Perform the following steps to build, deploy, and run the application using NetBeans IDE:

1. Refer to the common build instructions for setting up NetBeans IDE and Java EE 7 SDK.
2. In the NetBeans IDE, choose File → Open Project (Ctrl-Shift-O), navigate to the `samples_install_dir/servlet/` directory, select `dynamic-registration-war`, and click Open Project.
3. In the Projects tab, right click `dynamic-registration-war` and select Run to build, deploy, and run the project.

## Troubleshooting

If you have problems when running the application, refer the troubleshooting document.

Copyright © 1997-2013 Oracle and/or its affiliates. All rights reserved.