Accessing a data source from a servlet package com.ack.web.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; /** * web.xml configuration part of the a data source * * ... the database for this app jdbc/thedatabase javax.sql.DataSource CONTAINER ... * * the vendor-specific mapping of the res-ref-name into their * own application server space, eg weblogic does the following * in a weblogic.xml file * ... ... jdbc/thedatabase jdbc/gangland ... ... */ public class AccessingADataSourceFromAServlet extends HttpServlet { public void init() { System.out.println( "### loading -> " + getServletName() + " at " + new Date( System.currentTimeMillis() ).toString() ); } public void doGet( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { res.setContentType( "text/html" ); PrintWriter pw = res.getWriter(); Connection con = null; try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup( "java:comp/env/jdbc/thedatabase" ); con = ds.getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( "select * from enemies" ); while( rs.next() ) { pw.println( rs.getString( "name" ) + "
" ); } } catch( Exception ex ) { log( "problem accessing database", ex ); res.sendError( res.SC_INTERNAL_SERVER_ERROR, ex.getMessage() ); } finally { if( con != null ) { try { con.close(); } catch( SQLException ex ) { log( "problem closing connection", ex ); } } } } }