Defining Filters, Servlets, and Listeners
Each filter, servlet, or listener implementation must contain a macro that expands to a create function. The Agent uses this function to load an instance of the class.
The name of each macro starts with RWSF_DEFINE. HydraExpress includes two macros for each type of object, as shown in Table 2:
Table 2 – Macros for defining filters, servlets, and listeners 
Macro
Expands to Function Name
RWSF_DEFINE_SERVLET(ServletClass)
createServletClass
RWSF_DEFINE_SERVLET_NAME(ServletClass, functionName)
functionName
RWSF_DEFINE_LISTENER(ListenerClass)
createListenerClass
RWSF_DEFINE_LISTENER_NAME(ListenerClass, functionName)
functionName
RWSF_DEFINE_FILTER(FilterClass)
createFilterClass
RWSF_DEFINE_FILTER_NAME(FilterClass, functionName)
functionName
Of the two versions of each servlet, listener, and filter macro in Table 2, the first listed uses the default function name “create<typeofClass>. For example, the macro RWSF_DEFINE_SERVLET(MyServlet) expands to the function createMyServlet in the class, MyServlet. The Agent uses the function to construct an instance of the servlet.
 
RWSF_DEFINE_SERVLET(MyServlet)
This is referenced in the servlet configuration file web.xml:
 
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet_library.createMyServlet</servlet-class>
</servlet>
The second macro, RWSF_DEFINE_SERVLET_NAME(ServletClass, functionName) allows you to create a custom function name that is more relevant to your own applications, such as:
 
RWSF_DEFINE_SERVLET_NAME(MyServletClass, generateServlet)
In this example, the function name will be generateServlet instead of createServletClass, and web.xml will define the servlet like this:
 
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet_library.generateServlet</servlet-class>
</servlet>
Note the servlet configuration above indicates that class MyServlet has been built into the shared library, MyServlet_library.
See Chapter 4 for information on adding filters, listeners, and servlets to the servlet container.