package examples.htmlkona; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; import weblogic.db.jdbc.*; import weblogic.html.*; /** * This servlet merges database data with an HTML formletter. * * @author Copyright (c) 1996-98 by WebLogic, Inc. All Rights Reserved. * @author Copyright (c) 1999 by BEA WebXpress, Inc. All Rights Reserved. */ public class DataMerge extends HttpServlet { public synchronized void service(HttpServletRequest req, HttpServletResponse res) throws IOException { Connection conn = null; try { res.setStatus(HttpServletResponse.SC_OK); res.setContentType("text/html"); conn = defaults.login(); ServletPage hp = new ServletPage("DataMerge"); String file = defaults.fileloc() + "formletter.html"; QueryDataSet ds = new QueryDataSet(conn, "select ename, sal from emp"); ds.fetchRecords(); hp.getBodyElement() .setAttribute(BodyElement.bgColor, HtmlColor.white); hp.getBody() .addElement(new HeadingElement("This database data:", 2)) .addElement(new LiteralElement(ds)) .addElement(new HeadingElement("Merged with this HTML document:", 2)) .addElement(new StringElement().setContentsWithFile(file)) .addElement(new HeadingElement("Produces these form letters:", 2)); for (int i = 0; i < ds.size(); i++) { Record rec = ds.getRecord(i); StringElement elem = new StringElement(); elem.setContentsWithFile(file) .replace("$person", new BoldElement(rec.getValue("ename").asString())) .replace("$amount", rec.getValue("sal").asString()) .replaceWithElement("Human Resources", "ItalicElement"); hp.getBody() .addElement(elem) .addElement(MarkupElement.HorizontalLine) .addElement("Copyright 1996-99 by BEA WebXpress, Inc. All Rights Reserved."); } hp.output(res.getOutputStream()); } catch (Exception e) { defaults.showException(e, res.getOutputStream()); } // Always close the connection in a finally block. finally { try {conn.close();} catch (Exception e2) {;} } } }