source: src/main/java/controller/ProfessorServlet.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: 6.3 KB
RevLine 
[1eb7a55]1package controller;
2
3import model.Professor;
4import model.Faculty;
5import model.Subject;
6import model.University;
7import service.ProfessorService;
8import service.FacultyService;
9import service.SubjectService;
10import service.UniversityService;
11import service.impl.ProfessorServiceImpl;
12import service.impl.FacultyServiceImpl;
13import service.impl.SubjectServiceImpl;
14import service.impl.UniversityServiceImpl;
15
16import javax.servlet.RequestDispatcher;
17import javax.servlet.ServletException;
18import javax.servlet.annotation.WebServlet;
19import javax.servlet.http.HttpServlet;
20import javax.servlet.http.HttpServletRequest;
21import javax.servlet.http.HttpServletResponse;
22
23import java.io.IOException;
24import java.sql.SQLException;
25import java.util.List;
26
27//@WebServlet("/professor/*")
28public class ProfessorServlet extends HttpServlet {
29 private static final long serialVersionUID = 1L;
30
31 private final ProfessorService professorService = new ProfessorServiceImpl();
32 private final SubjectService subjectService = new SubjectServiceImpl();
33 private final service.ProfessorSubjectService profSubService = new service.impl.ProfessorSubjectServiceImpl(); private final FacultyService facultyService = new FacultyServiceImpl();
34 private final UniversityService universityService = new UniversityServiceImpl();
35
36 @Override
37 protected void doPost(HttpServletRequest request, HttpServletResponse response)
38 throws ServletException, IOException {
39 doGet(request, response);
40 }
41
42 @Override
43 protected void doGet(HttpServletRequest request, HttpServletResponse response)
44 throws ServletException, IOException {
45 String action = request.getPathInfo();
46 if (action == null || action.equals("/")) {
47 action = "/list";
48 }
49
50 try {
51 switch (action) {
52 case "/new":
53 showNewForm(request, response);
54 break;
55 case "/insert":
56 insertProfessor(request, response);
57 break;
58 case "/delete":
59 deleteProfessor(request, response);
60 break;
61 case "/edit":
62 showEditForm(request, response);
63 break;
64 case "/update":
65 updateProfessor(request, response);
66 break;
67 case "/list":
68 default:
69 listProfessor(request, response);
70 break;
71 }
72 } catch (SQLException e) {
73 throw new ServletException("Database error in ProfessorServlet", e);
74 }
75 }
76
77 private void listProfessor(HttpServletRequest request, HttpServletResponse response)
78 throws ServletException, IOException, SQLException {
79 List<Professor> professors = professorService.getAllProfessors();
80 request.setAttribute("listProfessor", professors);
81 request.getRequestDispatcher("/pages/professor-list.jsp").forward(request, response);
82 }
83
84 private void showNewForm(HttpServletRequest request, HttpServletResponse response)
85 throws ServletException, IOException, SQLException {
86 List<Faculty> faculties = facultyService.getAllFaculty();
87 List<University> universities = universityService.getAllUniversities();
88 request.setAttribute("faculties", faculties);
89 request.setAttribute("universities", universities);
90 request.getRequestDispatcher("/pages/professor-form.jsp").forward(request, response);
91 }
92
93 private void showEditForm(HttpServletRequest request, HttpServletResponse response)
94 throws SQLException, ServletException, IOException {
95 Long id = Long.parseLong(request.getParameter("id"));
96 Professor existingProfessor = professorService.getById(id);
97
98 if (existingProfessor == null) {
99 response.sendError(HttpServletResponse.SC_NOT_FOUND, "Professor not found");
100 return;
101 }
102
103 List<Subject> taughtSubjects = profSubService.getSubjectsForProfessor(id);
104 List<Subject> allSubjects = subjectService.getAllSubjects();
105 List<Faculty> faculties = facultyService.getAllFaculty();
106 List<University> universities = universityService.getAllUniversities();
107 request.setAttribute("professor", existingProfessor);
108 request.setAttribute("taughtSubjects", taughtSubjects);
109 request.setAttribute("allSubjectsList", allSubjects);
110 request.setAttribute("faculties", faculties);
111 request.setAttribute("universities", universities);
112 request.getRequestDispatcher("/pages/professor-form.jsp").forward(request, response);
113 }
114
115 private void insertProfessor(HttpServletRequest request, HttpServletResponse response)
116 throws SQLException, IOException {
117 Professor professor = parseProfessorFromRequest(request);
118 professorService.save(professor);
119
120 response.sendRedirect(request.getContextPath() + "/professor/list");
121 }
122
123 private void updateProfessor(HttpServletRequest request, HttpServletResponse response)
124 throws SQLException, IOException {
125 Long id = Long.parseLong(request.getParameter("id"));
126 Professor professor = parseProfessorFromRequest(request);
127 professor.setId(id);
128 professorService.update(professor);
129 response.sendRedirect(request.getContextPath() + "/professor/list");
130 }
131
132 private void deleteProfessor(HttpServletRequest request, HttpServletResponse response)
133 throws SQLException, IOException {
134 Long id = Long.parseLong(request.getParameter("id"));
135 professorService.delete(id);
136 response.sendRedirect(request.getContextPath() + "/professor/list");
137 }
138
139 private Professor parseProfessorFromRequest(HttpServletRequest request) {
140 String name = request.getParameter("name");
141 String surname = request.getParameter("surname");
142 int age = Integer.parseInt(request.getParameter("age"));
143 long facultyid = Long.parseLong(request.getParameter("facultyid"));
144 String universityIdStr = request.getParameter("universityId");
145
146 University university = new University();
147 if (universityIdStr != null && !universityIdStr.isEmpty()) {
148 university.setId(Long.parseLong(universityIdStr));
149 }
150 return new Professor(null, name, surname, age, facultyid, university);
151 }
152}
Note: See TracBrowser for help on using the repository browser.