|
Oracle interMedia Java Classes for Servlets and JSP API Reference 10g Release 1 (10.1) Part No. B12249-01 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--oracle.ord.im.OrdHttpResponseHandler
The OrdHttpResponseHandler class facilitates the retrieval of multimedia data from an Oracle database and its delivery to a browser or other HTTP client from a Java Servlet.
The following example illustrates how to use the OrdHttpResponseHandler class to retrieve an image from a database and deliver it to a browser:
PreparedStatement stmt = conn.prepareStatement( "select photo from photo_album where id = ?" ); stmt.setString( 1, request.getParameter( "photo_id" ) ); OracleResultSet rset = (OracleResultSet)stmt.executeQuery(); if ( rset.next() ) { OrdImage img = (OrdImage)rset.getORAData( 1, OrdImage.getORADataFactory() ); OrdHttpResponseHandler handler = new OrdHttpResponseHandler( request, response ); handler.sendImage( img ); } else { response.setStatus( response.SC_NOT_FOUND ); } rset.close(); stmt.close();
Note on the use of charsets other than ISO-8859-1 (Latin-1).
If the charset specification is included in the MIME type attribute in the OrdDoc object, then your application need only call the sendDoc()
method to retrieve the document and deliver it to the browser. For example, for an HTML page written in Japanese, the MIME type might be stored in the OrdDoc object as:
text/html; charset=Shift_JISIn this case, calling
sendDoc()
will send the appropriate Content-Type header allowing the browser to display the page correctly.text/htmland the charset name is specified in a separate column, then the application must append the charset specification to the MIME type before calling a sendResponse method. For example:
OraclePreparedStatement stmt = (OraclePreparedStatement)conn.prepareStatement( "select doc, charset from documents where id = ?" ); stmt.setString( 1, request.getParameter("id") ); OracleResultSet rset = (OracleResultSet)stmt.executeQuery(); if ( rset.next() ) { OrdDoc doc = (OrdDoc)rset.getORAData( 1, OrdDoc.getORADataFactory() ); String charset = rset.getString( 2 ); String mimeType = doc.getMimeType() + "; charset=" + charset; OrdHttpResponseHandler handler = new OrdHttpResponseHandler( request, response ); handler.sendResponse( mimeType, doc.getContentLength(), doc.getContent(), doc.getUpdateTime() ); } else { response.setStatus( response.SC_NOT_FOUND ); } rset.close(); stmt.close();
Field Summary | |
static int |
DEFAULT_BUFFER_SIZE The OrdHttpResponseHandler class uses a default buffer size of 32768 to retrieve LOB data from the database and deliver it to the client. |
Constructor Summary | |
OrdHttpResponseHandler() Creates an OrdHttpResponseHandler object to handle the response to a multimedia retrieval request. | |
OrdHttpResponseHandler(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) Creates an OrdHttpResponseHandler object to handle the response to a multimedia retrieval request and specifies the HttpServletRequest and HttpServletResponse objects for the response handler. |
Method Summary | |
void |
sendAudio(oracle.ord.im.OrdAudio media) Retrieves an audio clip from an OrdAudio object and delivers it to the browser. |
void |
sendDoc(oracle.ord.im.OrdDoc media) Retrieves media data from an OrdDoc object and delivers it to the browser. |
void |
sendImage(oracle.ord.im.OrdImage media) Retrieves an image from an OrdImage object and delivers it to the browser. |
void |
sendResponse() Retrieves contents from the interMedia object (OrdImage, OrdAudio, OrdVideo or OrdDoc) from the database and delivers it to the browser. |
void |
sendResponse(java.lang.String contentType, int length, oracle.sql.BFILE bfile, java.sql.Timestamp lastModified) Builds an HTTP response header, then retrieves the contents of the BFILE from the database and delivers it to the browser. |
void |
sendResponse(java.lang.String contentType, int length, oracle.sql.BLOB blob, java.sql.Timestamp lastModified) Builds an HTTP response header, then retrieves the contents of the BLOB from the database and delivers it to the browser. |
void |
sendResponse(java.lang.String contentType, int length, java.io.InputStream in, java.sql.Timestamp lastModified) Builds an HTTP response header, then retrieves the contents from the InputStream and delivers it to the browser. |
void |
sendResponseBody(int length, oracle.sql.BFILE bfile) Retrieves the contents of a BFILE from the database and delivers it as the response body to the client. |
void |
sendResponseBody(int length, oracle.sql.BLOB blob) Retrieves the contents of a BLOB from the database and delivers it as the response body to the client. |
void |
sendResponseBody(int length, java.io.InputStream in) Retrieves the contents from the InputStream and delivers it to the client. |
void |
sendVideo(oracle.ord.im.OrdVideo media) Retrieves a video clip from an OrdVideo object and delivers it to the browser. |
void |
setBufferSize(int bufferSize) Sets the buffer size for LOB read and response write operations. |
void |
setEncodeHtml(boolean doEncode) Enable encoding of special characters from the response stream with text/html mimetype. |
void |
setHeader(java.lang.String name, int value) Set the response header with Int value. |
void |
setHeader(java.lang.String name, long date) Set the response header with Date value. |
void |
setHeader(java.lang.String name, java.lang.String value) Set the response header with String value. |
void |
setMedia(oracle.ord.im.OrdAudio media) Set the media object to be delivered. |
void |
setMedia(oracle.ord.im.OrdDoc media) Set the media object to be delivered. |
void |
setMedia(oracle.ord.im.OrdImage media) Set the media object to be delivered. |
void |
setMedia(oracle.ord.im.OrdVideo media) Set the media object to be delivered. |
void |
setServletRequest(javax.servlet.http.HttpServletRequest request) Specifies the HttpServletRequest object for this response handler. |
void |
setServletResponse(javax.servlet.http.HttpServletResponse response) Specifies the HttpServletResponse object for this response handler. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFAULT_BUFFER_SIZE
setBufferSize()
method.Constructor Detail |
public OrdHttpResponseHandler()
setServletResponse()
, and can optionally specify the HttpServletRequest object by calling setServletRequest()
.public OrdHttpResponseHandler(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
request
- an object of type HttpServletRequest
.response
- an object of type HttpServletResponse
.Method Detail |
public void setServletRequest(javax.servlet.http.HttpServletRequest request)
request
- an object of type HttpServletRequest
.public void setServletResponse(javax.servlet.http.HttpServletResponse response)
response
- an object of type HttpServletResponse
.public void sendImage(oracle.ord.im.OrdImage media) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
image
- an object of type oracle.ord.im.OrdImage
.public void sendAudio(oracle.ord.im.OrdAudio media) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
audio
- an object of type oracle.ord.im.OrdAudio
.public void sendVideo(oracle.ord.im.OrdVideo media) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
video
- an object of type oracle.ord.im.OrdVideo
.public void sendDoc(oracle.ord.im.OrdDoc media) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
doc
- an object of type oracle.ord.im.OrdDoc
.public void sendResponse(java.lang.String contentType, int length, oracle.sql.BLOB blob, java.sql.Timestamp lastModified) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
contentType
- a String
that specifies the content's MIME type.length
- an int
that specifies the length of the data.blob
- an oracle.sql.BLOB
from which the multimedia data is retrieved.lastModified
- a java.sql.Timestamp
that specifies the date/time when the data was last modified, or null
if no last modified date/time is available.public void sendResponse(java.lang.String contentType, int length, oracle.sql.BFILE bfile, java.sql.Timestamp lastModified) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
contentType
- a String
that specifies the content's MIME type.length
- an int
that specifies the length of the data.bfile
- an oracle.sql.BFILE
from which the multimedia data is retrieved.lastModified
- a java.sql.Timestamp
that specifies the date/time when the data was last modified, or null
if no last modified date/time is available.public void sendResponse(java.lang.String contentType, int length, java.io.InputStream in, java.sql.Timestamp lastModified) throws javax.servlet.ServletException, java.io.IOException
contentType
- a String
that specifies the content's MIME type.length
- an int
that specifies the length of the data.in
- an InputStream
from which the multimedia data is retrieved.lastModified
- a java.sql.Timestamp
that specifies the date/time when the data was last modified, or null
if no last modified date/time is available.public void sendResponseBody(int length, oracle.sql.BLOB blob) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
length
- an int
that specifies the length of the data.blob
- an oracle.sql.BLOB
from which the content is retrieved.public void sendResponseBody(int length, oracle.sql.BFILE bfile) throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
length
- an int
that specifies the length of the data.bfile
- an oracle.sql.BFILE
from which the content is retrieved.public void sendResponseBody(int length, java.io.InputStream in) throws javax.servlet.ServletException, java.io.IOException
length
- content length.in
- an InputStream
from which the multimedia data is retrieved.public void setBufferSize(int bufferSize) throws java.lang.IllegalArgumentException
bufferSize
- an int
that specifies the buffer size.public void setMedia(oracle.ord.im.OrdImage media)
media
- an object of type oracle.ord.im.OrdImage
.public void setMedia(oracle.ord.im.OrdAudio media)
media
- an object of type oracle.ord.im.OrdAudio
.public void setMedia(oracle.ord.im.OrdVideo media)
media
- an object of type oracle.ord.im.OrdVideo
.public void setMedia(oracle.ord.im.OrdDoc media)
media
- an object of type oracle.ord.im.OrdDoc
.public void setHeader(java.lang.String name, java.lang.String value)
name
- the name of the header.value
- the value of the header.public void setHeader(java.lang.String name, long date)
name
- the name of the header.date
- the date value of the header.public void setHeader(java.lang.String name, int value)
name
- the name of the header.value
- the int value of the header.public void sendResponse() throws javax.servlet.ServletException, java.sql.SQLException, java.io.IOException
public void setEncodeHtml(boolean doEncode)
doEncode
- a boolean
that specifies whether to encode the response output stream.
|
Oracle interMedia Java Classes for Servlets and JSP API Reference 10g Release 1 (10.1) Part No. B12249-01 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |