com.ibm.websphere.servlet.filter
Class ChainerServlet
java.lang.Object
|
+--javax.servlet.GenericServlet
|
+--javax.servlet.http.HttpServlet
|
+--com.ibm.websphere.servlet.filter.ChainerServlet
- All Implemented Interfaces:
- java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
- public class ChainerServlet
- extends javax.servlet.http.HttpServlet
Servlet that chains the responses of servlets together.
This servlet requires an init parameter 'chained.path.list'
that contains a space delimited list of servlet paths that
should be chained together.
A servlet chain acts as a response pipe that allows servlets
to filter the output of the previous servlet in the chain.
When a servlet writes header or output stream data to the response,
this data is fed into a chained request object that will be passed
to the next servlet in the chain. The next servlet can examine the
contents of the chained request to see the response that was
generated by the previous servlet. The data written by the last
servlet in the chain will be sent back to the client.
To setup a servlet chain, an instance of this servlet must be
registered as the target servlet in the engine. When this servlet
is invoked, the response will be generated by chaining the response
of each servlet in the chainer.pathlist parameter. The
response of the final servlet in the chain will be written to the
client.
Example usage: Setup a servlet chain at the URI /servlet/upperCaseSnoop for /servlet/snoop-->/servlet/upperCaseFilter.
The result of this chain should force the output of snoop to become capitalized.
- Step 1: Register an instance of ChainerServlet and map it to URI /servlet/upperCaseSnoop
- Step 2: Add an init parameter of 'chainer.pathlist=/servlet/snoop /servlet/upperCaseFilter'
- Step 3: Request the URL: http://host/servlet/upperCaseSnoop
Required init parameters
- chainer.pathlist: space separated list of servlet paths to chain together
- See Also:
- Serialized Form
Field Summary |
static java.lang.String |
PARAM_SERVLET_PATHS
chainer.pathlist: the name of the parameter that specifies the chained servlet path list. |
Method Summary |
void |
destroy()
|
void |
init()
Initialize the servlet chainer. |
void |
service(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Handle a servlet request by chaining the configured list of servlets. |
Methods inherited from class javax.servlet.http.HttpServlet |
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service |
Methods inherited from class javax.servlet.GenericServlet |
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PARAM_SERVLET_PATHS
public static final java.lang.String PARAM_SERVLET_PATHS
- chainer.pathlist: the name of the parameter that specifies the chained servlet path list.
ChainerServlet
public ChainerServlet()
init
public void init()
throws javax.servlet.ServletException
- Initialize the servlet chainer.
- Overrides:
init
in class javax.servlet.GenericServlet
service
public void service(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException,
java.io.IOException
- Handle a servlet request by chaining the configured list of servlets.
Only the final response in the chain will be sent back to the client.
This servlet does not actual generate any content. This servlet only
constructs and processes the servlet chain.
- Overrides:
service
in class javax.servlet.http.HttpServlet
- Parameters:
req
- HttpServletRequestresp
- HttpServletResponse- Throws:
javax.servlet.ServletException
- java.io.IOException
-
destroy
public void destroy()
- Overrides:
destroy
in class javax.servlet.GenericServlet