<%@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %>

<!------------------------------------------------------------------
 * This is a JavaServer Page that uses Connection Caching at Session
 * scope. 
--------------------------------------------------------------------!>

<%
   String connStr=request.getParameter("connStr");
   if (connStr==null) {
     connStr=(String)session.getValue("connStr");
   } else {
     session.putValue("connStr",connStr);
   }
   if (connStr==null) { %>
<jsp:forward page="../setconn.jsp" />
<%
   }
%>

<jsp:useBean id="ods" class="oracle.jdbc.pool.OracleConnectionCacheImpl" scope="session" />

<HTML> 
  <HEAD> 
    <TITLE>
	ConnCache 3  JSP
    </TITLE>
  </HEAD>
 <BODY BGCOLOR=EOFFFO> 
 <H1> Hello 
  <%= (request.getRemoteUser() != null? ", " + request.getRemoteUser() : "") %>
 !  I am Connection Caching  JSP.
 </H1>
 <HR>
 <B> Session  Level Connection Caching.
 </B> 

 <P>
<%
    try {
      ods.setURL(connStr);
      ods.setUser("scott");
      ods.setPassword("tiger");

      Connection conn = ods.getConnection ();
      Statement stmt = conn.createStatement ();
      ResultSet rset = stmt.executeQuery ("SELECT ename, sal " + 
					  "FROM scott.emp ORDER BY ename");

      if (rset.next()) {
%>
	<TABLE BORDER=1 BGCOLOR="C0C0C0">
	<TH WIDTH=200 BGCOLOR="white"> <I>Employee Name</I> </TH>
	<TH WIDTH=100 BGCOLOR="white"> <I>Salary</I> </TH>
	<TR> <TD ALIGN=CENTER> <%= rset.getString(1) %> </TD>
	     <TD ALIGN=CENTER> $<%= rset.getDouble(2) %> </TD>
	</TR>

<%	while (rset.next()) {
%>

	<TR> <TD ALIGN=CENTER> <%= rset.getString(1) %> </TD>
	     <TD ALIGN=CENTER> $<%= rset.getDouble(2) %> </TD>
	</TR>

<% }
%>
      </TABLE>
<%  } 
      else {
%>
	<P> Sorry, the query returned no rows! </P>

<% 
      }
      rset.close();
      stmt.close();
      conn.close();  // Put the Connection Back into the Pool

    } catch (SQLException e) {
      out.println("<P>" + "There was an error doing the query:");
      out.println ("<PRE>" + e + "</PRE> \n <P>");
    }
%>

 </BODY>
</HTML>
