| 1 | package controller;
|
|---|
| 2 |
|
|---|
| 3 | import model.University;
|
|---|
| 4 | import service.UniversityService;
|
|---|
| 5 | import service.impl.UniversityServiceImpl;
|
|---|
| 6 |
|
|---|
| 7 | import javax.servlet.RequestDispatcher;
|
|---|
| 8 | import javax.servlet.ServletException;
|
|---|
| 9 | import javax.servlet.annotation.WebServlet;
|
|---|
| 10 | import javax.servlet.http.*;
|
|---|
| 11 | import java.io.IOException;
|
|---|
| 12 | import java.sql.SQLException;
|
|---|
| 13 | import java.util.List;
|
|---|
| 14 |
|
|---|
| 15 | public class UniversityServlet extends HttpServlet {
|
|---|
| 16 | private static final long serialVersionUID = 1L;
|
|---|
| 17 | private UniversityService universityService;
|
|---|
| 18 |
|
|---|
| 19 | public UniversityServlet() {
|
|---|
| 20 | this.universityService = new UniversityServiceImpl();
|
|---|
| 21 | }
|
|---|
| 22 |
|
|---|
| 23 | protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 24 | throws ServletException, IOException {
|
|---|
| 25 | doGet(request, response);
|
|---|
| 26 | }
|
|---|
| 27 |
|
|---|
| 28 | protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 29 | throws ServletException, IOException {
|
|---|
| 30 | String action = request.getPathInfo();
|
|---|
| 31 | if (action == null) {
|
|---|
| 32 | action = "/list";
|
|---|
| 33 | }
|
|---|
| 34 |
|
|---|
| 35 | try {
|
|---|
| 36 | switch (action) {
|
|---|
| 37 | case "/new":
|
|---|
| 38 | showNewForm(request, response);
|
|---|
| 39 | break;
|
|---|
| 40 | case "/insert":
|
|---|
| 41 | insertUniversity(request, response);
|
|---|
| 42 | break;
|
|---|
| 43 | case "/delete":
|
|---|
| 44 | deleteUniversity(request, response);
|
|---|
| 45 | break;
|
|---|
| 46 | case "/edit":
|
|---|
| 47 | showEditForm(request, response);
|
|---|
| 48 | break;
|
|---|
| 49 | case "/update":
|
|---|
| 50 | updateUniversity(request, response);
|
|---|
| 51 | break;
|
|---|
| 52 | case "/list":
|
|---|
| 53 | default:
|
|---|
| 54 | listUniversities(request, response);
|
|---|
| 55 | break;
|
|---|
| 56 | }
|
|---|
| 57 | } catch (SQLException e) {
|
|---|
| 58 | throw new ServletException(e);
|
|---|
| 59 | }
|
|---|
| 60 | }
|
|---|
| 61 |
|
|---|
| 62 | private void listUniversities(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 63 | throws SQLException, IOException, ServletException {
|
|---|
| 64 | List<University> universities = universityService.getAllUniversities();
|
|---|
| 65 | request.setAttribute("universities", universities);
|
|---|
| 66 | RequestDispatcher dispatcher = request.getRequestDispatcher("/pages/university-list.jsp");
|
|---|
| 67 | dispatcher.forward(request, response);
|
|---|
| 68 | }
|
|---|
| 69 |
|
|---|
| 70 | private void showNewForm(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 71 | throws ServletException, IOException {
|
|---|
| 72 | RequestDispatcher dispatcher = request.getRequestDispatcher("/pages/university-form.jsp");
|
|---|
| 73 | dispatcher.forward(request, response);
|
|---|
| 74 | }
|
|---|
| 75 |
|
|---|
| 76 | private void showEditForm(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 77 | throws SQLException, ServletException, IOException {
|
|---|
| 78 | Long id = Long.parseLong(request.getParameter("id"));
|
|---|
| 79 | University university = universityService.getById(id);
|
|---|
| 80 | if (university == null) {
|
|---|
| 81 | response.sendError(HttpServletResponse.SC_NOT_FOUND, "University not found");
|
|---|
| 82 | return;
|
|---|
| 83 | }
|
|---|
| 84 | request.setAttribute("university", university);
|
|---|
| 85 | RequestDispatcher dispatcher = request.getRequestDispatcher("/pages/university-form.jsp");
|
|---|
| 86 | dispatcher.forward(request, response);
|
|---|
| 87 | }
|
|---|
| 88 |
|
|---|
| 89 | private void insertUniversity(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 90 | throws SQLException, IOException, ServletException {
|
|---|
| 91 | String name = request.getParameter("name");
|
|---|
| 92 | String location = request.getParameter("location");
|
|---|
| 93 | String isPrivateParam = request.getParameter("isPrivate");
|
|---|
| 94 | Boolean isPrivate = isPrivateParam != null && Boolean.parseBoolean(isPrivateParam);
|
|---|
| 95 |
|
|---|
| 96 | if (name == null || name.trim().isEmpty() || location == null || location.trim().isEmpty()) {
|
|---|
| 97 | request.setAttribute("errorMessage", "Name and location are required.");
|
|---|
| 98 | request.getRequestDispatcher("/pages/university-form.jsp").forward(request, response);
|
|---|
| 99 | return;
|
|---|
| 100 | }
|
|---|
| 101 |
|
|---|
| 102 | University university = new University(null, name, location, isPrivate);
|
|---|
| 103 |
|
|---|
| 104 | universityService.save(university);
|
|---|
| 105 | response.sendRedirect(request.getContextPath() + "/university/list");
|
|---|
| 106 | }
|
|---|
| 107 |
|
|---|
| 108 | private void updateUniversity(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 109 | throws SQLException, IOException {
|
|---|
| 110 | Long id = Long.parseLong(request.getParameter("id"));
|
|---|
| 111 | String name = request.getParameter("name");
|
|---|
| 112 | String location = request.getParameter("location");
|
|---|
| 113 | Boolean isPrivate = Boolean.parseBoolean(request.getParameter("isPrivate"));
|
|---|
| 114 |
|
|---|
| 115 | University university = new University(id, name, location, isPrivate);
|
|---|
| 116 | universityService.update(university);
|
|---|
| 117 | response.sendRedirect(request.getContextPath() + "/university/list");
|
|---|
| 118 | }
|
|---|
| 119 |
|
|---|
| 120 | private void deleteUniversity(HttpServletRequest request, HttpServletResponse response)
|
|---|
| 121 | throws SQLException, IOException {
|
|---|
| 122 | Long id = Long.parseLong(request.getParameter("id"));
|
|---|
| 123 | universityService.delete(id);
|
|---|
| 124 | response.sendRedirect(request.getContextPath() + "/university/list");
|
|---|
| 125 | }
|
|---|
| 126 | }
|
|---|