diff --git a/pom.xml b/pom.xml index 8f7cf6b7d..e51d7f0f2 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,11 @@ 4.0.1 provided + + jstl + jstl + 1.2 + @@ -40,7 +45,7 @@ maven-war-plugin 3.3.2 - src/main/webapp/web.xml + src/main/webapp/WEB-INF/web.xml diff --git a/src/main/java/mate/controller/AddCarController.java b/src/main/java/mate/controller/AddCarController.java new file mode 100644 index 000000000..d0b27e1f5 --- /dev/null +++ b/src/main/java/mate/controller/AddCarController.java @@ -0,0 +1,43 @@ +package mate.controller; + +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 AddCarController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private CarService carService; + private ManufacturerService manufacturerService; + + public AddCarController() { + carService = (CarService) injector.getInstance(CarService.class); + manufacturerService = (ManufacturerService) injector + .getInstance(ManufacturerService.class); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/car/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + String model = req.getParameter("model"); + Long manufacturerId = Long.valueOf(req.getParameter("manufacturer_id")); + Car car = new Car(); + car.setModel(model); + car.setManufacturer(manufacturerService.get(manufacturerId)); + car.setDrivers(new ArrayList<>()); + carService.create(car); + resp.sendRedirect(req.getContextPath() + "/index"); + } +} diff --git a/src/main/java/mate/controller/AddDriverController.java b/src/main/java/mate/controller/AddDriverController.java new file mode 100644 index 000000000..5dea2cc7c --- /dev/null +++ b/src/main/java/mate/controller/AddDriverController.java @@ -0,0 +1,37 @@ +package mate.controller; + +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 AddDriverController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private DriverService driverService; + + public AddDriverController() { + driverService = (DriverService) injector.getInstance(DriverService.class); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/driver/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + String name = req.getParameter("name"); + String licenseNumber = req.getParameter("license_number"); + Driver driver = new Driver(); + driver.setName(name); + driver.setLicenseNumber(licenseNumber); + driverService.create(driver); + resp.sendRedirect(req.getContextPath() + "/index"); + } +} diff --git a/src/main/java/mate/controller/AddDriverToCarController.java b/src/main/java/mate/controller/AddDriverToCarController.java new file mode 100644 index 000000000..aa8d5aa9f --- /dev/null +++ b/src/main/java/mate/controller/AddDriverToCarController.java @@ -0,0 +1,40 @@ +package mate.controller; + +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 CarService carService; + private DriverService driverService; + + public AddDriverToCarController() { + carService = (CarService) injector.getInstance(CarService.class); + driverService = (DriverService) injector.getInstance(DriverService.class); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/car.driver/addDriverToCar.jsp").forward(req, resp); + } + + @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() + "/index"); + } +} diff --git a/src/main/java/mate/controller/AddManufacturerController.java b/src/main/java/mate/controller/AddManufacturerController.java new file mode 100644 index 000000000..4fb6fa3fe --- /dev/null +++ b/src/main/java/mate/controller/AddManufacturerController.java @@ -0,0 +1,38 @@ +package mate.controller; + +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 AddManufacturerController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private ManufacturerService manufacturerService; + + public AddManufacturerController() { + manufacturerService = (ManufacturerService) injector + .getInstance(ManufacturerService.class); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/manufacturer/add.jsp").forward(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + String name = req.getParameter("name"); + String country = req.getParameter("country"); + Manufacturer manufacturer = new Manufacturer(); + manufacturer.setName(name); + manufacturer.setCountry(country); + manufacturerService.create(manufacturer); + resp.sendRedirect(req.getContextPath() + "/index"); + } +} diff --git a/src/main/java/mate/controller/DeleteDriverController.java b/src/main/java/mate/controller/DeleteDriverController.java new file mode 100644 index 000000000..7f9083c7a --- /dev/null +++ b/src/main/java/mate/controller/DeleteDriverController.java @@ -0,0 +1,25 @@ +package mate.controller; + +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 DriverService driverService; + + public DeleteDriverController() { + 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); + } +} diff --git a/src/main/java/mate/controller/DeleteManufacturerController.java b/src/main/java/mate/controller/DeleteManufacturerController.java new file mode 100644 index 000000000..cc5b9dfeb --- /dev/null +++ b/src/main/java/mate/controller/DeleteManufacturerController.java @@ -0,0 +1,26 @@ +package mate.controller; + +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 ManufacturerService manufacturerService; + + public DeleteManufacturerController() { + 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); + } +} diff --git a/src/main/java/mate/controller/GetAllDriversController.java b/src/main/java/mate/controller/GetAllDriversController.java new file mode 100644 index 000000000..482912661 --- /dev/null +++ b/src/main/java/mate/controller/GetAllDriversController.java @@ -0,0 +1,28 @@ +package mate.controller; + +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 DriverService driverService; + + public GetAllDriversController() { + 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("/driver/all.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..bba779426 --- /dev/null +++ b/src/main/java/mate/controller/GetAllManufacturersController.java @@ -0,0 +1,29 @@ +package mate.controller; + +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 ManufacturerService manufacturerService; + + public GetAllManufacturersController() { + 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("/manufacturer/all.jsp").forward(req, resp); + } +} diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java index 27bcd4faa..c05a9b4cc 100644 --- a/src/main/java/mate/controller/IndexController.java +++ b/src/main/java/mate/controller/IndexController.java @@ -10,6 +10,6 @@ public class IndexController extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - req.getRequestDispatcher("/WEB-INF/views/index.jsp").forward(req, resp); + req.getRequestDispatcher("/index.jsp").forward(req, resp); } } diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java index a9249b004..44c209d5f 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 = "240653"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000..f854846fb --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,88 @@ + + + + index + mate.controller.IndexController + + + index + /index + + + + getAllDriversController + mate.controller.GetAllDriversController + + + getAllDriversController + /drivers + + + + getAllManufacturersController + mate.controller.GetAllManufacturersController + + + getAllManufacturersController + /manufacturers + + + + deleteDriverController + mate.controller.DeleteDriverController + + + deleteDriverController + /drivers/delete + + + + deleteManufacturerController + mate.controller.DeleteManufacturerController + + + deleteManufacturerController + /manufacturers/delete + + + + addDriverController + mate.controller.AddDriverController + + + addDriverController + /drivers/add + + + + addManufacturerController + mate.controller.AddManufacturerController + + + addManufacturerController + /manufacturers/add + + + + addCarController + mate.controller.AddCarController + + + addCarController + /cars/add + + + + addDriverToCarController + mate.controller.AddDriverToCarController + + + addDriverToCarController + /cars/drivers/add + + + diff --git a/src/main/webapp/car.driver/addDriverToCar.jsp b/src/main/webapp/car.driver/addDriverToCar.jsp new file mode 100644 index 000000000..c1465a2f6 --- /dev/null +++ b/src/main/webapp/car.driver/addDriverToCar.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Add driver to car + + +

Please the form below

+ +
+ Driver id
+ Car id
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/car/add.jsp b/src/main/webapp/car/add.jsp new file mode 100644 index 000000000..af58bebc9 --- /dev/null +++ b/src/main/webapp/car/add.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Add car + + +

Please the form below

+ +
+ Model
+ Manufacturer id
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/driver/add.jsp b/src/main/webapp/driver/add.jsp new file mode 100644 index 000000000..6471ea22a --- /dev/null +++ b/src/main/webapp/driver/add.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Add driver + + +

Please the form below

+ +
+ Name
+ License number
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/driver/all.jsp b/src/main/webapp/driver/all.jsp new file mode 100644 index 000000000..49ced2433 --- /dev/null +++ b/src/main/webapp/driver/all.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" %> + + + Get all drivers + + +

List of drivers:

+ + + + + + + + + + + + + + + +
IdNameLicense NumberDelete
delete this driver
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/index.jsp similarity index 100% rename from src/main/webapp/WEB-INF/views/index.jsp rename to src/main/webapp/index.jsp diff --git a/src/main/webapp/manufacturer/add.jsp b/src/main/webapp/manufacturer/add.jsp new file mode 100644 index 000000000..88fd35cdf --- /dev/null +++ b/src/main/webapp/manufacturer/add.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Add manufacturer + + +

Please the form below

+ +
+ Name
+ Country
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/manufacturer/all.jsp b/src/main/webapp/manufacturer/all.jsp new file mode 100644 index 000000000..fffe0f0e3 --- /dev/null +++ b/src/main/webapp/manufacturer/all.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" %> + + + Get all manufacturers + + +

List of manufacturers:

+ + + + + + + + + + + + + + + +
IdNameCountryDelete
delete this manufacturer
+ + \ No newline at end of file diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml deleted file mode 100644 index 00afaeb93..000000000 --- a/src/main/webapp/web.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - index - mate.controller.IndexController - - - index - /index - -