Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package il.ac.hit.controller;
- import java.io.IOException;
- import java.util.Iterator;
- import java.util.List;
- import javax.servlet.ServletException;
- import javax.servlet.http.Cookie;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import il.ac.hit.model.*;
- /**
- *
- *@version 1.24
- *
- *@author Rotem Damari
- *@author Dah Aharoni
- *@author Koral Ben Ami
- *
- */
- /**
- * Servlet implementation class ServletController
- */
- public class ServletController extends HttpServlet {
- // http://localhost:8080/JavaEEProject_ToDoList/ConServlet/*
- private static final long serialVersionUID = 102831973239L;
- private HibernateToDoListDAO inst = HibernateToDoListDAO.getInstance();
- private User topUser = null;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public ServletController() {
- super();
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException
- {
- if(request.getPathInfo().equals("/error"))
- {
- request.getRequestDispatcher("/error.jsp").forward(request, response);;
- }
- else
- if (getCookie(request) != null)
- {
- Cookie cook = getCookie(request);
- request.setAttribute("myUser", cook.getValue());
- try
- {
- topUser = inst.getUserByName(cook.getValue());
- }
- catch (ToDoException e) {}
- request.setAttribute("XMLtable", getXMLTable(cook.getValue()));
- request.getRequestDispatcher("/inSession.jsp").forward(request, response);
- }
- else
- {
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException
- {
- response.setHeader("Access-Control-Allow-Origin", "*");
- List<User> userList = null;
- String user, pass, buttonSelection, taskId, taskChange;
- String path = request.getPathInfo();
- Cookie cookie;
- int flagWrong = 0;
- if (path.equals("/signUp"))
- {
- Iterator<User> iterator = null;
- try
- {
- user = request.getParameter("userName");
- pass = request.getParameter("password");
- String rePass = request.getParameter("rePassword");
- if(!inst.isAlphaNumeric(user))
- {
- request.setAttribute("message", "Username must be alphanumeric!");
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- else
- {
- if (!pass.equals(rePass))
- {
- request.setAttribute("message", "The password you've enterd are not the same, please try agian");
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- else
- if (pass.equals("") || user.equals(""))
- {
- request.setAttribute("message", "You have to fill in both User name and Password");
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- else
- {
- userList = inst.getUsers();
- iterator = userList.listIterator();
- while (iterator.hasNext()) {
- if (iterator.next().getUserName().equals(user))
- {
- request.setAttribute("message", "This user name is already exists");
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- flagWrong = 1;
- }
- }
- if (flagWrong == 0)
- {
- User newUser = new User(user, pass);
- inst.addUser(newUser);
- topUser = newUser;
- if (getCookie(request) == null)
- {
- cookie = new Cookie("regCook", user);
- cookie.setMaxAge(24 * 60 * 60);
- response.addCookie(cookie);
- }
- request.setAttribute("myUser", topUser.getUserName());
- request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
- request.getRequestDispatcher("/inSession.jsp").forward(request, response);
- }
- }
- }
- }
- catch (ToDoException e)
- {
- }
- }
- else
- if (path.equals("/login"))
- {
- user = request.getParameter("userName");
- pass = request.getParameter("password");
- flagWrong = 1;
- try
- {
- userList = inst.getUsers();
- for (User exUser : userList)
- {
- if (exUser.getUserName().equals(user) && exUser.getPassword().equals(pass))
- {
- topUser = exUser;
- if (getCookie(request) == null)
- {
- cookie = new Cookie("regCook", user);
- cookie.setMaxAge(24 * 60 * 60);
- response.addCookie(cookie);
- }
- else
- {
- Cookie cook = getCookie(request);
- cook.setMaxAge(0);
- response.addCookie(cook);
- cookie = new Cookie("regCook", user);
- cookie.setMaxAge(24 * 60 * 60);
- response.addCookie(cookie);
- }
- request.setAttribute("myUser", topUser.getUserName());
- request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
- request.getRequestDispatcher("/inSession.jsp").forward(request, response);
- flagWrong = 0;
- }
- }
- if (flagWrong == 1)
- {
- request.setAttribute("message", "User name/password incorrect");
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- }
- catch (ToDoException e) {}
- }
- else
- if (path.equals("/Logout"))
- {
- if (getCookie(request) != null){
- Cookie cook = getCookie(request);
- cook.setMaxAge(0);
- response.addCookie(cook);
- request.getRequestDispatcher("/login.jsp").forward(request, response);
- }
- }
- else
- if (path.equals("/inSession"))
- {
- buttonSelection = request.getParameter("radioButton");
- taskId = request.getParameter("taskId");
- taskChange = request.getParameter("taskUpdate");
- int chosenTaskId;
- Item ChosenTask = null;
- Item itemToInsert = null;
- try
- {
- if (buttonSelection.equals("addTask"))
- {
- if (taskChange.equals(""))
- {
- request.setAttribute("message", "Please enter new Task in the box");
- }
- else
- {
- String datePicker = request.getParameter("datePicker");
- if(datePicker == null)
- {
- datePicker = "-";
- }
- itemToInsert = new Item(taskChange, topUser.getId(), datePicker);
- inst.addToDoItem(itemToInsert);
- request.setAttribute("message2", "New task added!");
- }
- }
- else
- {
- if (buttonSelection.equals("deletexTask"))
- {
- chosenTaskId = Integer.parseInt(taskId);
- ChosenTask = inst.getItemPerUser(chosenTaskId);
- inst.removeItem(ChosenTask);
- request.setAttribute("message2", "Task deleted!");
- }
- else
- if (buttonSelection.equals("changeTaskStatus"))
- {
- chosenTaskId = Integer.parseInt(taskId);
- ChosenTask = inst.getItemPerUser(chosenTaskId);
- inst.changeTaskStatus(ChosenTask);
- request.setAttribute("message2", "Status changed!");
- }
- else
- if (buttonSelection.equals("updateTask"))
- {
- if (taskChange.equals(""))
- {
- request.setAttribute("message", "Please enter new Task to updaate in the box");
- }
- else
- {
- chosenTaskId = Integer.parseInt(taskId);
- ChosenTask = inst.getItemPerUser(chosenTaskId);
- inst.updateTaskDescription(ChosenTask, taskChange);
- request.setAttribute("message2", "Task description updated!");
- }
- }
- }
- }
- catch (ToDoException e)
- {
- e.printStackTrace();
- }
- catch (NumberFormatException ne)
- {
- request.setAttribute("message", "Task ID not legal");
- }
- catch (IllegalArgumentException ae)
- {
- request.setAttribute("message", "Task ID not legal");
- }
- request.setAttribute("XMLtable", getXMLTable(topUser.getUserName()));
- request.setAttribute("myUser", topUser.getUserName());
- request.getRequestDispatcher("/inSession.jsp").forward(request, response);
- }
- }
- /**
- * Function that builds a table of user's items.
- *
- * @param userName the user's name.
- */
- private String getXMLTable(String userName)
- {
- StringBuffer sb = new StringBuffer();
- User user = null;
- List<Item> itemList;
- int i = 1;
- try
- {
- user = inst.getUserByName(userName);
- itemList = inst.getItemsPerUser(user.getId());
- for (Item item : itemList)
- {
- 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\">");
- sb.append("<h3>" + i + ". " + item.getItemToDo() + "</h3>");
- sb.append("<p><b>Date Created: </b>" + item.getDateCreated() + "</p>");
- sb.append("<p><b>Due Date: </b>" + item.getDueDate() + "</p>");
- if(!item.getIsDone().equals("To do.."))
- {
- 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>");
- }
- else
- {
- 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>");
- }
- 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>");
- 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>");
- sb.append("</div></div>");
- i++;
- }
- /*
- 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>");
- for (Item item : itemList)
- {
- sb.append("<tr><th>" + i + "</th>");
- sb.append("<td>" + item.getItemToDo() + "</td>");
- sb.append("<td>" + item.getDateCreated() + "</td>");
- sb.append("<td>" + item.getDueDate() + "</td>");
- if(!item.getIsDone().equals("To do.."))
- {
- 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>");
- }
- else
- {
- 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>");
- }
- 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>");
- 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>");
- i++;
- }
- sb.append("</tbody></table>");*/
- }
- catch (ToDoException e)
- {
- e.printStackTrace();
- }
- return sb.toString();
- }
- /**
- * Function that gets cookies from the client.
- *
- * @param request HttpServletRequest.
- */
- private Cookie getCookie(HttpServletRequest request)
- {
- Cookie[] cookieArr = request.getCookies();
- Cookie cooki = null;
- if (cookieArr != null)
- {
- for (Cookie cook : cookieArr)
- {
- if (cook.getName().equals("regCook"))
- {
- cooki = cook;
- }
- }
- }
- return cooki;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement