import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.security.*; public class RateChangeServlet extends HttpServlet { private Connection dbConnection; public void init() { dbConnection = DBInfo.connectToDatabase(); } public void destroy() { if(dbConnection != null) { try { dbConnection.close(); } catch(Exception e) { } } } private boolean updateActivity(String activity, double newRate) { try { Statement stmt = dbConnection.createStatement (); String insertcommand = "update rates set rate = " + newRate + " where activity='" + activity + "'"; stmt.executeUpdate(insertcommand); stmt.close(); } catch(Exception e) { return false; } return true; } private boolean addActivity(String activity, double rate) { try { Statement stmt = dbConnection.createStatement (); String insertcommand = "insert into rates values ("; insertcommand = insertcommand + "'" + activity + "', "; insertcommand = insertcommand + rate + ")"; stmt.executeUpdate(insertcommand); stmt.close(); } catch(Exception e) { return false; } return true; } public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String activity = request.getParameter("Activity"); String rate = request.getParameter("Rate"); if((activity==null) || (rate==null)) { response.sendRedirect("/combo/BadData.html"); return; } double drate = 0.0; try { drate = Double.parseDouble(rate); } catch(Exception e) { response.sendRedirect("/combo/BadData.html"); return; } ServletContext ctx = getServletContext(); RatesRecord rates = (RatesRecord) ctx.getAttribute("RatesTable"); if(rates==null) { rates = new RatesRecord(); ctx.setAttribute("RatesTable", rates); } double dcurrent = rates.getRate(activity); boolean ok = true; if(dcurrent==0.0) ok = addActivity(activity, drate); else if(dcurrent != drate) ok = updateActivity(activity, drate); ctx.removeAttribute("RatesTable"); if(!ok) { response.sendRedirect("/combo/NoDB.html"); return; } PrintWriter out = response.getWriter(); out.println("Change recorded"); out.println(""); out.println("

Update performed

"); out.println("

The table of hourly pay rates has been updated"); out.println(""); } public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Change hourly rate" ); out.println("" ); out.println("

"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
Activity
Hourly rate ($)
"); out.println(""); out.println("
"); out.println("
"); } }