-
Interfaces Interface Description com.ibm.wsspi.webcontainer.IRequest v7.0 Application developers requiring this functionality should implement this using com.ibm.websphere.servlet.request.IRequest.com.ibm.wsspi.webcontainer.IResponse v7.0 Application developers requiring this functionality should implement this using com.ibm.websphere.servlet.response.IResponse.
-
Classes Class Description com.ibm.websphere.servlet.filter.ChainedRequest Application developers requiring this functionality should implement this using jakarta.servlet.filter classes.com.ibm.websphere.servlet.filter.ChainedResponse Application developers requiring this functionality should implement this using jakarta.servlet.filter classes.com.ibm.websphere.servlet.filter.ChainerServlet Application developers requiring this functionality should implement this using jakarta.servlet.filter classes.com.ibm.websphere.servlet.filter.ServletChain Application developers requiring this functionality should implement this using jakarta.servlet.filter classes.com.ibm.websphere.servlet.request.HttpServletRequestProxy since WAS V6.0 Use the HttpServletRequestWrapper class instead. Proxies function invocations to an underlying HttpServletRequest. Subclasses of this class can be created that overload or enhance the functionality of a server-provided HttpServletRequest.Using the proxied request:
- Subclass this class and overload any desired functions.
- During the servlet's service method, create an instance of the enhanced request using the original request from the server as the proxied request.
- Forward the enhanced request to another servlet for processing instead of the original request that was provided by the server.
Sample subclass (overloads the request's InputStream)
// This enhanced request will force the request to be a POST request. // This request POST data input will be read from a specified file. public class PostedFileRequest extends HttpServletRequestProxy{ private HttpServletRequest _request; private File _file; public PostedFileRequest(File f, HttpServletRequest req){ _file =f; _request = req; } protected HttpServletRequest getProxiedHttpServletRequest(){ return _request; } //overload request functionality public ServletInputStream getInputStream() throws IOException{ return new ServletInputStreamAdapter(new FileInputStream(_file)); } public BufferedReader getReader() throws IOException{ return new BufferedReader(getInputStream()); } public String getMethod(){ //force the HTTP method to be POST. return "POST"; } }
Using the enhanced request subclass transparently in a servlet
//This servlet posts a data file as a request to another servlet. public class PostGeneratorServlet extends HttpServlet{ public void service HttpServletRequest req, HttpServletResponse resp){ req = new PostedFileRequest(req, new File(request.getPathTranslated())); //forward the enhanced request to be used transparently by another servlet. getServletContext().getRequestDispatcher("/postHandlerServlet").forward(req, resp); } }
com.ibm.websphere.servlet.response.HttpServletResponseProxy since WAS V6.0 Use the HttpServletResponseWrapper class instead. Proxies function invocations to an underlying HttpServletResponse. Subclasses of this class can be created that overload or enhance the functionality of a server-provided HttpServletResponse.Using the proxied response:
- Subclass this class and overload any desired functions.
- During the servlet's service method, create an instance of the enhanced response using the original response from the server as the proxied response.
- Forward the enhanced response to another servlet for processing instead of the original response that was provided by the server.
Sample subclass (overloads the response's OutputStream)
//The data written to this response will be saved to the specified file. public class FileOutputResponse extends HttpServletResponseProxy{ private HttpServletResponse _response; private File _file; public FileOutputResponse(File f, HttpServletResponse resp){ _file = f; _response = resp; } protected HttpServletResponse getProxiedHttpServletResponse(){ return _response; } //overload response functionality public ServletOutputStream getOutputStream() throws IOException{ return new ServletOutputStreamAdapter(new FileOutputStream(_file)); } public PrintWriter getWriter() throws IOException{ return new PrintWriter(getOutputStream()); } }
Using the enhanced response subclass transparently in a servlet
//This servlet will store the response of another servlet to a file. public class SaveResponseToFileServlet extends HttpServlet{ public void service(HttpServletRequest req, HttpServletResponse resp){ resp = new FileOutputResponse(req, new File("/tmp/response.txt")); //store the response of SnoopServlet to the response.txt file. getServletContext().getRequestDispatcher("/servlet/SnoopServlet").forward(req, resp); } }
-
Methods Method Description com.ibm.websphere.servlet.filter.IFilterConfig.setDispatchMode(int[]) Please use Servlet 3.0 methods for adding filters dynamically.com.ibm.websphere.servlet.response.DummyResponse.encodeRedirectUrl(String) com.ibm.websphere.servlet.response.DummyResponse.encodeUrl(String) com.ibm.websphere.servlet.response.DummyResponse.setStatus(int, String)