Advertisement
Guest User

Untitled

a guest
May 15th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.33 KB | None | 0 0
  1. package il.ac.hit.controller;
  2.  
  3. import java.io.IOException;
  4. import java.util.Iterator;
  5. import java.util.List;
  6.  
  7. import javax.servlet.ServletException;
  8. import javax.servlet.http.Cookie;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. import il.ac.hit.model.*;
  14. /**
  15.  *
  16.  *@version 1.24
  17.  *
  18.  *@author Rotem Damari
  19.  *@author Dah Aharoni
  20.  *@author Koral Ben Ami
  21.  *
  22.  */
  23.  
  24. /**
  25.  * Servlet implementation class ServletController
  26.  */
  27. public class ServletController extends HttpServlet {
  28.  
  29.     // http://localhost:8080/JavaEEProject_ToDoList/ConServlet/*
  30.  
  31.     private static final long serialVersionUID = 102831973239L;
  32.     private HibernateToDoListDAO inst = HibernateToDoListDAO.getInstance();
  33.     private User topUser = null;
  34.  
  35.     /**
  36.      * @see HttpServlet#HttpServlet()
  37.      */
  38.     public ServletController() {
  39.         super();
  40.     }
  41.  
  42.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  43.             throws ServletException, IOException
  44.     {
  45.  
  46.         if(request.getPathInfo().equals("/error"))
  47.         {
  48.             request.getRequestDispatcher("/error.jsp").forward(request, response);;
  49.         }
  50.         else
  51.             if (getCookie(request) != null)
  52.             {
  53.                 Cookie cook = getCookie(request);
  54.                 request.setAttribute("myUser", cook.getValue());
  55.  
  56.                 try
  57.                 {
  58.                     topUser = inst.getUserByName(cook.getValue());
  59.                 }
  60.                 catch (ToDoException e) {}
  61.  
  62.                 request.setAttribute("XMLtable", getXMLTable(cook.getValue()));
  63.                 request.getRequestDispatcher("/inSession.jsp").forward(request, response);
  64.             }
  65.             else
  66.             {
  67.                 request.getRequestDispatcher("/login.jsp").forward(request, response);
  68.             }
  69.     }
  70.  
  71.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  72.             throws ServletException, IOException
  73.     {
  74.         response.setHeader("Access-Control-Allow-Origin", "*");
  75.         List<User> userList = null;
  76.         String user, pass, buttonSelection, taskId, taskChange;
  77.         String path = request.getPathInfo();
  78.         Cookie cookie;
  79.         int flagWrong = 0;
  80.  
  81.         if (path.equals("/signUp"))
  82.         {
  83.             Iterator<User> iterator = null;
  84.             try
  85.             {
  86.                 user = request.getParameter("userName");
  87.                 pass = request.getParameter("password");
  88.                 String rePass = request.getParameter("rePassword");
  89.                 if(!inst.isAlphaNumeric(user))
  90.                 {
  91.                     request.setAttribute("message", "Username must be alphanumeric!");
  92.                     request.getRequestDispatcher("/login.jsp").forward(request, response);
  93.                 }
  94.                 else
  95.                 {
  96.                     if (!pass.equals(rePass))
  97.                     {
  98.                         request.setAttribute("message", "The password you've enterd are not the same, please try agian");
  99.                         request.getRequestDispatcher("/login.jsp").forward(request, response);
  100.                     }
  101.                     else
  102.                         if (pass.equals("") || user.equals(""))
  103.                         {
  104.                             request.setAttribute("message", "You have to fill in both User name and Password");
  105.                             request.getRequestDispatcher("/login.jsp").forward(request, response);
  106.                         }
  107.                         else
  108.                         {
  109.                             userList = inst.getUsers();
  110.                             iterator = userList.listIterator();
  111.                             while (iterator.hasNext()) {
  112.                                 if (iterator.next().getUserName().equals(user))
  113.                                 {
  114.                                     request.setAttribute("message", "This user name is already exists");
  115.                                     request.getRequestDispatcher("/login.jsp").forward(request, response);
  116.                                     flagWrong = 1;
  117.                                 }
  118.                             }
  119.                             if (flagWrong == 0)
  120.                             {
  121.                                 User newUser = new User(user, pass);
  122.                                 inst.addUser(newUser);
  123.                                 topUser = newUser;
  124.                                 if (getCookie(request) == null)
  125.                                 {
  126.                                     cookie = new Cookie("regCook", user);
  127.                                     cookie.setMaxAge(24 * 60 * 60);
  128.                                     response.addCookie(cookie);
  129.                                 }
  130.  
  131.                                 request.setAttribute("myUser", topUser.getUserName());
  132.                                 request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
  133.                                 request.getRequestDispatcher("/inSession.jsp").forward(request, response);
  134.                             }
  135.                         }
  136.                 }
  137.             }
  138.             catch (ToDoException e)
  139.             {
  140.             }
  141.         }
  142.         else
  143.             if (path.equals("/login"))
  144.             {
  145.                 user = request.getParameter("userName");
  146.                 pass = request.getParameter("password");
  147.                 flagWrong = 1;
  148.                 try
  149.                 {
  150.                     userList = inst.getUsers();
  151.                     for (User exUser : userList)
  152.                     {
  153.                         if (exUser.getUserName().equals(user) && exUser.getPassword().equals(pass))
  154.                         {
  155.                             topUser = exUser;
  156.                             if (getCookie(request) == null)
  157.                             {
  158.                                 cookie = new Cookie("regCook", user);
  159.                                 cookie.setMaxAge(24 * 60 * 60);
  160.                                 response.addCookie(cookie);
  161.                             }
  162.                             else
  163.                             {
  164.                                 Cookie cook = getCookie(request);
  165.                                 cook.setMaxAge(0);
  166.                                 response.addCookie(cook);
  167.                                 cookie = new Cookie("regCook", user);
  168.                                 cookie.setMaxAge(24 * 60 * 60);
  169.                                 response.addCookie(cookie);
  170.                             }
  171.  
  172.                             request.setAttribute("myUser", topUser.getUserName());
  173.                             request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
  174.                             request.getRequestDispatcher("/inSession.jsp").forward(request, response);
  175.                             flagWrong = 0;
  176.                         }
  177.                     }
  178.                     if (flagWrong == 1)
  179.                     {
  180.                         request.setAttribute("message", "User name/password incorrect");
  181.                         request.getRequestDispatcher("/login.jsp").forward(request, response);
  182.                     }
  183.                 }
  184.                 catch (ToDoException e) {}
  185.             }
  186.             else
  187.                 if (path.equals("/Logout"))
  188.                 {
  189.                     if (getCookie(request) != null){
  190.                         Cookie cook = getCookie(request);
  191.                         cook.setMaxAge(0);
  192.                         response.addCookie(cook);
  193.                         request.getRequestDispatcher("/login.jsp").forward(request, response);
  194.                     }
  195.                 }
  196.                 else
  197.                     if (path.equals("/inSession"))
  198.                     {
  199.                         buttonSelection = request.getParameter("radioButton");
  200.                         taskId = request.getParameter("taskId");
  201.                         taskChange = request.getParameter("taskUpdate");
  202.                         int chosenTaskId;
  203.                         Item ChosenTask = null;
  204.                         Item itemToInsert = null;
  205.                         try
  206.                         {
  207.                             if (buttonSelection.equals("addTask"))
  208.                             {
  209.                                 if (taskChange.equals(""))
  210.                                 {
  211.                                     request.setAttribute("message", "Please enter new Task in the box");
  212.                                 }
  213.                                 else
  214.                                 {
  215.                                     String datePicker = request.getParameter("datePicker");
  216.                                     if(datePicker == null)
  217.                                     {
  218.                                         datePicker = "-";
  219.                                     }
  220.  
  221.                                     itemToInsert = new Item(taskChange, topUser.getId(), datePicker);
  222.                                     inst.addToDoItem(itemToInsert);
  223.                                     request.setAttribute("message2", "New task added!");
  224.                                 }
  225.                             }
  226.                             else
  227.                             {
  228.                                 if (buttonSelection.equals("deletexTask"))
  229.                                 {
  230.                                     chosenTaskId = Integer.parseInt(taskId);
  231.                                     ChosenTask = inst.getItemPerUser(chosenTaskId);
  232.                                     inst.removeItem(ChosenTask);
  233.                                     request.setAttribute("message2", "Task deleted!");
  234.                                 }
  235.                                 else
  236.                                     if (buttonSelection.equals("changeTaskStatus"))
  237.                                     {
  238.                                         chosenTaskId = Integer.parseInt(taskId);
  239.                                         ChosenTask = inst.getItemPerUser(chosenTaskId);
  240.                                         inst.changeTaskStatus(ChosenTask);
  241.                                         request.setAttribute("message2", "Status changed!");
  242.                                     }
  243.                                     else
  244.                                         if (buttonSelection.equals("updateTask"))
  245.                                         {
  246.                                             if (taskChange.equals(""))
  247.                                             {
  248.                                                 request.setAttribute("message", "Please enter new Task to updaate in the box");
  249.                                             }
  250.                                             else
  251.                                             {
  252.                                                 chosenTaskId = Integer.parseInt(taskId);
  253.                                                 ChosenTask = inst.getItemPerUser(chosenTaskId);
  254.                                                 inst.updateTaskDescription(ChosenTask, taskChange);
  255.                                                 request.setAttribute("message2", "Task description updated!");
  256.                                             }
  257.                                         }
  258.                             }
  259.                         }
  260.                         catch (ToDoException e)
  261.                         {
  262.                             e.printStackTrace();
  263.                         }
  264.                         catch (NumberFormatException ne)
  265.                         {
  266.                             request.setAttribute("message", "Task ID not legal");
  267.  
  268.                         }
  269.                         catch (IllegalArgumentException ae)
  270.                         {
  271.                             request.setAttribute("message", "Task ID not legal");
  272.                         }
  273.  
  274.                         request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
  275.                         request.setAttribute("myUser", topUser.getUserName());
  276.                         request.getRequestDispatcher("/inSession.jsp").forward(request, response);
  277.                     }
  278.     }
  279.  
  280.     /**
  281.      * Function that builds a table of user's items.
  282.      *
  283.      * @param  userName             the user's name.
  284.      */
  285.     private String getXMLTable(String userName)
  286.     {
  287.         StringBuffer sb = new StringBuffer();
  288.         User user = null;
  289.         List<Item> itemList;
  290.         int i = 1;
  291.         try
  292.         {
  293.             user = inst.getUserByName(userName);
  294.             itemList = inst.getItemsPerUser(user.getId());
  295.            
  296.        
  297.             for (Item item : itemList)
  298.             {
  299.                 sb.append("<div data-role=\"collapsible-set\" data-content-theme=\"a\" data-iconpos=\"right\" id=\"set\"><div data-role=\"collapsible\" id=\"set1\" data-collapsed=\"true\">");
  300.                 sb.append("<h3>" + i + ". " + item.getItemToDo() + "</h3>");
  301.                 sb.append("<p><b>Date Created: </b>" + item.getDateCreated() + "</p>");
  302.                 sb.append("<p><b>Due Date: </b>" + item.getDueDate() + "</p>");
  303.                 if(!item.getIsDone().equals("To do.."))
  304.                 {
  305.                     sb.append("<form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"changeTaskStatus\" name=\"radioButton\"></input> <input type=\"image\" style=\"width:48px;height:48px;outline:none;\" src=\"/JavaEEProject_ToDoList/images/DoneIcon.png\" value=\"Change Status\"></input></form>");
  306.                 }
  307.                 else
  308.                 {
  309.                     sb.append("<form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"changeTaskStatus\" name=\"radioButton\"></input> <input type=\"image\" style=\"width:48px;height:48px;outline:none;\" src=\"/JavaEEProject_ToDoList/images/ToDoIcon.png\" value=\"Change Status\"></input></form>");
  310.                 }
  311.                
  312.                 sb.append("<form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"deletexTask\" name=\"radioButton\"></input> <input type=\"image\" style=\"outline:none;\" src=\"/JavaEEProject_ToDoList/images/editing-delete-icon.png\" value=\"Delete\"></input></form>");
  313.                 sb.append("<form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"updateTask\" name=\"radioButton\"></input> <input type=\"text\" name=\"taskUpdate\" required=\"required\" value=\"\"></form>");
  314.                 sb.append("</div></div>");
  315.                 i++;
  316.             }
  317.            
  318.             /*
  319.             sb.append("<table><thead><tr><th>ID</th><th>Description</th><th>Date Cteated</th><th>Due Date</th><th>Status</th><th>Delete</th><th>Change Description</th></tr></thead><tbody>");
  320.             for (Item item : itemList)
  321.             {
  322.                 sb.append("<tr><th>" + i + "</th>");
  323.                 sb.append("<td>" + item.getItemToDo() + "</td>");
  324.                 sb.append("<td>" + item.getDateCreated() + "</td>");
  325.                 sb.append("<td>" + item.getDueDate() + "</td>");
  326.                 if(!item.getIsDone().equals("To do.."))
  327.                 {
  328.                     sb.append("<td align=left> <form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"changeTaskStatus\" name=\"radioButton\"></input> <input type=\"image\" style=\"width:64px;height:64px;outline:none;\" src=\"/JavaEEProject_ToDoList/images/DoneIcon.png\" value=\"Change Status\"></input></form> </td>");
  329.                 }
  330.                 else
  331.                 {
  332.                     sb.append("<td align=left> <form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"changeTaskStatus\" name=\"radioButton\"></input> <input type=\"image\" style=\"width:64px;height:64px;outline:none;\" src=\"/JavaEEProject_ToDoList/images/ToDoIcon.png\" value=\"Change Status\"></input></form> </td>");
  333.                 }
  334.  
  335.                 sb.append("<td align=left> <form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"deletexTask\" name=\"radioButton\"></input> <input type=\"image\" style=\"outline:none;\" src=\"/JavaEEProject_ToDoList/images/editing-delete-icon.png\" value=\"Delete\"></input></form> </td>");
  336.                 sb.append("<td align=left> <form action=\"/JavaEEProject_ToDoList/ConServlet/inSession\" method=\"post\" > <input type=\"hidden\" value=\"" + item.getId() + "\" name=\"taskId\"></input> <input type=\"hidden\" value=\"updateTask\" name=\"radioButton\"></input> <input type=\"text\" name=\"taskUpdate\" required=\"required\" value=\"\"></form> </td></tr>");
  337.                 i++;
  338.             }
  339.  
  340.             sb.append("</tbody></table>");*/
  341.         }
  342.         catch (ToDoException e)
  343.         {
  344.             e.printStackTrace();
  345.         }
  346.  
  347.         return sb.toString();
  348.     }
  349.  
  350.     /**
  351.      * Function that gets cookies from the client.
  352.      *
  353.      * @param  request             HttpServletRequest.
  354.      */
  355.     private Cookie getCookie(HttpServletRequest request)
  356.     {
  357.         Cookie[] cookieArr = request.getCookies();
  358.         Cookie cooki = null;
  359.         if (cookieArr != null)
  360.         {
  361.             for (Cookie cook : cookieArr)
  362.             {
  363.                 if (cook.getName().equals("regCook"))
  364.                 {
  365.                     cooki = cook;
  366.                 }
  367.             }
  368.         }
  369.  
  370.         return cooki;
  371.     }
  372. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement