Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,19 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

<build>
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/mate/controller/IndexController.java
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
40 changes: 40 additions & 0 deletions src/main/java/mate/controller/cars/AddDriverController.java
Original file line number Diff line number Diff line change
@@ -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 static final DriverService DRIVER_SERVICE =
(DriverService) INJECTOR.getInstance(DriverService.class);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

private static final CarService CAR_SERVICE =
(CarService) INJECTOR.getInstance(CarService.class);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
private static final DriverService DRIVER_SERVICE =
(DriverService) INJECTOR.getInstance(DriverService.class);
private static final CarService CAR_SERVICE =
(CarService) INJECTOR.getInstance(CarService.class);
private final DriverService driverService =
(DriverService) INJECTOR.getInstance(DriverService.class);
private final CarService carService =
(CarService) INJECTOR.getInstance(CarService.class);

services should not be static, fix all controllers


@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 = DRIVER_SERVICE.get(Long.valueOf(req.getParameter("driver_id")));
Car car = CAR_SERVICE.get(Long.valueOf(req.getParameter("car_id")));
CAR_SERVICE.addDriverToCar(driver, car);
resp.sendRedirect(req.getContextPath() + "/cars/get");
}
}
42 changes: 42 additions & 0 deletions src/main/java/mate/controller/cars/CreateCarController.java
Original file line number Diff line number Diff line change
@@ -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 static final ManufacturerService MANUFACTURER_SERVICE =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);
private static final CarService CAR_SERVICE = (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(MANUFACTURER_SERVICE
.get(Long.valueOf(req.getParameter("id"))));
car.setDrivers(new ArrayList<>());
CAR_SERVICE.create(car);
resp.sendRedirect(req.getContextPath() + "/cars/get");
}
}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/cars/DeleteCarController.java
Original file line number Diff line number Diff line change
@@ -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 static final CarService CAR_SERVICE =
(CarService) INJECTOR.getInstance(CarService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
CAR_SERVICE.delete(Long.valueOf(req.getParameter("id")));
resp.sendRedirect(req.getContextPath() + "/cars/get");
}
}
26 changes: 26 additions & 0 deletions src/main/java/mate/controller/cars/GetAllCarsController.java
Original file line number Diff line number Diff line change
@@ -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 static final CarService CAR_SERVICE =
(CarService) INJECTOR.getInstance(CarService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setAttribute("cars", CAR_SERVICE.getAll());
req.getRequestDispatcher("/WEB-INF/views/cars/getAllCars.jsp")
.forward(req, resp);
}
}
36 changes: 36 additions & 0 deletions src/main/java/mate/controller/drivers/CreateDriverController.java
Original file line number Diff line number Diff line change
@@ -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 static final DriverService DRIVER_SERVICE = (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"));
DRIVER_SERVICE.create(driver);
resp.sendRedirect(req.getContextPath() + "/drivers/get");
}
}
24 changes: 24 additions & 0 deletions src/main/java/mate/controller/drivers/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -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 static final DriverService DRIVER_SERVICE = (DriverService)
INJECTOR.getInstance(DriverService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
DRIVER_SERVICE.delete(Long.valueOf(req.getParameter("id")));
resp.sendRedirect(req.getContextPath() + "/drivers/get");
}
}
26 changes: 26 additions & 0 deletions src/main/java/mate/controller/drivers/GetAllDriversController.java
Original file line number Diff line number Diff line change
@@ -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 static final DriverService DRIVER_SERVICE = (DriverService)
INJECTOR.getInstance(DriverService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setAttribute("drivers", DRIVER_SERVICE.getAll());
req.getRequestDispatcher("/WEB-INF/views/drivers/getAllDrivers.jsp")
.forward(req, resp);
}
}
Original file line number Diff line number Diff line change
@@ -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 static final ManufacturerService MANUFACTURER_SERVICE =
(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"));
MANUFACTURER_SERVICE.create(manufacturer);
resp.sendRedirect(req.getContextPath() + "/manufacturers/get");
}
}
Original file line number Diff line number Diff line change
@@ -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 static final ManufacturerService MANUFACTURER_SERVICE =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
MANUFACTURER_SERVICE.delete(Long.valueOf(req.getParameter("id")));
resp.sendRedirect(req.getContextPath() + "/manufacturers/get");
}
}
Original file line number Diff line number Diff line change
@@ -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 static final ManufacturerService MANUFACTURER_SERVICE =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setAttribute("manufacturers", MANUFACTURER_SERVICE.getAll());
req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp")
.forward(req, resp);
}
}
10 changes: 6 additions & 4 deletions src/main/java/mate/util/ConnectionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
14 changes: 14 additions & 0 deletions src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add Driver</title>
</head>
<body>
<h1>Please fill out the form below</h1>
<form method="post" action="${pageContext.request.contextPath}/cars/add">
Driver Id <input type="text" name="driver_id"><br>
Car Id <input type="text" name="car_id"><br>
<button type="submit">Add driver</button>
</form>
</body>
</html>
16 changes: 16 additions & 0 deletions src/main/webapp/WEB-INF/views/cars/createCar.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Create car</title>
</head>
<body>
<h1>Please fill out the form below</h1>

<form method="post" action="${pageContext.request.contextPath}/cars/create">
Manufacturer Id<input type="text" name="id"><br>
Car model<input type="text" name="model"><br>
<button type="submit">Create car</button>

</form>
</body>
</html>
Loading