com.ibm.websphere.servlet.filter
Class ChainerServletjava.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.
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.