package examples.htmlkona; import java.io.*; import java.util.*; import weblogic.html.*; import weblogic.common.*; import weblogic.db.jdbc.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; /** * Illustrates how to retrieve an audio clip from a DBMS using * a WebLogic jDriver JDBC driver and dbKona. * * @author Copyright (c) 1996-98 by WebLogic, Inc. All Rights Reserved. * @author Copyright (c) 1999-2000 by BEA Systems, Inc. All Rights Reserved. */ public class AudioDataDisplay extends HttpServlet { public synchronized void service(HttpServletRequest req, HttpServletResponse res) throws IOException { Connection conn = null; try { res.setStatus(HttpServletResponse.SC_OK); String name = req.getParameter("audioname"); conn = defaults.login(); if (name != null) { TableDataSet td = new TableDataSet(conn, "audiotable"); td.selectStmt().setQbe("name", name); td.fetchRecords(); Record rec = td.getRecord(0); res.setContentType("audio/" + rec.getValue("type").asString()); // Retrieve the audioclips from the database AudioPage hp = new AudioPage(rec.getValue("data").asBytes()); hp.output(res.getOutputStream()); } else { // Invoking with no arguments will populate the database // This is the code that deletes and loads the audioclips from the database /* // Clear the existing audioclips conn.executeSql("delete from audiotable"); // Add some images to the database TableDataSet td = new TableDataSet(conn, "audiotable"); Record rec = td.addRecord(); rec.setValue("name", "train") .setValue("type", "basic") .setValue("data", new Blob("F:/hotjava/demo/audio/train.au")); rec = td.addRecord(); rec.setValue("name", "whoopy") .setValue("type", "basic") .setValue("data", new Blob("F:/hotjava/demo/audio/whoopy.au")); rec = td.addRecord(); rec.setValue("name", "scream") .setValue("type", "basic") .setValue("data", new Blob("F:/hotjava/demo/audio/scream.au")); td.save(); td.close(); */ TableElement tab = new TableElement(); tab.addElement(new TableRowElement() .addElement(new AnchorElement(defaults.prefix() + "AudioDataDisplay?audioname=train", "Train"))) .addElement(new TableRowElement() .addElement(new AnchorElement(defaults.prefix() + "AudioDataDisplay?audioname=whoopy", "Whoopy"))) .addElement(new TableRowElement() .addElement(new AnchorElement(defaults.prefix() + "AudioDataDisplay?audioname=scream", "Scream"))); ServletPage hp = new ServletPage("AudioDataDisplay"); hp.getBodyElement() .setAttribute(BodyElement.bgColor, HtmlColor.white); hp.getBody() .addElement(new HeadingElement("Click on a sound title " + "and retrieve the audio clip from the database", 2)) .addElement(MarkupElement.HorizontalRule) .addElement(new CenteredElement(tab)); res.setContentType("text/html"); hp.output(res.getOutputStream()); } } catch (Exception e) { defaults.showException(e, res.getOutputStream()); } finally { try {conn.close();} catch (Exception e) {;} } } }