From 25f3362e912d860bfa17a4f9b64ce81cbb985294 Mon Sep 17 00:00:00 2001 From: Kristina Shpilchyna Date: Mon, 3 Jul 2023 17:46:42 +0200 Subject: [PATCH 1/2] home work solution --- pom.xml | 5 +++ .../java/mate/controller/IndexController.java | 2 + .../car/AddDriverToCarController.java | 31 +++++++++++++ .../controller/car/CreateCarController.java | 44 +++++++++++++++++++ .../driver/CreateDriverController.java | 35 +++++++++++++++ .../driver/GetAllDriversController.java | 28 ++++++++++++ .../CreateManufacturerController.java | 38 ++++++++++++++++ .../GetAllManufacturersController.java | 29 ++++++++++++ src/main/webapp/WEB-INF/views/cars/addCar.jsp | 15 +++++++ .../WEB-INF/views/cars/addDriverToCar.jsp | 14 ++++++ .../WEB-INF/views/drivers/addDriver.jsp | 15 +++++++ .../WEB-INF/views/drivers/getAllDrivers.jsp | 24 ++++++++++ .../views/manufacturers/addManufacturer.jsp | 15 +++++++ .../manufacturers/getAllManufacturers.jsp | 24 ++++++++++ src/main/webapp/web.xml | 8 ---- 15 files changed, 319 insertions(+), 8 deletions(-) create mode 100644 src/main/java/mate/controller/car/AddDriverToCarController.java create mode 100644 src/main/java/mate/controller/car/CreateCarController.java create mode 100644 src/main/java/mate/controller/driver/CreateDriverController.java create mode 100644 src/main/java/mate/controller/driver/GetAllDriversController.java create mode 100644 src/main/java/mate/controller/manufacturer/CreateManufacturerController.java create mode 100644 src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java create mode 100644 src/main/webapp/WEB-INF/views/cars/addCar.jsp create mode 100644 src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp create mode 100644 src/main/webapp/WEB-INF/views/drivers/addDriver.jsp create mode 100644 src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp create mode 100644 src/main/webapp/WEB-INF/views/manufacturers/addManufacturer.jsp create mode 100644 src/main/webapp/WEB-INF/views/manufacturers/getAllManufacturers.jsp 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..803a13de4 --- /dev/null +++ b/src/main/java/mate/controller/car/AddDriverToCarController.java @@ -0,0 +1,31 @@ +package mate.controller.car; + +import mate.lib.Injector; +import mate.model.Car; +import mate.model.Driver; +import mate.service.CarService; +import mate.service.DriverService; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +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() + "/"); + } +} \ No newline at end of file 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..0a1b22452 --- /dev/null +++ b/src/main/java/mate/controller/car/CreateCarController.java @@ -0,0 +1,44 @@ +package mate.controller.car; + +import mate.lib.Injector; +import mate.model.Car; +import mate.model.Driver; +import mate.model.Manufacturer; +import mate.service.CarService; +import mate.service.DriverService; +import mate.service.ManufacturerService; + +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 java.io.IOException; + +@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..b3cd113c6 --- /dev/null +++ b/src/main/java/mate/controller/driver/CreateDriverController.java @@ -0,0 +1,35 @@ +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..77cb3b98d --- /dev/null +++ b/src/main/java/mate/controller/driver/GetAllDriversController.java @@ -0,0 +1,28 @@ +package mate.controller.driver; + +import mate.lib.Injector; +import mate.model.Driver; +import mate.service.DriverService; + +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 java.io.IOException; +import java.util.List; + +@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..2b8d6441d --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java @@ -0,0 +1,38 @@ +package mate.controller.manufacturer; + +import mate.lib.Injector; +import mate.model.Driver; +import mate.model.Manufacturer; +import mate.service.DriverService; +import mate.service.ManufacturerService; + +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 java.io.IOException; + +@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..a1fb3eb02 --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java @@ -0,0 +1,29 @@ +package mate.controller.manufacturer; + +import mate.lib.Injector; +import mate.model.Driver; +import mate.model.Manufacturer; +import mate.service.ManufacturerService; + +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 java.io.IOException; +import java.util.List; + +@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

+ +
+ Car model
+ Manufacturer Id
+ +
+ + 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:

+
+ Driver id
+ Car id
+ +
+ + 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

+ +
+ Driver name
+ Driver license
+ +
+ + 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:

+ + + + + + + + + + + + + +
IDNAMELICENSE 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

+ +
+ 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..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:

+ + + + + + + + + + + + + +
IDNAMECOUNTRY
+ + 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 - From 7474605393039428605b1d664ab8baa4caaf38b6 Mon Sep 17 00:00:00 2001 From: Kristina Shpilchyna Date: Mon, 3 Jul 2023 17:53:08 +0200 Subject: [PATCH 2/2] fixed imports --- .../car/AddDriverToCarController.java | 18 ++++++++++-------- .../controller/car/CreateCarController.java | 15 ++++++--------- .../driver/CreateDriverController.java | 3 ++- .../driver/GetAllDriversController.java | 11 +++++------ .../CreateManufacturerController.java | 14 ++++++-------- .../GetAllManufacturersController.java | 15 +++++++-------- 6 files changed, 36 insertions(+), 40 deletions(-) diff --git a/src/main/java/mate/controller/car/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java index 803a13de4..b53ac56bc 100644 --- a/src/main/java/mate/controller/car/AddDriverToCarController.java +++ b/src/main/java/mate/controller/car/AddDriverToCarController.java @@ -1,21 +1,23 @@ 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; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - +@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); + private final DriverService driverService = (DriverService) + injector.getInstance(DriverService.class); @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) @@ -28,4 +30,4 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) response.sendRedirect(request.getContextPath() + "/"); } -} \ No newline at end of file +} diff --git a/src/main/java/mate/controller/car/CreateCarController.java b/src/main/java/mate/controller/car/CreateCarController.java index 0a1b22452..a3506a618 100644 --- a/src/main/java/mate/controller/car/CreateCarController.java +++ b/src/main/java/mate/controller/car/CreateCarController.java @@ -1,19 +1,16 @@ package mate.controller.car; -import mate.lib.Injector; -import mate.model.Car; -import mate.model.Driver; -import mate.model.Manufacturer; -import mate.service.CarService; -import mate.service.DriverService; -import mate.service.ManufacturerService; - +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 java.io.IOException; +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 { diff --git a/src/main/java/mate/controller/driver/CreateDriverController.java b/src/main/java/mate/controller/driver/CreateDriverController.java index b3cd113c6..f08365122 100644 --- a/src/main/java/mate/controller/driver/CreateDriverController.java +++ b/src/main/java/mate/controller/driver/CreateDriverController.java @@ -19,7 +19,8 @@ public class CreateDriverController extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - request.getRequestDispatcher("/WEB-INF/views/drivers/addDriver.jsp").forward(request, response); + request.getRequestDispatcher("/WEB-INF/views/drivers/addDriver.jsp") + .forward(request, response); } @Override diff --git a/src/main/java/mate/controller/driver/GetAllDriversController.java b/src/main/java/mate/controller/driver/GetAllDriversController.java index 77cb3b98d..3b72f3adc 100644 --- a/src/main/java/mate/controller/driver/GetAllDriversController.java +++ b/src/main/java/mate/controller/driver/GetAllDriversController.java @@ -1,16 +1,15 @@ package mate.controller.driver; -import mate.lib.Injector; -import mate.model.Driver; -import mate.service.DriverService; - +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 java.io.IOException; -import java.util.List; +import mate.lib.Injector; +import mate.model.Driver; +import mate.service.DriverService; @WebServlet(urlPatterns = "/drivers") public class GetAllDriversController extends HttpServlet { diff --git a/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java index 2b8d6441d..602100e35 100644 --- a/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java +++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java @@ -1,17 +1,14 @@ package mate.controller.manufacturer; -import mate.lib.Injector; -import mate.model.Driver; -import mate.model.Manufacturer; -import mate.service.DriverService; -import mate.service.ManufacturerService; - +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 java.io.IOException; +import mate.lib.Injector; +import mate.model.Manufacturer; +import mate.service.ManufacturerService; @WebServlet(urlPatterns = "/manufacturers/add") public class CreateManufacturerController extends HttpServlet { @@ -22,7 +19,8 @@ public class CreateManufacturerController extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - request.getRequestDispatcher("/WEB-INF/views/manufacturers/addManufacturer.jsp").forward(request, response); + request.getRequestDispatcher("/WEB-INF/views/manufacturers/addManufacturer.jsp") + .forward(request, response); } @Override diff --git a/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java index a1fb3eb02..0ec905c42 100644 --- a/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java +++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java @@ -1,17 +1,15 @@ package mate.controller.manufacturer; -import mate.lib.Injector; -import mate.model.Driver; -import mate.model.Manufacturer; -import mate.service.ManufacturerService; - +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 java.io.IOException; -import java.util.List; +import mate.lib.Injector; +import mate.model.Manufacturer; +import mate.service.ManufacturerService; @WebServlet(urlPatterns = "/manufacturers") public class GetAllManufacturersController extends HttpServlet { @@ -24,6 +22,7 @@ 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); + request.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp") + .forward(request, response); } }