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.