diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..a52973361 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,11 @@
4.0.1
provided
+
+ jstl
+ jstl
+ 1.2
+
diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java
index 27bcd4faa..02d542e0b 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(urlPatterns = "/index")
public class IndexController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
diff --git a/src/main/java/mate/controller/car/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java
new file mode 100644
index 000000000..b53ac56bc
--- /dev/null
+++ b/src/main/java/mate/controller/car/AddDriverToCarController.java
@@ -0,0 +1,33 @@
+package mate.controller.car;
+
+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(urlPatterns = "/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 doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ Long driverId = Long.valueOf(request.getParameter("driver_id"));
+ Long carId = Long.valueOf(request.getParameter("car_id"));
+ Car car = carService.get(carId);
+ Driver driver = driverService.get(driverId);
+ carService.addDriverToCar(driver, car);
+
+ response.sendRedirect(request.getContextPath() + "/");
+ }
+}
diff --git a/src/main/java/mate/controller/car/CreateCarController.java b/src/main/java/mate/controller/car/CreateCarController.java
new file mode 100644
index 000000000..a3506a618
--- /dev/null
+++ b/src/main/java/mate/controller/car/CreateCarController.java
@@ -0,0 +1,41 @@
+package mate.controller.car;
+
+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.Manufacturer;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/cars/add")
+public class CreateCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final CarService carService =
+ (CarService) injector.getInstance(CarService.class);
+ private static final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/cars/addCar.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ Car car = new Car();
+ String model = request.getParameter("model");
+ Long manufacturerId = Long.valueOf(request.getParameter("manufacturer_id"));
+ Manufacturer manufacturer = manufacturerService.get(manufacturerId);
+ car.setModel(model);
+ car.setManufacturer(manufacturer);
+ carService.create(car);
+ response.sendRedirect(request.getContextPath() + "/cars");
+ }
+}
diff --git a/src/main/java/mate/controller/driver/CreateDriverController.java b/src/main/java/mate/controller/driver/CreateDriverController.java
new file mode 100644
index 000000000..f08365122
--- /dev/null
+++ b/src/main/java/mate/controller/driver/CreateDriverController.java
@@ -0,0 +1,36 @@
+package mate.controller.driver;
+
+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(urlPatterns = "/drivers/add")
+public class CreateDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ request.getRequestDispatcher("/WEB-INF/views/drivers/addDriver.jsp")
+ .forward(request, response);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ Driver driver = new Driver();
+ driver.setName(request.getParameter("name"));
+ driver.setLicenseNumber(request.getParameter("license"));
+ driverService.create(driver);
+
+ response.sendRedirect(request.getContextPath() + "/drivers");
+ }
+}
diff --git a/src/main/java/mate/controller/driver/GetAllDriversController.java b/src/main/java/mate/controller/driver/GetAllDriversController.java
new file mode 100644
index 000000000..3b72f3adc
--- /dev/null
+++ b/src/main/java/mate/controller/driver/GetAllDriversController.java
@@ -0,0 +1,27 @@
+package mate.controller.driver;
+
+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(urlPatterns = "/drivers")
+public class GetAllDriversController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List allDrivers = driverService.getAll();
+ req.setAttribute("drivers", allDrivers);
+ req.getRequestDispatcher("/WEB-INF/views/drivers/getAllDrivers.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java
new file mode 100644
index 000000000..602100e35
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java
@@ -0,0 +1,36 @@
+package mate.controller.manufacturer;
+
+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(urlPatterns = "/manufacturers/add")
+public class CreateManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ request.getRequestDispatcher("/WEB-INF/views/manufacturers/addManufacturer.jsp")
+ .forward(request, response);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(request.getParameter("name"));
+ manufacturer.setCountry(request.getParameter("country"));
+ manufacturerService.create(manufacturer);
+
+ response.sendRedirect(request.getContextPath() + "/manufacturers");
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
new file mode 100644
index 000000000..0ec905c42
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
@@ -0,0 +1,28 @@
+package mate.controller.manufacturer;
+
+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(urlPatterns = "/manufacturers")
+public class GetAllManufacturersController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ List allManufacturers = manufacturerService.getAll();
+ request.setAttribute("manufacturers", allManufacturers);
+ request.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp")
+ .forward(request, response);
+ }
+}
diff --git a/src/main/webapp/WEB-INF/views/cars/addCar.jsp b/src/main/webapp/WEB-INF/views/cars/addCar.jsp
new file mode 100644
index 000000000..86ee06592
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/addCar.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add Car
+
+
+Add new Car
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp b/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp
new file mode 100644
index 000000000..ea79295d9
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add new driver to a car
+
+
+Please provide information:
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/addDriver.jsp b/src/main/webapp/WEB-INF/views/drivers/addDriver.jsp
new file mode 100644
index 000000000..2344c6450
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/addDriver.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add driver
+
+
+Add new Driver
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp b/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp
new file mode 100644
index 000000000..a40199cb2
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp
@@ -0,0 +1,24 @@
+<%@taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Get all drivers
+
+
+List of drivers:
+
+
+ | ID |
+ NAME |
+ LICENSE NUM |
+
+
+
+ |
+ |
+ |
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturers/addManufacturer.jsp b/src/main/webapp/WEB-INF/views/manufacturers/addManufacturer.jsp
new file mode 100644
index 000000000..4ae6a5c04
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturers/addManufacturer.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add manufacturer
+
+
+Add new manufacturer
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturers/getAllManufacturers.jsp b/src/main/webapp/WEB-INF/views/manufacturers/getAllManufacturers.jsp
new file mode 100644
index 000000000..b9dbc8c3d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturers/getAllManufacturers.jsp
@@ -0,0 +1,24 @@
+<%@taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Get all manufacturers
+
+
+List of manufacturers:
+
+
+ | ID |
+ NAME |
+ COUNTRY |
+
+
+
+ |
+ |
+ |
+
+
+
+
+
diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml
index 00afaeb93..afdbaedbd 100644
--- a/src/main/webapp/web.xml
+++ b/src/main/webapp/web.xml
@@ -3,12 +3,4 @@
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
-