source: src/main/java/controller/UniversityServlet.java@ 1eb7a55

Last change on this file since 1eb7a55 was 1eb7a55, checked in by Elena Markovska <elena.elenamarkovska@…>, 11 days ago

Initial commit - Scholaris project code

  • Property mode set to 100644
File size: 5.1 KB
Line 
1package controller;
2
3import model.University;
4import service.UniversityService;
5import service.impl.UniversityServiceImpl;
6
7import javax.servlet.RequestDispatcher;
8import javax.servlet.ServletException;
9import javax.servlet.annotation.WebServlet;
10import javax.servlet.http.*;
11import java.io.IOException;
12import java.sql.SQLException;
13import java.util.List;
14
15public 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}
Note: See TracBrowser for help on using the repository browser.