diff --git a/pom.xml b/pom.xml index 8f7cf6b7d..86bb5f262 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,12 @@ 4.0.1 provided + + + jstl + jstl + 1.2 + diff --git a/src/main/java/mate/controller/AddDriverToCarController.java b/src/main/java/mate/controller/AddDriverToCarController.java new file mode 100644 index 000000000..b3aa7f356 --- /dev/null +++ b/src/main/java/mate/controller/AddDriverToCarController.java @@ -0,0 +1,35 @@ +package mate.controller; + +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("/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); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/WEB-INF/views/addingDriverToCar.jsp").forward(req, resp); + } + + public void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + Car car = carService.get(Long.valueOf(req.getParameter("carId"))); + Driver driver = driverService.get(Long.valueOf(req.getParameter("driverId"))); + carService.addDriverToCar(driver, car); + resp.sendRedirect(req.getContextPath() + "/index"); + } +} diff --git a/src/main/java/mate/controller/CreateCarController.java b/src/main/java/mate/controller/CreateCarController.java new file mode 100644 index 000000000..e752cd3ac --- /dev/null +++ b/src/main/java/mate/controller/CreateCarController.java @@ -0,0 +1,39 @@ +package mate.controller; + +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("/cars/add") +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/carCreation.jsp").forward(req, resp); + } + + @Override + public void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + Car car = new Car(); + car.setModel(req.getParameter("model")); + car.setManufacturer(manufacturerService.get( + Long.valueOf(req.getParameter("manufacturerId")))); + car.setDrivers(new ArrayList<>()); + carService.create(car); + resp.sendRedirect(req.getContextPath() + "/cars"); + } +} diff --git a/src/main/java/mate/controller/CreateDriverController.java b/src/main/java/mate/controller/CreateDriverController.java new file mode 100644 index 000000000..1733b9919 --- /dev/null +++ b/src/main/java/mate/controller/CreateDriverController.java @@ -0,0 +1,34 @@ +package mate.controller; + +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("/drivers/add") +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/driverCreation.jsp").forward(req, resp); + } + + @Override + public 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"); + } +} diff --git a/src/main/java/mate/controller/CreateManufacturerController.java b/src/main/java/mate/controller/CreateManufacturerController.java new file mode 100644 index 000000000..9a8048ac6 --- /dev/null +++ b/src/main/java/mate/controller/CreateManufacturerController.java @@ -0,0 +1,34 @@ +package mate.controller; + +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("/manufacturers/add") +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/manufacturerCreation.jsp").forward(req, resp); + } + + @Override + public 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"); + } +} diff --git a/src/main/java/mate/controller/DeleteCarController.java b/src/main/java/mate/controller/DeleteCarController.java new file mode 100644 index 000000000..f5985ae0a --- /dev/null +++ b/src/main/java/mate/controller/DeleteCarController.java @@ -0,0 +1,23 @@ +package mate.controller; + +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/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"); + } +} diff --git a/src/main/java/mate/controller/DeleteDriverController.java b/src/main/java/mate/controller/DeleteDriverController.java new file mode 100644 index 000000000..a3fac6e0b --- /dev/null +++ b/src/main/java/mate/controller/DeleteDriverController.java @@ -0,0 +1,24 @@ +package mate.controller; + +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("/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 ServletException, IOException { + driverService.delete(Long.valueOf(req.getParameter("id"))); + resp.sendRedirect(req.getContextPath() + "/drivers"); + } +} diff --git a/src/main/java/mate/controller/DeleteManufacturerController.java b/src/main/java/mate/controller/DeleteManufacturerController.java new file mode 100644 index 000000000..f80391448 --- /dev/null +++ b/src/main/java/mate/controller/DeleteManufacturerController.java @@ -0,0 +1,24 @@ +package mate.controller; + +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("/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 ServletException, IOException { + manufacturerService.delete(Long.valueOf(req.getParameter("id"))); + resp.sendRedirect(req.getContextPath() + "/manufacturers"); + } +} diff --git a/src/main/java/mate/controller/GetAllCarsController.java b/src/main/java/mate/controller/GetAllCarsController.java new file mode 100644 index 000000000..07bce8eb6 --- /dev/null +++ b/src/main/java/mate/controller/GetAllCarsController.java @@ -0,0 +1,29 @@ +package mate.controller; + +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 mate.lib.Injector; +import mate.model.Car; +import mate.service.CarService; +import mate.service.ManufacturerService; + +@WebServlet("/cars") +public class GetAllCarsController 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 + public void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + List carList = carService.getAll(); + req.setAttribute("cars", carList); + req.getRequestDispatcher("/WEB-INF/views/allCars.jsp").forward(req, resp); + } +} diff --git a/src/main/java/mate/controller/GetAllDriversController.java b/src/main/java/mate/controller/GetAllDriversController.java new file mode 100644 index 000000000..c95dcc65e --- /dev/null +++ b/src/main/java/mate/controller/GetAllDriversController.java @@ -0,0 +1,27 @@ +package mate.controller; + +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 mate.lib.Injector; +import mate.model.Driver; +import mate.service.DriverService; + +@WebServlet("/drivers") +public class GetAllDriversController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private final DriverService driverService = + (DriverService) injector.getInstance(DriverService.class); + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + List driverList = driverService.getAll(); + req.setAttribute("drivers", driverList); + req.getRequestDispatcher("/WEB-INF/views/allDrivers.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..734bd5262 --- /dev/null +++ b/src/main/java/mate/controller/GetAllManufacturersController.java @@ -0,0 +1,27 @@ +package mate.controller; + +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 mate.lib.Injector; +import mate.model.Manufacturer; +import mate.service.ManufacturerService; + +@WebServlet("/manufacturers") +public class GetAllManufacturersController extends HttpServlet { + private static final Injector injector = Injector.getInstance("mate"); + private final ManufacturerService manufacturerService = + (ManufacturerService) injector.getInstance(ManufacturerService.class); + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + List manufacturerList = manufacturerService.getAll(); + req.setAttribute("manufacturers", manufacturerList); + req.getRequestDispatcher("/WEB-INF/views/allManufacturers.jsp").forward(req, resp); + } +} diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java index 27bcd4faa..33b6c2295 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("/index") public class IndexController extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java index a9249b004..2fe7fc455 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://sql7.freesqldatabase.com:3306/sql7630939"; + private static final String USERNAME = "sql7630939"; + private static final String PASSWORD = "HmUQTbNf6K"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { diff --git a/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp b/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp new file mode 100644 index 000000000..7e0d52112 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/addingDriverToCar.jsp @@ -0,0 +1,15 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Driver adding + + +

Please fill full the form below.

+
+ Car ID
+ Driver ID
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/allCars.jsp b/src/main/webapp/WEB-INF/views/allCars.jsp new file mode 100644 index 000000000..7e80db822 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/allCars.jsp @@ -0,0 +1,34 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="d" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + All cars + + +

List of cars:

+ + + + + + + + + + + + + + + + + +
IDModelManufacturerList of driversDelete
+ + + + + delete
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/allDrivers.jsp b/src/main/webapp/WEB-INF/views/allDrivers.jsp new file mode 100644 index 000000000..535c2c994 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/allDrivers.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" %> + + + All drivers + + +

List of drivers:

+ + + + + + + + + + + + + + + +
IDNameLicense_numberDelete
delete
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/allManufacturers.jsp b/src/main/webapp/WEB-INF/views/allManufacturers.jsp new file mode 100644 index 000000000..565a455fa --- /dev/null +++ b/src/main/webapp/WEB-INF/views/allManufacturers.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" %> + + + All manufacturers + + +

List of manufacturers:

+ + + + + + + + + + + + + + + +
IDNameCountryDelete
delete
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/carCreation.jsp b/src/main/webapp/WEB-INF/views/carCreation.jsp new file mode 100644 index 000000000..41f18c2cf --- /dev/null +++ b/src/main/webapp/WEB-INF/views/carCreation.jsp @@ -0,0 +1,15 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Car creation + + +

Please fill full the form below.

+
+ Model
+ Manufacturer ID
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/driverCreation.jsp b/src/main/webapp/WEB-INF/views/driverCreation.jsp new file mode 100644 index 000000000..b41f89631 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/driverCreation.jsp @@ -0,0 +1,15 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Driver creation + + +

Please fill full the form below.

+
+ Name
+ License number
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index 0fbc5292a..cad5e6227 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -1,9 +1,12 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" %> My team

Hello, mates!

+

Drivers list

+

Manufacturers list

+

Cars list

diff --git a/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp b/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp new file mode 100644 index 000000000..2826d8db2 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/manufacturerCreation.jsp @@ -0,0 +1,15 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" %> + + + Manufacturer creation + + +

Please fill full the form below.

+
+ Name
+ Country
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml index 00afaeb93..f69dec813 100644 --- a/src/main/webapp/web.xml +++ b/src/main/webapp/web.xml @@ -3,12 +3,5 @@ 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 - +