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.

Required init parameters

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.
 
Constructor Summary
ChainerServlet()
           
 
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
 

Field Detail

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.

See Also:
Constant Field Values
Constructor Detail

ChainerServlet

public ChainerServlet()
Method Detail

init

public void init()
          throws javax.servlet.ServletException
Initialize the servlet chainer.

Overrides:
init in class javax.servlet.GenericServlet
javax.servlet.ServletException

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
Throws:
javax.servlet.ServletException
java.io.IOException

destroy

public void destroy()
Specified by:
destroy in interface javax.servlet.Servlet
Overrides:
destroy in class javax.servlet.GenericServlet


 

WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.

 

IBM is a trademark of the IBM Corporation in the United States, other countries, or both.