Advertisement
Guest User

servlet test project 4

a guest
Apr 22nd, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.39 KB | None | 0 0
  1. /*
  2. Name: Michael J. Maffia
  3. Course: CNT 4714 – Spring 2019 – Project Four
  4. Assignment title: A Three-Tier Distributed Web-Based Application
  5. Date: April 21, 2019
  6. */
  7.  
  8. import javax.servlet.RequestDispatcher;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import java.io.IOException;
  14.  
  15.  
  16.  
  17. public class Servlet extends HttpServlet {
  18.  
  19.     String link = "jdbc:mysql://localhost:3306/project4";
  20.     String user = "root";
  21.     String pass = "Partyof5!";
  22.     DatabaseTableModel tableModel;
  23.  
  24.  
  25.     public Servlet(){
  26.         DatabaseTableModel.initConnection(link, user, pass);
  27.     }
  28.  
  29.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30.         tableModel = new DatabaseTableModel(link, user, pass);
  31.         String destination  ="/index.jsp";
  32.         String statement = request.getParameter("textarea");
  33.         String resultString;
  34.  
  35.         //Handle Select Query statements.
  36.         if(statement.toLowerCase().startsWith("select")) {
  37.             try {
  38.                 tableModel.setExecute(statement);
  39.             } catch (Exception e) {
  40.                 resultString = "<h3 " + "style=color:red;" + ">" + e.getMessage() + "</h3>";
  41.                 request.setAttribute("results", resultString);
  42.                 //Dispatch result to jsp page
  43.                 RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
  44.                 dispatcher.forward(request, response);
  45.                 //Attempt to disconnect from DB
  46.                 tableModel.disconnectFromDatabase();
  47.                 e.printStackTrace();
  48.                 return;
  49.  
  50.             }
  51.         }
  52.         else {
  53.             try {
  54.                 String supplierNumber;
  55.                 boolean updateSupplier = false;
  56.                 //Check if the given statement is going to update a shipment
  57.                 if ((statement.toLowerCase().contains("update") || statement.toLowerCase().contains("insert")) && statement.toLowerCase().contains("shipments")) {
  58.                     int first = statement.indexOf("(");
  59.                     int last = statement.indexOf(")");
  60.                     String temp = statement.substring(first + 1, last);
  61.                     temp = temp.replaceAll("'", "");
  62.                     temp = temp.replaceAll(" ", "");
  63.                     String[] brokenString = temp.split(",");
  64.  
  65.                     for (String s : brokenString) {
  66.                         try {
  67.                             if (Integer.valueOf(s) >= 100)
  68.                                 updateSupplier = true;
  69.                         } catch (NumberFormatException e) {
  70.                         }
  71.                     }
  72.                 }
  73.                 tableModel.setExecute(statement);
  74.                 if(updateSupplier){
  75.                     String updateStatus = "update suppliers set status = status + 5 where snum in (select snum from shipments  where quantity > 100)";
  76.                     tableModel.setExecute(updateStatus);
  77.                     //Generate HTML Table Result
  78.                     resultString = "<h3 " + "style=color:red;" + ">" + "BUSINESS LOGIC EXECUTED!" + "</h3>" + generateHTML(tableModel);
  79.                     //Set the Results Attribute for the JSP Page
  80.                     request.setAttribute("results", resultString);
  81.                     //Dispatch result to jsp page
  82.                     RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
  83.                     dispatcher.forward(request, response);
  84.                     //Attempt to disconnect from DB
  85.                     tableModel.disconnectFromDatabase();
  86.                     return;
  87.  
  88.                 }
  89.  
  90.                /* if(updateSupplier){
  91.  
  92.                     Vector<Vector<String>> temp = QueryBase.runQuery(
  93.                             "select DISTINCT(suppliers.snum) from suppliers join shipments on suppliers.snum = shipments.snum and shipments.quantity >= 100");
  94.                     String mIN = "";
  95.                     for(Vector row: temp){
  96.                         if(mIN == "")
  97.                             mIN += "'"+row.get(0)+"'";
  98.                         else
  99.                             mIN += ",'"+row.get(0)+"'";
  100.                     }
  101.  
  102.                     if(supplierSnum != "") mIN += ",'"+supplierSnum+"'";
  103.  
  104.                     String blah = "UPDATE suppliers set status = (status+"+5+") where snum IN ("+mIN+")";
  105.  
  106.                     HTML = generateHTMLOK(QueryBase.runUpdate(Query),QueryBase.runUpdate(blah));
  107.                 }
  108.                 else{
  109.                     HTML = generateHTMLOK(QueryBase.runUpdate(Query));
  110.                 }*/
  111.  
  112.             } catch (Exception e) {
  113.  
  114.  
  115.             }
  116.         }
  117.         //Generate HTML Table Result
  118.         resultString = generateHTML(tableModel);
  119.         //Set the Results Attribute for the JSP Page
  120.         request.setAttribute("results", resultString);
  121.         //Dispatch result to jsp page
  122.         RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
  123.         dispatcher.forward(request, response);
  124.         //Attempt to disconnect from DB
  125.         tableModel.disconnectFromDatabase();
  126.     }
  127.  
  128.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  129.  
  130.     }
  131.  
  132.     private String generateHTML(DatabaseTableModel table){
  133.  
  134.         String resultText;
  135.         if(table.getRowCount() == -1)
  136.             return "<h2>" + "Update Command Executed" + "<h2>";
  137.  
  138.                 resultText =
  139.                 "<div id='table' style='margin:auto;text-align:center;width: 627px;'>" +
  140.                 "<table border='1' style='margin: auto;'>" +
  141.                 "<tr>";
  142.  
  143.         for(int i = 0; i < table.getColumnCount(); i++){
  144.             resultText+= "<td style='background-color: yellow;'>"+ "<b>" + table.getColumnName(i) + "</b>" +"</td>";
  145.         }
  146.         resultText+="</tr>";
  147.  
  148.         for(int i = 0; i < table.getRowCount(); i++){
  149.             resultText += "<tr>";
  150.             for(int j=0; j < table.getColumnCount(); j++){
  151.                 resultText += "<td>";
  152.                 resultText += table.getValueAt(i, j);
  153.                 resultText += "</td>";
  154.             }
  155.             resultText += "</tr>";
  156.         }
  157.         resultText += "</table></div>";
  158.         return resultText;
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement