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..14d808cf9 --- /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 ServletException, IOException { + Car car = carService.get(Long.valueOf(req.getParameter("car"))); + Driver driver = driverService.get(Long.valueOf(req.getParameter("driver"))); + car.getDrivers().add(driver); + carService.update(car); + resp.sendRedirect(req.getContextPath() + "/cars/all"); + } +} 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..7faa731ea --- /dev/null +++ b/src/main/java/mate/controller/car/CreateCarController.java @@ -0,0 +1,42 @@ +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 ServletException, 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(req.getContextPath() + "/cars/all"); + } +} 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..f86060146 --- /dev/null +++ b/src/main/java/mate/controller/car/DeleteCarController.java @@ -0,0 +1,26 @@ +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 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); + List allCars = carService.getAll(); + req.setAttribute("cars", allCars); + req.getRequestDispatcher("/WEB-INF/views/cars/getAll.jsp").forward(req, resp); + } +} 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..a3267b99f --- /dev/null +++ b/src/main/java/mate/controller/driver/CreateDriverController.java @@ -0,0 +1,32 @@ +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 ServletException, IOException { + Driver driver = new Driver(); + driver.setName(req.getParameter("name")); + driver.setLicenseNumber(req.getParameter("licenseNumber")); + driverService.create(driver); + resp.sendRedirect(req.getContextPath() + "/drivers/all"); + } +} 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..c91fcb096 --- /dev/null +++ b/src/main/java/mate/controller/driver/DeleteDriverController.java @@ -0,0 +1,27 @@ +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 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); + List allDrivers = driverService.getAll(); + req.setAttribute("drivers", allDrivers); + req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.jsp").forward(req, resp); + } +} 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..38001bad2 --- /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..a0f0bd313 --- /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 + 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 ServletException, IOException { + Manufacturer manufacturer = new Manufacturer(); + manufacturer.setName(req.getParameter("name")); + manufacturer.setCountry(req.getParameter("country")); + manufacturerService.create(manufacturer); + resp.sendRedirect(req.getContextPath() + "/manufacturers/all"); + } +} 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..17459049e --- /dev/null +++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java @@ -0,0 +1,27 @@ +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 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); + List allManufacturers = manufacturerService.getAll(); + req.setAttribute("manufacturers", allManufacturers); + req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAll.jsp").forward(req, resp); + } +} 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..385e9d42b --- /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..f6695f883 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_service"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "26082014"; + 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..d19fe74e9 --- /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 the Car + + +

Choose a car and a 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..59aa46c88 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/create.jsp @@ -0,0 +1,28 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%-- + Created by IntelliJ IDEA. + User: marinakusniruk + Date: 03.08.2023 + Time: 11:02 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Create Car + + +

Choose parameters of a 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..b76f87985 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cars/getAll.jsp @@ -0,0 +1,42 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%-- + Created by IntelliJ IDEA. + User: marinakusniruk + Date: 02.08.2023 + Time: 23:43 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + 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..b2314ae9a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/drivers/create.jsp @@ -0,0 +1,19 @@ + +<%@ page contentType="text/html;charset=UTF-8" %> + + + Create Driver + + +

Enter data of a 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..deced6c86 --- /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" language="java" %> + + + 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..57f2c53ee 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -5,5 +5,12 @@

Hello, mates!

+

Testing time

+Create Car
+Show all cars
+Add driver to the car
+Show all drivers
+Create Driver
+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..37b3172c1 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/create.jsp @@ -0,0 +1,18 @@ +<%@ page contentType="text/html;charset=UTF-8" %> + + + Create Manufacturer + + +

Enter data of a 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..62b527be2 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturers/getAll.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 + + + + + + + + + + + + + + + + + +
IdNameCountryDelete
Delete this manufacturer
+ + + diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml index 00afaeb93..059bb5d33 100644 --- a/src/main/webapp/web.xml +++ b/src/main/webapp/web.xml @@ -7,8 +7,88 @@ index mate.controller.IndexController + + createCar + mate.controller.car.CreateCarController + + + getAllCars + mate.controller.car.GetAllCarsController + + + addDriverToCat + mate.controller.car.AddDriverToCarController + + + deleteCar + mate.controller.car.DeleteCarController + + + createDriver + mate.controller.driver.CreateDriverController + + + deleteDriver + mate.controller.driver.DeleteDriverController + + + getAllDrivers + mate.controller.driver.GetAllDriversController + + + createManufacturer + mate.controller.manufacturer.CreateManufacturerController + + + deteleManufacturer + mate.controller.manufacturer.DeleteManufacturerController + + + getAllManufacturers + mate.controller.manufacturer.GetAllManufacturersController + index /index + + createCar + /cars/create + + + deleteCar + /cars/delete + + + addDriverToCat + /cars/add/driver + + + getAllCars + /cars/all + + + createDriver + /drivers/create + + + deleteDriver + /drivers/delete + + + getAllDrivers + /drivers/all + + + createManufacturer + /manufacturers/create + + + deteleManufacturer + /manufacturers/delete + + + getAllManufacturers + /manufacturers/all +