The init method is meant to init the servlet itself Each statement executed causes a DB cursor to be created to execute the operation e.g. ReadCursor for executeQuery e.g. UpdateCursor for executeUpdate public class SurveyServlet extends HttpServlet { private Connection connection; private String fu; private String bar; private PreparedStatement updateVotes, totalVotes, results; //if anything causing servletException inside this init methid would be thrown your servlet will cause 503 or 500 or some exception which will throw //ServletException public void init( ServletConfig config ) throws ServletException { fu="fu"; bar="bar"; } //Once init'ed I would wait for DoPost or DoGet or service methods for the following sequence protected void doPost( HttpServletRequest request,HttpServletResponse response ) throws ServletException, IOException { // set up response to client response.setContentType( "text/html" ); PrintWriter out = response.getWriter(); DecimalFormat twoDigits = new DecimalFormat( "0.00" ); // start XHTML document out.println( "" ); out.println( "" ); out.println( "" ); // head section of document out.println( "" ); try { //load the Driver Class.forName( "COM.cloudscape.core.RmiJdbcDriver" ); //acquire a Connection from the DriverManager connection = DriverManager.getConnection( "jdbc:rmi:jdbc:cloudscape:animalsurvey" ); // PreparedStatement to add one to vote total for a // specific animal updateVotes = connection.prepareStatement( "UPDATE surveyresults SET votes = votes + 1 " + "WHERE id = ?" ); updateVotes.setInt(1,value); ResultSet rs = pst.executeUpdate(); // for any exception throw an UnavailableException to // indicate that the servlet is not currently available } //end try catch ( Exception exception ) { debug.log(exception.getMessage()); exception.printStackTrace(); throw new UnavailableException( exception.getMessage() ); } //Any more SQL Statements should go here with the connection/statement/execute/GetResults } //doPost YMMV Martin-- --------------------------------------------------------------------------- This e-mail message (including attachments, if any) is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, proprietary , confidential and exempt from disclosure. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. --------------------------------------------------------------------------- Le présent message électronique (y compris les pièces qui y sont annexées, le cas échéant) s'adresse au destinataire indiqué et peut contenir des renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le destinataire de ce document, nous vous signalons qu'il est strictement interdit de le diffuser, de le distribuer ou de le reproduire. ----- Original Message ----- From: "Mr. Steve Burrus" To: Sent: Sunday, January 28, 2007 4:48 PM Subject: Need Help w. Database Servlet. > hi all. I find myself in need of help/assistance with a longtime problem > of mine and that is how do you get a servlet working with a backend > database server?? Here is the basic SurveyServlet.java servlet and > please notice that the database server in question is IBM's Cloudscape . > after the servlet I have the html file which the servlet is supposed to > work with. thanx in advance for anyone's help. > > > import java.io.*; > import java.text.*; > import java.sql.*; > import javax.servlet.*; > import javax.servlet.http.*; > > public class SurveyServlet extends HttpServlet { > private Connection connection; > private PreparedStatement updateVotes, totalVotes, results; > > // set up database connection and prepare SQL statements > public void init( ServletConfig config ) > throws ServletException > { > // attempt database connection and create PreparedStatements > try { > Class.forName( "COM.cloudscape.core.RmiJdbcDriver" ); > connection = DriverManager.getConnection( > "jdbc:rmi:jdbc:cloudscape:animalsurvey" ); > > // PreparedStatement to add one to vote total for a > // specific animal > updateVotes = > connection.prepareStatement( > "UPDATE surveyresults SET votes = votes + 1 " + > "WHERE id = ?" > ); > > // PreparedStatement to sum the votes > totalVotes = > connection.prepareStatement( > "SELECT sum( votes ) FROM surveyresults" > ); > > // PreparedStatement to obtain surveyoption table's data > results = > connection.prepareStatement( > "SELECT surveyoption, votes, id " + > "FROM surveyresults ORDER BY id" > ); > } > > // for any exception throw an UnavailableException to > // indicate that the servlet is not currently available > catch ( Exception exception ) { > exception.printStackTrace(); > throw new UnavailableException( exception.getMessage() ); > } > > } // end of init method > > // process survey response > protected void doPost( HttpServletRequest request, > HttpServletResponse response ) > throws ServletException, IOException > { > // set up response to client > response.setContentType( "text/html" ); > PrintWriter out = response.getWriter(); > DecimalFormat twoDigits = new DecimalFormat( "0.00" ); > > // start XHTML document > out.println( "" ); > > out.println( " "XHTML 1.0 Strict//EN\" \"http://www.w3.org" + > "/TR/xhtml1/DTD/xhtml1-strict.dtd\">" ); > > out.println( > "" ); > > // head section of document > out.println( "" ); > > // read current survey response > int value = > Integer.parseInt( request.getParameter( "animal" ) ); > > // attempt to process a vote and display current results > try { > > // update total for current survey response > updateVotes.setInt( 1, value ); > updateVotes.executeUpdate(); > > // get total of all survey responses > ResultSet totalRS = totalVotes.executeQuery(); > totalRS.next(); > int total = totalRS.getInt( 1 ); > > // get results > ResultSet resultsRS = results.executeQuery(); > out.println( "Thank you!" ); > out.println( "" ); > > out.println( "" ); > out.println( "

Thank you for participating." ); > out.println( "
Results:

" );
>         
>         // process results
>         int votes;
>         
>         while ( resultsRS.next() ) {
>            out.print( resultsRS.getString( 1 ) );
>            out.print( ": " );
>            votes = resultsRS.getInt( 2 );
>            out.print( twoDigits.format(
>               ( double ) votes / total * 100 ) );
>            out.print( "%  responses: " );
>            out.println( votes );
>         }
> 
>         resultsRS.close();
>         
>         out.print( "Total responses: " );
>         out.print( total );
>         
>         // end XHTML document
>         out.println( "
" ); > out.close(); > } > > // if database exception occurs, return error page > catch ( SQLException sqlException ) { > sqlException.printStackTrace(); > out.println( "Error" ); > out.println( "" ); > out.println( "

Database error occurred. " ); > out.println( "Try again later.

" ); > out.close(); > } > > } // end of doPost method > > // close SQL statements and database when servlet terminates > public void destroy() > { > // attempt to close statements and database connection > try { > updateVotes.close(); > totalVotes.close(); > results.close(); > connection.close(); > } > > // handle database exceptions by returning error to client > catch( SQLException sqlException ) { > sqlException.printStackTrace(); > } > } // end of destroy method > } > > the html file : > > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > > > > > > Survey > > > >
> >

What is your favorite pet?

> >

> value = "1" />Dog
> value = "2" />Cat
> value = "3" />Bird
> value = "4" />Snake
> value = "5" checked = "checked" />None >

> >

> >
> > > > > > > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org > For additional commands, e-mail: users-help@tomcat.apache.org > >