diff --git a/pom.xml b/pom.xml index 8f7cf6b7d..382fc8f7e 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ mysql mysql-connector-java - 8.0.22 + 8.0.33 javax.servlet @@ -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/cars/AddDriverController.java b/src/main/java/mate/controller/cars/AddDriverController.java new file mode 100644 index 000000000..3f59382ae --- /dev/null +++ b/src/main/java/mate/controller/cars/AddDriverController.java @@ -0,0 +1,40 @@ +package mate.controller.cars; + +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/add") +public class AddDriverController extends HttpServlet { + private static final Injector INJECTOR = + Injector.getInstance("mate"); + private final DriverService driverService = + (DriverService) INJECTOR.getInstance(DriverService.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/cars/addDriverToCar.jsp") + .forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Driver driver = driverService.get(Long.valueOf(req.getParameter("driver_id"))); + Car car = carService.get(Long.valueOf(req.getParameter("car_id"))); + carService.addDriverToCar(driver, car); + resp.sendRedirect(req.getContextPath() + "/cars/get"); + } +} diff --git a/src/main/java/mate/controller/cars/CreateCarController.java b/src/main/java/mate/controller/cars/CreateCarController.java new file mode 100644 index 000000000..23b6a20da --- /dev/null +++ b/src/main/java/mate/controller/cars/CreateCarController.java @@ -0,0 +1,42 @@ +package mate.controller.cars; + +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(urlPatterns = "/cars/create") +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/cars/createCar.jsp") + .forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + Car car = new Car(); + car.setModel(req.getParameter("model")); + car.setManufacturer(manufacturerService + .get(Long.valueOf(req.getParameter("id")))); + car.setDrivers(new ArrayList<>()); + carService.create(car); + resp.sendRedirect(req.getContextPath() + "/cars/get"); + } +} diff --git a/src/main/java/mate/controller/cars/DeleteCarController.java b/src/main/java/mate/controller/cars/DeleteCarController.java new file mode 100644 index 000000000..627819d43 --- /dev/null +++ b/src/main/java/mate/controller/cars/DeleteCarController.java @@ -0,0 +1,25 @@ +package mate.controller.cars; + +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(urlPatterns = "/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/get"); + } +} diff --git a/src/main/java/mate/controller/cars/GetAllCarsController.java b/src/main/java/mate/controller/cars/GetAllCarsController.java new file mode 100644 index 000000000..2ca5fc88a --- /dev/null +++ b/src/main/java/mate/controller/cars/GetAllCarsController.java @@ -0,0 +1,26 @@ +package mate.controller.cars; + +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/get") +public class GetAllCarsController extends HttpServlet { + private static final Injector INJECTOR = + Injector.getInstance("mate"); + private final CarService carService = + (CarService) INJECTOR.getInstance(CarService.class); + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.setAttribute("cars", carService.getAll()); + req.getRequestDispatcher("/WEB-INF/views/cars/getAllCars.jsp") + .forward(req, resp); + } +} diff --git a/src/main/java/mate/controller/drivers/CreateDriverController.java b/src/main/java/mate/controller/drivers/CreateDriverController.java new file mode 100644 index 000000000..09c18b455 --- /dev/null +++ b/src/main/java/mate/controller/drivers/CreateDriverController.java @@ -0,0 +1,36 @@ +package mate.controller.drivers; + +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/create") +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/createDriver.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/get"); + } +} diff --git a/src/main/java/mate/controller/drivers/DeleteDriverController.java b/src/main/java/mate/controller/drivers/DeleteDriverController.java new file mode 100644 index 000000000..1c18705d4 --- /dev/null +++ b/src/main/java/mate/controller/drivers/DeleteDriverController.java @@ -0,0 +1,24 @@ +package mate.controller.drivers; + +import java.io.IOException; +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(urlPatterns = "/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 IOException { + driverService.delete(Long.valueOf(req.getParameter("id"))); + resp.sendRedirect(req.getContextPath() + "/drivers/get"); + } +} diff --git a/src/main/java/mate/controller/drivers/GetAllDriversController.java b/src/main/java/mate/controller/drivers/GetAllDriversController.java new file mode 100644 index 000000000..c6aa03197 --- /dev/null +++ b/src/main/java/mate/controller/drivers/GetAllDriversController.java @@ -0,0 +1,26 @@ +package mate.controller.drivers; + +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(urlPatterns = "/drivers/get") +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 { + req.setAttribute("drivers", driverService.getAll()); + req.getRequestDispatcher("/WEB-INF/views/drivers/getAllDrivers.jsp") + .forward(req, resp); + } +} diff --git a/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java b/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java new file mode 100644 index 000000000..1ccf9c5dd --- /dev/null +++ b/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java @@ -0,0 +1,36 @@ +package mate.controller.manufacturers; + +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/create") +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/createManufacturer.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/get"); + } +} diff --git a/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java b/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java new file mode 100644 index 000000000..a99418451 --- /dev/null +++ b/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java @@ -0,0 +1,24 @@ +package mate.controller.manufacturers; + +import java.io.IOException; +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(urlPatterns = "/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 IOException { + manufacturerService.delete(Long.valueOf(req.getParameter("id"))); + resp.sendRedirect(req.getContextPath() + "/manufacturers/get"); + } +} diff --git a/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java b/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java new file mode 100644 index 000000000..6d9a248ef --- /dev/null +++ b/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java @@ -0,0 +1,26 @@ +package mate.controller.manufacturers; + +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(urlPatterns = "/manufacturers/get") +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 { + req.setAttribute("manufacturers", manufacturerService.getAll()); + req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp") + .forward(req, resp); + } +} diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java index a9249b004..e758b4ba3 100644 --- a/src/main/java/mate/util/ConnectionUtil.java +++ b/src/main/java/mate/util/ConnectionUtil.java @@ -6,10 +6,12 @@ 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" + + "?useUnicode=true&serverTimezone=UTC" + + "&useSSL=true&verifyServerCertificate=false"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "12345678"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { 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..ca41292aa --- /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 Driver + + +

Please fill out the form below

+
+ Driver Id
+ Car Id
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/cars/createCar.jsp b/src/main/webapp/WEB-INF/views/cars/createCar.jsp new file mode 100644 index 000000000..d01bdcbfc --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/createCar.jsp @@ -0,0 +1,16 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Create car + + +

Please fill out the form below

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

List of cars:

+ + + + + + + + + + + + + + + + + +
IDCAR MODELMANUFACTURERLIST_OF_DRIVERSDELETE_CAR
+ + + + Delete car
+ + diff --git a/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp b/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp new file mode 100644 index 000000000..c0f8b705a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Create driver + + +

Please fill out the form below

+ +
+ Driver name
+ License number
+ +
+ + 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..b61571630 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.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 driver
+ + diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index 0fbc5292a..cf96784d5 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -4,6 +4,13 @@ My team -

Hello, mates!

+

Hello, mates! Let`s test.

+

Car create

+

Cars list

+

Add driver

+

Driver create

+

Drivers list

+

Manufacturer create

+

Manufacturers list

diff --git a/src/main/webapp/WEB-INF/views/manufacturers/createManufacturer.jsp b/src/main/webapp/WEB-INF/views/manufacturers/createManufacturer.jsp new file mode 100644 index 000000000..d591baf2b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/createManufacturer.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Create manufacturer + + +

Please fill out the form below

+ +
+ Manufacturer name
+ Manufacturer country
+ +
+ + 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..bab484031 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/getAllManufacturers.jsp @@ -0,0 +1,27 @@ +<%@ 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 manufacturer
+ + 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 -