Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
Expand Down
44 changes: 44 additions & 0 deletions src/main/java/mate/controller/car/AddCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
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 AddCarController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final ManufacturerService manufacturerService = (ManufacturerService)
injector.getInstance(ManufacturerService.class);
private static final CarService carService = (CarService)
injector.getInstance(CarService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Manufacturer> manufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturers);
req.getRequestDispatcher("/WEB-INF/views/cars/add.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String model = req.getParameter("model");
Manufacturer manufacturer = manufacturerService
.get(Long.valueOf(req.getParameter("manufacturer")));
Car car = new Car();
car.setModel(model);
car.setManufacturer(manufacturer);
car.setDrivers(new ArrayList<>());
carService.create(car);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

after post redirect to the page where you can see the changes just made (all cars after adding a car etc)

resp.sendRedirect(req.getContextPath() + "/cars/all");
}
}
42 changes: 42 additions & 0 deletions src/main/java/mate/controller/car/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package mate.controller.car;

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.model.Driver;
import mate.service.CarService;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/cars/driver/add")
public class AddDriverToCarController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final CarService carService = (CarService)
injector.getInstance(CarService.class);
private static final DriverService driverService = (DriverService)
injector.getInstance(DriverService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Car> cars = carService.getAll();
List<Driver> drivers = driverService.getAll();
req.setAttribute("cars",cars);
req.setAttribute("drivers", drivers);
req.getRequestDispatcher("/WEB-INF/views/cars/driver/add.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")));
carService.addDriverToCar(driver,car);
resp.sendRedirect(req.getContextPath() + "/cars/all");
}
}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/car/DeleteCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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.service.CarService;

@WebServlet(urlPatterns = "/cars/delete")
public class DeleteCarController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static 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);
resp.sendRedirect(req.getContextPath() + "/cars/all");
}
}
27 changes: 27 additions & 0 deletions src/main/java/mate/controller/car/GetAllCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package mate.controller.car;

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;

@WebServlet(urlPatterns = "/cars/all")
public class GetAllCarController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final CarService
carService = (CarService) injector.getInstance(CarService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Car> carList = carService.getAll();
req.setAttribute("cars", carList);
req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp);
}
}
36 changes: 36 additions & 0 deletions src/main/java/mate/controller/driver/AddDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
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 AddDriverController 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/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("licenseNumber");
Driver driver = new Driver();
driver.setName(name);
driver.setLicenseNumber(licenseNumber);
driverService.create(driver);
resp.sendRedirect(req.getContextPath() + "/drivers/all");
}
}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/driver/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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.service.DriverService;

@WebServlet(urlPatterns = "/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 {
Long id = Long.valueOf(req.getParameter("id"));
driverService.delete(id);
resp.sendRedirect(req.getContextPath() + "/drivers/all");
}
}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/driver/GetAllDriversController.java
Original file line number Diff line number Diff line change
@@ -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<Driver> driverAll = driverService.getAll();
req.setAttribute("drivers", driverAll);
req.getRequestDispatcher("/WEB-INF/views/drivers/all.jsp").forward(req,resp);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package mate.controller.manufacturer;

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/add")
public class AddManufacturerController 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/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() + "/manufacturers/all");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package mate.controller.manufacturer;

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/delete")
public class DeleteManufacturersController 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);
resp.sendRedirect(req.getContextPath() + "/manufacturers/all");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package mate.controller.manufacturer;

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(urlPatterns = "/manufacturers/all")
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<Manufacturer> manufacturersAll = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturersAll);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/all.jsp").forward(req, resp);
}
}
7 changes: 7 additions & 0 deletions src/main/java/mate/model/Manufacturer.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,11 @@ public boolean equals(Object o) {
public int hashCode() {
return Objects.hash(id, name, country);
}

@Override
public String toString() {
return "id=" + id
+ ", name='" + name + '\''
+ ", country='" + country;
}
}
8 changes: 4 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,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=Europe/Kiev";
private static final String USERNAME = "root";
private static final String PASSWORD = "1984";
private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

static {
try {
Expand Down
21 changes: 21 additions & 0 deletions src/main/webapp/WEB-INF/views/cars/add.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Creating a car</title>
</head>
<body>
<h1>Please the form below</h1>
<form method="post" action="${pageContext.request.contextPath}/cars/add">
model <input type="text" name="model"><br>

Select a Category:&nbsp;
<select name="manufacturer">
<c:forEach items="${manufacturers}" var="manufacturer">
<option value="${manufacturer.id}">${manufacturer.name}</option>
</c:forEach>
</select>
<button type="submit">Confirm</button>
</form>
</body>
</html>
Loading