diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..86bb5f262 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,12 @@
4.0.1
provided
+
+
+ jstl
+ jstl
+ 1.2
+
diff --git a/src/main/java/mate/controller/AddDriverToCarController.java b/src/main/java/mate/controller/AddDriverToCarController.java
new file mode 100644
index 000000000..b3aa7f356
--- /dev/null
+++ b/src/main/java/mate/controller/AddDriverToCarController.java
@@ -0,0 +1,35 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.model.Driver;
+import mate.service.CarService;
+import mate.service.DriverService;
+
+@WebServlet("/cars/drivers/add")
+public class AddDriverToCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/addingDriverToCar.jsp").forward(req, resp);
+ }
+
+ public void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Car car = carService.get(Long.valueOf(req.getParameter("carId")));
+ Driver driver = driverService.get(Long.valueOf(req.getParameter("driverId")));
+ carService.addDriverToCar(driver, car);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/CreateCarController.java b/src/main/java/mate/controller/CreateCarController.java
new file mode 100644
index 000000000..e752cd3ac
--- /dev/null
+++ b/src/main/java/mate/controller/CreateCarController.java
@@ -0,0 +1,39 @@
+package mate.controller;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+@WebServlet("/cars/add")
+public class CreateCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/carCreation.jsp").forward(req, resp);
+ }
+
+ @Override
+ public void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Car car = new Car();
+ car.setModel(req.getParameter("model"));
+ car.setManufacturer(manufacturerService.get(
+ Long.valueOf(req.getParameter("manufacturerId"))));
+ car.setDrivers(new ArrayList<>());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/cars");
+ }
+}
diff --git a/src/main/java/mate/controller/CreateDriverController.java b/src/main/java/mate/controller/CreateDriverController.java
new file mode 100644
index 000000000..1733b9919
--- /dev/null
+++ b/src/main/java/mate/controller/CreateDriverController.java
@@ -0,0 +1,34 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+@WebServlet("/drivers/add")
+public class CreateDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/driverCreation.jsp").forward(req, resp);
+ }
+
+ @Override
+ public void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Driver driver = new Driver();
+ driver.setName(req.getParameter("name"));
+ driver.setLicenseNumber(req.getParameter("licenseNumber"));
+ driverService.create(driver);
+ resp.sendRedirect(req.getContextPath() + "/drivers");
+ }
+}
diff --git a/src/main/java/mate/controller/CreateManufacturerController.java b/src/main/java/mate/controller/CreateManufacturerController.java
new file mode 100644
index 000000000..9a8048ac6
--- /dev/null
+++ b/src/main/java/mate/controller/CreateManufacturerController.java
@@ -0,0 +1,34 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+@WebServlet("/manufacturers/add")
+public class CreateManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/manufacturerCreation.jsp").forward(req, resp);
+ }
+
+ @Override
+ public void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(req.getParameter("name"));
+ manufacturer.setCountry(req.getParameter("country"));
+ manufacturerService.create(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers");
+ }
+}
diff --git a/src/main/java/mate/controller/DeleteCarController.java b/src/main/java/mate/controller/DeleteCarController.java
new file mode 100644
index 000000000..f5985ae0a
--- /dev/null
+++ b/src/main/java/mate/controller/DeleteCarController.java
@@ -0,0 +1,23 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.service.CarService;
+
+@WebServlet("/cars/delete")
+public class DeleteCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ carService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/cars");
+ }
+}
diff --git a/src/main/java/mate/controller/DeleteDriverController.java b/src/main/java/mate/controller/DeleteDriverController.java
new file mode 100644
index 000000000..a3fac6e0b
--- /dev/null
+++ b/src/main/java/mate/controller/DeleteDriverController.java
@@ -0,0 +1,24 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.service.DriverService;
+
+@WebServlet("/drivers/delete")
+public class DeleteDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ driverService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/drivers");
+ }
+}
diff --git a/src/main/java/mate/controller/DeleteManufacturerController.java b/src/main/java/mate/controller/DeleteManufacturerController.java
new file mode 100644
index 000000000..f80391448
--- /dev/null
+++ b/src/main/java/mate/controller/DeleteManufacturerController.java
@@ -0,0 +1,24 @@
+package mate.controller;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.service.ManufacturerService;
+
+@WebServlet("/manufacturers/delete")
+public class DeleteManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ manufacturerService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/manufacturers");
+ }
+}
diff --git a/src/main/java/mate/controller/GetAllCarsController.java b/src/main/java/mate/controller/GetAllCarsController.java
new file mode 100644
index 000000000..07bce8eb6
--- /dev/null
+++ b/src/main/java/mate/controller/GetAllCarsController.java
@@ -0,0 +1,29 @@
+package mate.controller;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+@WebServlet("/cars")
+public class GetAllCarsController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List carList = carService.getAll();
+ req.setAttribute("cars", carList);
+ req.getRequestDispatcher("/WEB-INF/views/allCars.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/GetAllDriversController.java b/src/main/java/mate/controller/GetAllDriversController.java
new file mode 100644
index 000000000..c95dcc65e
--- /dev/null
+++ b/src/main/java/mate/controller/GetAllDriversController.java
@@ -0,0 +1,27 @@
+package mate.controller;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+@WebServlet("/drivers")
+public class GetAllDriversController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List driverList = driverService.getAll();
+ req.setAttribute("drivers", driverList);
+ req.getRequestDispatcher("/WEB-INF/views/allDrivers.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/GetAllManufacturersController.java b/src/main/java/mate/controller/GetAllManufacturersController.java
new file mode 100644
index 000000000..734bd5262
--- /dev/null
+++ b/src/main/java/mate/controller/GetAllManufacturersController.java
@@ -0,0 +1,27 @@
+package mate.controller;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+@WebServlet("/manufacturers")
+public class GetAllManufacturersController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List manufacturerList = manufacturerService.getAll();
+ req.setAttribute("manufacturers", manufacturerList);
+ req.getRequestDispatcher("/WEB-INF/views/allManufacturers.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java
index 27bcd4faa..33b6c2295 100644
--- a/src/main/java/mate/controller/IndexController.java
+++ b/src/main/java/mate/controller/IndexController.java
@@ -2,10 +2,12 @@
import java.io.IOException;
import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+@WebServlet("/index")
public class IndexController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..2fe7fc455 100644
--- a/src/main/java/mate/util/ConnectionUtil.java
+++ b/src/main/java/mate/util/ConnectionUtil.java
@@ -6,10 +6,10 @@
import java.util.Properties;
public class ConnectionUtil {
- private static final String URL = "YOUR DATABASE URL";
- private static final String USERNAME = "YOUR USERNAME";
- private static final String PASSWORD = "YOUR PASSWORD";
- private static final String JDBC_DRIVER = "YOUR DRIVER";
+ private static final String URL = "jdbc:mysql://sql7.freesqldatabase.com:3306/sql7630939";
+ private static final String USERNAME = "sql7630939";
+ private static final String PASSWORD = "HmUQTbNf6K";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp b/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp
new file mode 100644
index 000000000..7e0d52112
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp
@@ -0,0 +1,15 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Driver adding
+
+
+Please fill full the form below.
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/allCars.jsp b/src/main/webapp/WEB-INF/views/allCars.jsp
new file mode 100644
index 000000000..7e80db822
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/allCars.jsp
@@ -0,0 +1,34 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="d" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ All cars
+
+
+List of cars:
+
+
+ | ID |
+ Model |
+ Manufacturer |
+ List of drivers |
+ Delete |
+
+
+
+ |
+ |
+ |
+
+
+
+
+
+ |
+ delete |
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/allDrivers.jsp b/src/main/webapp/WEB-INF/views/allDrivers.jsp
new file mode 100644
index 000000000..535c2c994
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/allDrivers.jsp
@@ -0,0 +1,26 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ All drivers
+
+
+List of drivers:
+
+
+ | ID |
+ Name |
+ License_number |
+ Delete |
+
+
+
+ |
+ |
+ |
+ delete |
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/allManufacturers.jsp b/src/main/webapp/WEB-INF/views/allManufacturers.jsp
new file mode 100644
index 000000000..565a455fa
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/allManufacturers.jsp
@@ -0,0 +1,26 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ All manufacturers
+
+
+List of manufacturers:
+
+
+ | ID |
+ Name |
+ Country |
+ Delete |
+
+
+
+ |
+ |
+ |
+ delete |
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/carCreation.jsp b/src/main/webapp/WEB-INF/views/carCreation.jsp
new file mode 100644
index 000000000..41f18c2cf
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/carCreation.jsp
@@ -0,0 +1,15 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Car creation
+
+
+Please fill full the form below.
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/driverCreation.jsp b/src/main/webapp/WEB-INF/views/driverCreation.jsp
new file mode 100644
index 000000000..b41f89631
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/driverCreation.jsp
@@ -0,0 +1,15 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Driver creation
+
+
+Please fill full the form below.
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp
index 0fbc5292a..cad5e6227 100644
--- a/src/main/webapp/WEB-INF/views/index.jsp
+++ b/src/main/webapp/WEB-INF/views/index.jsp
@@ -1,9 +1,12 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
My team
Hello, mates!
+Drivers list
+Manufacturers list
+Cars list
diff --git a/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp b/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp
new file mode 100644
index 000000000..2826d8db2
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp
@@ -0,0 +1,15 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Manufacturer creation
+
+
+Please fill full the form below.
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml
index 00afaeb93..f69dec813 100644
--- a/src/main/webapp/web.xml
+++ b/src/main/webapp/web.xml
@@ -3,12 +3,5 @@
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
-
- index
- mate.controller.IndexController
-
-
- index
- /index
-
+