Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Name: Michael J. Maffia
- Course: CNT 4714 – Spring 2019 – Project Four
- Assignment title: A Three-Tier Distributed Web-Based Application
- Date: April 21, 2019
- */
- import javax.servlet.RequestDispatcher;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- public class Servlet extends HttpServlet {
- String link = "jdbc:mysql://localhost:3306/project4";
- String user = "root";
- String pass = "Partyof5!";
- DatabaseTableModel tableModel;
- public Servlet(){
- DatabaseTableModel.initConnection(link, user, pass);
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- tableModel = new DatabaseTableModel(link, user, pass);
- String destination ="/index.jsp";
- String statement = request.getParameter("textarea");
- String resultString;
- //Handle Select Query statements.
- if(statement.toLowerCase().startsWith("select")) {
- try {
- tableModel.setExecute(statement);
- } catch (Exception e) {
- resultString = "<h3 " + "style=color:red;" + ">" + e.getMessage() + "</h3>";
- request.setAttribute("results", resultString);
- //Dispatch result to jsp page
- RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
- dispatcher.forward(request, response);
- //Attempt to disconnect from DB
- tableModel.disconnectFromDatabase();
- e.printStackTrace();
- return;
- }
- }
- else {
- try {
- String supplierNumber;
- boolean updateSupplier = false;
- //Check if the given statement is going to update a shipment
- if ((statement.toLowerCase().contains("update") || statement.toLowerCase().contains("insert")) && statement.toLowerCase().contains("shipments")) {
- int first = statement.indexOf("(");
- int last = statement.indexOf(")");
- String temp = statement.substring(first + 1, last);
- temp = temp.replaceAll("'", "");
- temp = temp.replaceAll(" ", "");
- String[] brokenString = temp.split(",");
- for (String s : brokenString) {
- try {
- if (Integer.valueOf(s) >= 100)
- updateSupplier = true;
- } catch (NumberFormatException e) {
- }
- }
- }
- tableModel.setExecute(statement);
- if(updateSupplier){
- String updateStatus = "update suppliers set status = status + 5 where snum in (select snum from shipments where quantity > 100)";
- tableModel.setExecute(updateStatus);
- //Generate HTML Table Result
- resultString = "<h3 " + "style=color:red;" + ">" + "BUSINESS LOGIC EXECUTED!" + "</h3>" + generateHTML(tableModel);
- //Set the Results Attribute for the JSP Page
- request.setAttribute("results", resultString);
- //Dispatch result to jsp page
- RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
- dispatcher.forward(request, response);
- //Attempt to disconnect from DB
- tableModel.disconnectFromDatabase();
- return;
- }
- /* if(updateSupplier){
- Vector<Vector<String>> temp = QueryBase.runQuery(
- "select DISTINCT(suppliers.snum) from suppliers join shipments on suppliers.snum = shipments.snum and shipments.quantity >= 100");
- String mIN = "";
- for(Vector row: temp){
- if(mIN == "")
- mIN += "'"+row.get(0)+"'";
- else
- mIN += ",'"+row.get(0)+"'";
- }
- if(supplierSnum != "") mIN += ",'"+supplierSnum+"'";
- String blah = "UPDATE suppliers set status = (status+"+5+") where snum IN ("+mIN+")";
- HTML = generateHTMLOK(QueryBase.runUpdate(Query),QueryBase.runUpdate(blah));
- }
- else{
- HTML = generateHTMLOK(QueryBase.runUpdate(Query));
- }*/
- } catch (Exception e) {
- }
- }
- //Generate HTML Table Result
- resultString = generateHTML(tableModel);
- //Set the Results Attribute for the JSP Page
- request.setAttribute("results", resultString);
- //Dispatch result to jsp page
- RequestDispatcher dispatcher = request.getRequestDispatcher(destination);
- dispatcher.forward(request, response);
- //Attempt to disconnect from DB
- tableModel.disconnectFromDatabase();
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- }
- private String generateHTML(DatabaseTableModel table){
- String resultText;
- if(table.getRowCount() == -1)
- return "<h2>" + "Update Command Executed" + "<h2>";
- resultText =
- "<div id='table' style='margin:auto;text-align:center;width: 627px;'>" +
- "<table border='1' style='margin: auto;'>" +
- "<tr>";
- for(int i = 0; i < table.getColumnCount(); i++){
- resultText+= "<td style='background-color: yellow;'>"+ "<b>" + table.getColumnName(i) + "</b>" +"</td>";
- }
- resultText+="</tr>";
- for(int i = 0; i < table.getRowCount(); i++){
- resultText += "<tr>";
- for(int j=0; j < table.getColumnCount(); j++){
- resultText += "<td>";
- resultText += table.getValueAt(i, j);
- resultText += "</td>";
- }
- resultText += "</tr>";
- }
- resultText += "</table></div>";
- return resultText;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement