On Monday 03 June 2002 01:50 pm, you wrote: > On 03.Jun.2002 -- 10:11 AM, daniel robinson wrote: > > Hi, > > > > I've been poking around but I'm clueless (yes, generally as well as > > specifically).
I have some code that simply uses embedded Java in an XSP and a Java temp file. This code processes a File that is submitted by the user's Applet simulating a FORM with method=PUT. The user's FILE parameter is an XML document produced by the applet. I have to insert the DTD stuff because the Serializer I am generating this file from doesn't generate the DTD statements. After the file is pulled into a string and written to a File, I add it to my PostgreSQL database as a BLOB. <?xml version="1.0" encoding="ISO-8859-1"?> <xsp:page language="java" create-session="yes" xmlns:xsp="http://apache.org/xsp" xmlns:session="http://apache.org/xsp/session/2.0" xmlns:xsp-request="http://apache.org/xsp/request/2.0" xmlns:xsp-response="http://apache.org/xsp/response/2.0" xmlns:log="http://apache.org/xsp/log/2.0"> <xsp:structure> <xsp:include>java.io.*</xsp:include> <xsp:include>java.sql.*</xsp:include> </xsp:structure> <page> <content> <xsp:logic> File output = null; try { String username = (String) <session:get-attribute name="username" default="nobody" />; //System.err.println( "username=" + username ); String filename = <xsp-request:get-parameter name="FILENAME" />; //System.err.println( "filename=" + filename ); String config_data = <xsp-request:get-parameter name="FILE" />; //System.err.println( "config_data=" + config_data ); int position = config_data.indexOf( <![CDATA["<product>"]]> ); StringBuffer saveString = new StringBuffer( config_data.substring( 0, position ) ); <![CDATA[ saveString.append( "<!DOCTYPE product [\n" + "<!ELEMENT product (page+)>\n" + "<!ELEMENT children (page+)>\n" + "<!ELEMENT Company EMPTY>\n" + "<!ELEMENT page (#PCDATA | Company | children)*>\n" + "<!ATTLIST page level (1 | 2 | 3 | 4 | 5 | 8 ) #REQUIRED\n" + " target CDATA #REQUIRED\n" + " checkbox (true | false) #REQUIRED\n" + ">\n" + "]>\n" ); ]]> saveString.append( config_data.substring( position) ); output = File.createTempFile( "phoenix_", ".xml" ); FileWriter fw = new FileWriter( output ); fw.write( saveString.toString() ); fw.close(); try { Class.forName( "org.postgresql.Driver" ); Connection conn = DriverManager.getConnection( "jdbc:postgresql://192.168.1.100:5432/test", "postgres", "" ); Statement stmt = conn.createStatement(); String update_statement = "UPDATE user_products SET product_file=lo_import( \'" + output.getAbsolutePath() + "\') " + " where name = \'" + username + "\'" + " AND productname = \'" + filename + "\'"; //System.err.println( "Update statement: " + update_statement ); int rows = stmt.executeUpdate( update_statement ); //System.err.println( "Rows updated: " + rows ); stmt.close(); conn.close(); } catch(ClassNotFoundException e ) { System.err.println( "Caught: " + e ); e.printStackTrace(); // @@@ ToDo exit properly } catch(SQLException sqle ) { System.err.println( "Caught: " + sqle ); sqle.printStackTrace(); // @@@ ToDo exit properly } } //output.delete(); catch( Exception e ) { System.err.println( "Caught: " + e ); e.printStackTrace(); } </xsp:logic> <session:set-attribute name="TEMPFILENAME"> <xsp:logic><xsp:expr>output.getAbsolutePath()</xsp:expr></xsp:logic> </session:set-attribute> <para> TEMPFILENAME=<session:get-attribute name="TEMPFILENAME" /> </para> </content> </page> </xsp:page> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>