import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
/**
* our second servlet! Now using JDBC!
*
* @author Ann Burroughs
* @author (modified) Sharon Tuttle
* @version 3-25-13
*/
public class St10EmpSal extends HttpServlet
{
// data fields
private String username;
private String password;
/**
* craft a dynamic response to a browser POST
* request, here returning employe names and
* salaries
*
* @param request a request with username and password
* info
* @param response a response with current employee
* username and passwords
*/
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
// grab the username and password from the
// requesting form
username = request.getParameter("username");
password = request.getParameter("password");
Html318Helpers.beginHtml(out, "EmpSal Servlet");
grabEmpSalFromDatabase(out);
Html318Helpers.endHtml(out);
}
/**
* private method to handle the database connection
*
* @param outStream the ServletOutputStream that the desired
* HTML and database information should be
* written to (employee names and salaries)
*/
private void grabEmpSalFromDatabase(ServletOutputStream outStream)
throws IOException
{
String eName;
int eSal;
try
{
// turn off looking at IPv6 stack to avoid 2 minute wait for
// V6 timeout
System.setProperty("java.net.preferIPv4Stack", "true");
// load driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// create Connection object con
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@cedar:1521:student",
username, password);
// create a Statement object for Connection con
Statement stmt = con.createStatement();
String query = "select empl_last_name, salary " +
"from empl";
// execute query and store result into resultset
ResultSet rS = stmt.executeQuery(query);
outStream.println("");
outStream.println("<h1>Employees and their salaries"
+ "</h1>");
outStream.println("<table>");
outStream.println("<tr> <th> Employee Last Name </th>");
outStream.println(" <th> Employee Salary </th> </tr>");
// for each row in ResultSet rS, print employee and
// salary
while (rS.next())
{
// for current row in ResultSet rS, get first column
// value and treat it as a String
eName = rS.getString(1);
// for current row in ResultSet rS, get second column
// value and treat it as an int
eSal = rS.getInt(2);
outStream.println("<tr> <td> " + eName + " </td>");
outStream.println(" <td> $" + eSal + " </td> </tr>");
}
outStream.println("</table>");
// close Statement and Connection objects
stmt.close();
con.close();
} // end of try block
// any exception thrown within the try-block above will be
// caught and reported
catch (Exception e)
{
outStream.println("<p> " + e + "</p>");
}
} // end grabEmpSalFromDatabase
}