source: src/main/java/controller/StudentSubjectServlet.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: 4.7 KB
RevLine 
[1eb7a55]1package controller;
2
3import DAO.impl.StudentSubjectDAOImpl;
4import model.StudentSubject;
5
6import javax.servlet.ServletException;
7import javax.servlet.annotation.WebServlet;
8import javax.servlet.http.HttpServlet;
9import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11import java.io.IOException;
12import java.sql.SQLException;
13import java.time.LocalDate;
14import java.util.List;
15
16@WebServlet("/enrollment/*")
17public class StudentSubjectServlet extends HttpServlet {
18 private final StudentSubjectDAOImpl dao = new StudentSubjectDAOImpl();
19
20 @Override
21 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
22 String action = request.getPathInfo();
23 try {
24 switch (action) {
25 case "/insert":
26 insertEnrollment(request, response);
27 break;
28 case "/update":
29 updateEnrollment(request, response);
30 break;
31 }
32 } catch (SQLException e) {
33 throw new ServletException(e);
34 }
35 }
36
37 @Override
38 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
39 String action = request.getPathInfo();
40 if (action == null) action = "/list";
41
42 try {
43 switch (action) {
44 case "/new":
45 showNewForm(request, response);
46 break;
47 case "/edit":
48 showEditForm(request, response);
49 break;
50 case "/delete":
51 deleteEnrollment(request, response);
52 break;
53 case "/list":
54 default:
55 listEnrollments(request, response);
56 break;
57 }
58 } catch (SQLException e) {
59 throw new ServletException(e);
60 }
61 }
62
63 private void listEnrollments(HttpServletRequest request, HttpServletResponse response)
64 throws SQLException, ServletException, IOException {
65 List<StudentSubject> list = dao.getAll();
66 request.setAttribute("enrollments", list);
67 request.getRequestDispatcher("/pages/enrollment-list.jsp").forward(request, response);
68 }
69
70 private void showNewForm(HttpServletRequest request, HttpServletResponse response)
71 throws ServletException, IOException {
72 // Just forward to form; fields will be empty/default
73 request.getRequestDispatcher("/pages/enrollment-form.jsp").forward(request, response);
74 }
75
76 private void showEditForm(HttpServletRequest request, HttpServletResponse response)
77 throws SQLException, ServletException, IOException {
78 Long ss_id = Long.parseLong(request.getParameter("ss_id"));
79 StudentSubject existing = dao.getById(ss_id);
80 request.setAttribute("enrollment", existing);
81 request.getRequestDispatcher("/pages/enrollment-form.jsp").forward(request, response);
82 }
83
84 private void insertEnrollment(HttpServletRequest request, HttpServletResponse response)
85 throws SQLException, IOException {
86 Long student_id = Long.parseLong(request.getParameter("student_id"));
87 Long subject_id = Long.parseLong(request.getParameter("subject_id"));
88 int absences = Integer.parseInt(request.getParameter("absences_count"));
89
90 StudentSubject ss = new StudentSubject(student_id, subject_id, LocalDate.now(), absences, "ENROLLED");
91 dao.save(ss);
92 response.sendRedirect(request.getContextPath() + "/enrollment/list");
93 }
94
95 private void updateEnrollment(HttpServletRequest request, HttpServletResponse response)
96 throws SQLException, IOException {
97 Long ss_id = Long.parseLong(request.getParameter("ss_id"));
98 String status = request.getParameter("status");
99 int absences = Integer.parseInt(request.getParameter("absences_count"));
100
101 String gradeStr = request.getParameter("final_grade");
102 Integer final_grade = (gradeStr != null && !gradeStr.isEmpty()) ? Integer.parseInt(gradeStr) : null;
103
104 StudentSubject ss = new StudentSubject();
105 ss.setSs_id(ss_id);
106 ss.setStatus(status);
107 ss.setAbsences_count(absences);
108 ss.setFinal_grade(final_grade);
109
110 dao.update(ss);
111 response.sendRedirect(request.getContextPath() + "/enrollment/list");
112 }
113
114 private void deleteEnrollment(HttpServletRequest request, HttpServletResponse response)
115 throws SQLException, IOException {
116 Long ss_id = Long.parseLong(request.getParameter("ss_id"));
117 dao.delete(ss_id);
118 response.sendRedirect(request.getContextPath() + "/enrollment/list");
119 }
120}
Note: See TracBrowser for help on using the repository browser.