com.oreilly.servlet
Class MultipartResponse
java.lang.Object
|
+--com.oreilly.servlet.MultipartResponse
- public class MultipartResponse
- extends java.lang.Object
A utility class to generate multipart/x-mixed-replace responses,
the kind of responses that implement server push. Note that Microsoft
Internet Explorer does not understand this sort of response.
To use this class, first construct a new MultipartResponse
passing to its constructor the servlet's response parameter.
MultipartResponse uses the response object to fetch the
servlet's output stream and to set the response's content type.
Then, for each page of content, begin by calling startResponse()
passing in the content type for that page. Send the content for the
page by writing to the output stream as usual. A call to
endResponse() ends the page and flushes the content so the
client can see it. At this point a sleep() or other delay
can be added until the next page is ready for sending.
The call to endResponse() is optional. The
startResponse() method knows whether the last response has
been ended, and ends it itself if necessary. However, it's wise to
call endResponse() if there's to be a delay between the
time one response ends and the next begins. It lets the client display
the latest response during the time it waits for the next one.
Finally, after each response page has been sent, a call to the
finish() method finishes the multipart response and sends a
code telling the client there will be no more responses.
For example:
MultipartResponse multi = new MultipartResponse(res);
multi.startResponse("text/plain");
out.println("On your mark");
multi.endResponse();
try { Thread.sleep(1000); } catch (InterruptedException e) { }
multi.startResponse("text/plain");
out.println("Get set");
multi.endResponse();
try { Thread.sleep(1000); } catch (InterruptedException e) { }
multi.startResponse("image/gif");
ServletUtils.returnFile(req.getRealPath("/images/go.gif"), out);
multi.finish();
- Version:
- 1.0, 98/09/18
- Author:
- Jason Hunter, Copyright © 1998
- See Also:
ServletUtils
|
Constructor Summary |
MultipartResponse(javax.servlet.http.HttpServletResponse response)
Constructs a new MultipartResponse to send content to the given
servlet response. |
|
Method Summary |
void |
endResponse()
Ends a single response. |
void |
finish()
Finishes the multipart response. |
void |
startResponse(java.lang.String contentType)
Begins a single response with the specified content type. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MultipartResponse
public MultipartResponse(javax.servlet.http.HttpServletResponse response)
throws java.io.IOException
- Constructs a new MultipartResponse to send content to the given
servlet response.
- Parameters:
response - the servlet response
- Throws:
java.io.IOException - if an I/O error occurs
startResponse
public void startResponse(java.lang.String contentType)
throws java.io.IOException
- Begins a single response with the specified content type.
This method knows whether the last response has been ended, and
ends it itself if necessary.
- Parameters:
contentType - the content type of this response part
- Throws:
java.io.IOException - if an I/O error occurs
endResponse
public void endResponse()
throws java.io.IOException
- Ends a single response. Flushes the output.
- Throws:
java.io.IOException - if an I/O error occurs
finish
public void finish()
throws java.io.IOException
- Finishes the multipart response. Sends a code telling the client
there will be no more responses and flushes the output.
- Throws:
java.io.IOException - if an I/O error occurs