diff --git a/pom.xml b/pom.xml index 8f7cf6b7d..faa7f7e1d 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,13 @@ 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..119f8ee9a --- /dev/null +++ b/src/main/java/mate/controller/car/AddDriverToCarController.java @@ -0,0 +1,40 @@ +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.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 { + List cars = carService.getAll(); + List drivers = driverService.getAll(); + req.setAttribute("cars", cars); + req.setAttribute("drivers", drivers); + req.getRequestDispatcher("/WEB-INF/views/cars/addDriver.jsp").forward(req, resp); + } + + @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("/index"); + } +} 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..3a31d5084 --- /dev/null +++ b/src/main/java/mate/controller/car/CreateCarController.java @@ -0,0 +1,41 @@ +package mate.controller.car; + +import java.io.IOException; +import java.util.ArrayList; +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.model.Manufacturer; +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 + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + List manufacturers = manufacturerService.getAll(); + req.setAttribute("manufacturers", manufacturers); + req.getRequestDispatcher("/WEB-INF/views/cars/create.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + Car car = new Car(); + car.setModel(req.getParameter("model")); + Manufacturer manufacturer = manufacturerService + .get(Long.valueOf(req.getParameter("Manufacturers"))); + car.setManufacturer(manufacturer); + car.setDrivers(new ArrayList<>()); + carService.create(car); + resp.sendRedirect("/index"); + } +} 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..c624bd193 --- /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("/index"); + } +} diff --git a/src/main/java/mate/controller/car/GetAllCarsController.java b/src/main/java/mate/controller/car/GetAllCarsController.java new file mode 100644 index 000000000..60d382633 --- /dev/null +++ b/src/main/java/mate/controller/car/GetAllCarsController.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 GetAllCarsController 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 cars = carService.getAll(); + req.setAttribute("cars", cars); + req.getRequestDispatcher("/WEB-INF/views/cars/getAll.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..3738a4696 --- /dev/null +++ b/src/main/java/mate/controller/driver/CreateDriverController.java @@ -0,0 +1,31 @@ +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/create.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("/index"); + } +} 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..c07246d86 --- /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("/index"); + } +} 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..e8cdd0f33 --- /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 drivers = driverService.getAll(); + req.setAttribute("drivers", drivers); + req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.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..208f8f49a --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java @@ -0,0 +1,31 @@ +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 + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/WEB-INF/views/manufacturers/create.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("/index"); + } +} 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..e99d91971 --- /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("/index"); + } +} 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..ac3fa0ef1 --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java @@ -0,0 +1,25 @@ +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 GetAllManufacturersController 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 manufacturers = manufacturerService.getAll(); + req.setAttribute("manufacturers", manufacturers); + req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAll.jsp").forward(req, resp); + } +} diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java index a9249b004..1111d1077 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?serverTimezone=UTC"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "as12df34"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { diff --git a/src/main/webapp/WEB-INF/views/cars/addDriver.jsp b/src/main/webapp/WEB-INF/views/cars/addDriver.jsp new file mode 100644 index 000000000..8565a0a79 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/addDriver.jsp @@ -0,0 +1,27 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Add Driver to Car + +<> +

Please choose car and driver

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

Please enter data of new car

+
+ Model
+ Manufacturer + +
+ + diff --git a/src/main/webapp/WEB-INF/views/cars/getAll.jsp b/src/main/webapp/WEB-INF/views/cars/getAll.jsp new file mode 100644 index 000000000..bf552bc48 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/getAll.jsp @@ -0,0 +1,38 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Cars + + + + + + + + + + + + + + + + + + + + + +
IdModelManufacturerCountryDriversDelete
+ + + + + + + +
+
Delete this car
+ + diff --git a/src/main/webapp/WEB-INF/views/drivers/create.jsp b/src/main/webapp/WEB-INF/views/drivers/create.jsp new file mode 100644 index 000000000..1f06e8954 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/create.jsp @@ -0,0 +1,18 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + Creating Driver + + +

Please enter data of new driver

+
+ name
+ licenseNumber
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/drivers/getAll.jsp b/src/main/webapp/WEB-INF/views/drivers/getAll.jsp new file mode 100644 index 000000000..6652da81b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/getAll.jsp @@ -0,0 +1,25 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Drivers + + + + + + + + + + + + + + + + + +
IdNameLicense NumberDelete
Delete this driver
+ + diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index 0fbc5292a..1e7b741fa 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -1,9 +1,17 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" %> My team

Hello, mates!

+

Let`s go testing!

+Show cars
+Create car
+Add driver to car
+Show drivers
+Create driver
+Show manufacturer
+Create manufacturer
diff --git a/src/main/webapp/WEB-INF/views/manufacturers/create.jsp b/src/main/webapp/WEB-INF/views/manufacturers/create.jsp new file mode 100644 index 000000000..00d5da5d7 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/create.jsp @@ -0,0 +1,18 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + Creating Manufacturer + + +

Please enter data of new manufacturer

+
+ name
+ country
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/manufacturers/getAll.jsp b/src/main/webapp/WEB-INF/views/manufacturers/getAll.jsp new file mode 100644 index 000000000..8b1bb0ccb --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/getAll.jsp @@ -0,0 +1,25 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Manufacturers + + + + + + + + + + + + + + + + + +
IdNameCountryDelete
Delete this manufacturer
+ + diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml index 00afaeb93..a86390e22 100644 --- a/src/main/webapp/web.xml +++ b/src/main/webapp/web.xml @@ -11,4 +11,86 @@ index /index + + Creating Driver + mate.controller.driver.CreateDriverController + + + Creating Driver + /drivers/create + + + getDrivers + mate.controller.driver.GetAllDriversController + + + getDrivers + /drivers + + + DeleteDriver + mate.controller.driver.DeleteDriverController + + + DeleteDriver + /drivers/delete + + + + Creating Manufacturer + mate.controller.manufacturer.CreateManufacturerController + + + Creating Manufacturer + /manufacturers/create + + + Get all manufacturers + mate.controller.manufacturer.GetAllManufacturersController + + + Get all manufacturers + /manufacturers + + + Delete Manufacturer + mate.controller.manufacturer.DeleteManufacturerController + + + Delete Manufacturer + /manufacturers/delete + + + + Creating Car + mate.controller.car.CreateCarController + + + Creating Car + /cars/create + + + Add Driver to Car + mate.controller.car.AddDriverToCarController + + + Add Driver to Car + /cars/drivers/add + + + Get all cars + mate.controller.car.GetAllCarsController + + + Get all cars + /cars + + + Delete Car + mate.controller.car.DeleteCarController + + + Delete Car + /cars/delete +