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/car/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java new file mode 100644 index 000000000..4fe8f6785 --- /dev/null +++ b/src/main/java/mate/controller/car/AddDriverToCarController.java @@ -0,0 +1,36 @@ +package mate.controller.car; + +import java.io.IOException; +import javax.servlet.ServletException; +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; + +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/cars/driverToCar.jsp"); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Long driverId = Long.valueOf(req.getParameter("driver_id")); + Long carId = Long.valueOf(req.getParameter("car_id")); + Car car = carService.get(carId); + Driver driver = driverService.get(driverId); + carService.addDriverToCar(driver, car); + resp.sendRedirect(req.getContextPath() + "/cars/drivers/add"); + } +} 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..1499807d9 --- /dev/null +++ b/src/main/java/mate/controller/car/CreateCarController.java @@ -0,0 +1,37 @@ +package mate.controller.car; + +import java.io.IOException; +import java.util.ArrayList; +import javax.servlet.ServletException; +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; + +public class CreateCarController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private final CarService carService = (CarService) injector.getInstance(CarService.class); + private final ManufacturerService manufacturerService = (ManufacturerService) injector + .getInstance(ManufacturerService.class); + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/WEB-INF/views/cars/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Long manufacturerId = Long.valueOf(req.getParameter("manufacturer_id")); + Car car = new Car(); + car.setModel(req.getParameter("model")); + car.setManufacturer(manufacturerService.get(manufacturerId)); + car.setDrivers(new ArrayList<>()); + carService.create(car); + resp.sendRedirect(req.getContextPath() + "/cars/drivers/add"); + } +} diff --git a/src/main/java/mate/controller/car/DeleteCarController.java b/src/main/java/mate/controller/car/DeleteCarController.java new file mode 100644 index 000000000..00d4c553e --- /dev/null +++ b/src/main/java/mate/controller/car/DeleteCarController.java @@ -0,0 +1,22 @@ +package mate.controller.car; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import mate.lib.Injector; +import mate.service.CarService; + +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 { + Long id = Long.valueOf(req.getParameter("id")); + carService.delete(id); + resp.sendRedirect(req.getContextPath() + "/cars"); + } +} diff --git a/src/main/java/mate/controller/car/GetAllCarController.java b/src/main/java/mate/controller/car/GetAllCarController.java new file mode 100644 index 000000000..c5543c777 --- /dev/null +++ b/src/main/java/mate/controller/car/GetAllCarController.java @@ -0,0 +1,24 @@ +package mate.controller.car; + +import java.io.IOException; +import java.util.List; +import javax.servlet.ServletException; +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; + +public class GetAllCarController 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 { + List allCar = carService.getAll(); + req.setAttribute("cars", allCar); + req.getRequestDispatcher("/WEB-INF/views/cars/cars.jsp").forward(req, resp); + } +} 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..e82e7faea --- /dev/null +++ b/src/main/java/mate/controller/driver/CreateDriverController.java @@ -0,0 +1,33 @@ +package mate.controller.driver; + +import java.io.IOException; +import javax.servlet.ServletException; +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; + +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/drivers/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Driver driver = new Driver(); + driver.setName(req.getParameter("name")); + driver.setLicenseNumber(req.getParameter("licenseNumber")); + driverService.create(driver); + resp.sendRedirect(req.getContextPath() + "/drivers/add"); + } +} diff --git a/src/main/java/mate/controller/driver/DeleteDriverController.java b/src/main/java/mate/controller/driver/DeleteDriverController.java new file mode 100644 index 000000000..588985162 --- /dev/null +++ b/src/main/java/mate/controller/driver/DeleteDriverController.java @@ -0,0 +1,23 @@ +package mate.controller.driver; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import mate.lib.Injector; +import mate.service.DriverService; + +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 { + Long id = Long.valueOf(req.getParameter("id")); + driverService.delete(id); + resp.sendRedirect(req.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..157b46e45 --- /dev/null +++ b/src/main/java/mate/controller/driver/GetAllDriversController.java @@ -0,0 +1,25 @@ +package mate.controller.driver; + +import java.io.IOException; +import java.util.List; +import javax.servlet.ServletException; +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; + +public class GetAllDriversController 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 { + List allDrivers = driverService.getAll(); + req.setAttribute("drivers", allDrivers); + req.getRequestDispatcher("/WEB-INF/views/drivers/drivers.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..97ec5c052 --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java @@ -0,0 +1,32 @@ +package mate.controller.manufacturer; + +import java.io.IOException; +import javax.servlet.ServletException; +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; + +public class CreateManufacturerController 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 { + req.getRequestDispatcher("/WEB-INF/views/manufacturer/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Manufacturer manufacturer = new Manufacturer(); + manufacturer.setName(req.getParameter("name")); + manufacturer.setCountry(req.getParameter("country")); + manufacturerService.create(manufacturer); + resp.sendRedirect(req.getContextPath() + "/manufacturers/add"); + } +} diff --git a/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java new file mode 100644 index 000000000..d6979ef0c --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java @@ -0,0 +1,23 @@ +package mate.controller.manufacturer; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import mate.lib.Injector; +import mate.service.ManufacturerService; + +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 { + Long id = Long.valueOf(req.getParameter("id")); + manufacturerService.delete(id); + resp.sendRedirect(req.getContextPath() + "/manufacturers"); + } +} diff --git a/src/main/java/mate/controller/manufacturer/GetAllManufacturerController.java b/src/main/java/mate/controller/manufacturer/GetAllManufacturerController.java new file mode 100644 index 000000000..413195daa --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturerController.java @@ -0,0 +1,26 @@ +package mate.controller.manufacturer; + +import java.io.IOException; +import java.util.List; +import javax.servlet.ServletException; +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; + +public class GetAllManufacturerController 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 { + List allManufacturer = manufacturerService.getAll(); + req.setAttribute("manufacturer", allManufacturer); + req.getRequestDispatcher("/WEB-INF/views/manufacturer/manufacturers.jsp") + .forward(req, resp); + } +} diff --git a/src/main/java/mate/model/Car.java b/src/main/java/mate/model/Car.java index 5cabe9ca6..c00ee6aa3 100644 --- a/src/main/java/mate/model/Car.java +++ b/src/main/java/mate/model/Car.java @@ -1,5 +1,6 @@ package mate.model; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -9,6 +10,16 @@ public class Car { private Manufacturer manufacturer; private List drivers; + public Car() { + + } + + public Car(String model, Manufacturer manufacturer) { + this.model = model; + this.manufacturer = manufacturer; + drivers = new ArrayList<>(); + } + public Long getId() { return id; } diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java index a9249b004..c30b7db30 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://localhost:3306/taxi"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "A251745A"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { diff --git a/src/main/webapp/WEB-INF/views/cars/add.jsp b/src/main/webapp/WEB-INF/views/cars/add.jsp new file mode 100644 index 000000000..3829f336b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/add.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + New car + + +

Creat new car

+
+ Model
+ Manufacturer Id
+ + +
+ + diff --git a/src/main/webapp/WEB-INF/views/cars/cars.jsp b/src/main/webapp/WEB-INF/views/cars/cars.jsp new file mode 100644 index 000000000..c2436faf1 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/cars.jsp @@ -0,0 +1,36 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Cars + + +

List of cars:

+ + + + + + + + + + + + + + + + + +
IDMODELMANUFACTURERDRIVERSDELETE
+ +
    +
  • + +
  • +
+
+
delete
+ + diff --git a/src/main/webapp/WEB-INF/views/cars/driverToCar.jsp b/src/main/webapp/WEB-INF/views/cars/driverToCar.jsp new file mode 100644 index 000000000..bbd917b72 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/driverToCar.jsp @@ -0,0 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Driver to car + + +

Add driver to car

+
+ Driver
+ Car
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/drivers/add.jsp b/src/main/webapp/WEB-INF/views/drivers/add.jsp new file mode 100644 index 000000000..e9fb38ada --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/add.jsp @@ -0,0 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + New driver + + +

Creat new driver

+
+ Name
+ License number
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/drivers/drivers.jsp b/src/main/webapp/WEB-INF/views/drivers/drivers.jsp new file mode 100644 index 000000000..79acbdb18 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/drivers.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" %> + + + Drivers + + +

List of drivers:

+ + + + + + + + + + + + + + + +
IDNAMELICENSE NUMBERDELETE
delete
+ + diff --git a/src/main/webapp/WEB-INF/views/manufacturer/add.jsp b/src/main/webapp/WEB-INF/views/manufacturer/add.jsp new file mode 100644 index 000000000..6d52e93cd --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturer/add.jsp @@ -0,0 +1,14 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + New manufacturer + + +

Creat new manufacturer

+
+ Name
+ Country
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/manufacturer/manufacturers.jsp b/src/main/webapp/WEB-INF/views/manufacturer/manufacturers.jsp new file mode 100644 index 000000000..17f94b804 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturer/manufacturers.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" %> + + + Manufacturers + + +

List of manufacturers:

+ + + + + + + + + + + + + + + +
IDNAMECOUNTRYDELETE
delete
+ + diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml index 00afaeb93..bf8e5cacc 100644 --- a/src/main/webapp/web.xml +++ b/src/main/webapp/web.xml @@ -11,4 +11,93 @@ index /index + + drivers + mate.controller.driver.GetAllDriversController + + + drivers + /drivers + + + + deleteDriver + mate.controller.driver.DeleteDriverController + + + deleteDriver + /drivers/delete + + + + addDriver + mate.controller.driver.CreateDriverController + + + addDriver + /drivers/add + + + + allCars + mate.controller.car.GetAllCarController + + + allCars + /cars/cars + + + + addCar + mate.controller.car.CreateCarController + + + addCar + /cars/add + + + + /cars/drivers/add + mate.controller.car.AddDriverToCarController + + + /cars/drivers/add + /cars/drivers/add + + + + deleteCar + mate.controller.car.DeleteCarController + + + deleteCar + /cars/delete + + + + allManufacturers + mate.controller.manufacturer.GetAllManufacturerController + + + allManufacturers + /manufacturer + + + + addManufacturer + mate.controller.manufacturer.CreateManufacturerController + + + addManufacturer + /manufacturer/add + + + + deleteManufacturer + mate.controller.manufacturer.DeleteManufacturerController + + + deleteManufacturer + /manufacturer/delete +