Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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 @@ -31,6 +31,11 @@
<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
40 changes: 40 additions & 0 deletions src/main/java/mate/controller/car/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -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<Car> cars = carService.getAll();
List<Driver> 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)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

add redirect

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/add/driver");
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

better redirect to a page where you can see the change just made, after you added a car - to list of all cars etc

}
}
42 changes: 42 additions & 0 deletions src/main/java/mate/controller/car/CreateCarController.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.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<Manufacturer> 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/create");
}
}
26 changes: 26 additions & 0 deletions src/main/java/mate/controller/car/DeleteCarController.java
Original file line number Diff line number Diff line change
@@ -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<Car> allCars = carService.getAll();
req.setAttribute("cars", allCars);
req.getRequestDispatcher("/WEB-INF/views/cars/getAll.jsp").forward(req, resp);
}
}
30 changes: 30 additions & 0 deletions src/main/java/mate/controller/car/GetAllCarsController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
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<Car> cars = carService.getAll();
req.setAttribute("cars", cars);
req.getRequestDispatcher("/WEB-INF/views/cars/getAll.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.sendRedirect(req.getContextPath() + "/cars/all");
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

remove doPost from controllers that start with Get

}
32 changes: 32 additions & 0 deletions src/main/java/mate/controller/driver/CreateDriverController.java
Original file line number Diff line number Diff line change
@@ -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/create");
}
}
27 changes: 27 additions & 0 deletions src/main/java/mate/controller/driver/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -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<Driver> allDrivers = driverService.getAll();
req.setAttribute("drivers", allDrivers);
req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.jsp").forward(req, resp);
}
}
31 changes: 31 additions & 0 deletions src/main/java/mate/controller/driver/GetAllDriversController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
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> drivers = driverService.getAll();
req.setAttribute("drivers", drivers);
req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.sendRedirect(req.getContextPath() + "/drivers/all");
}
}
Original file line number Diff line number Diff line change
@@ -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/create");
}
}
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.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<Manufacturer> allManufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", allManufacturers);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAll.jsp").forward(req, resp);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
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<Manufacturer> manufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturers);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/getALL.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.sendRedirect(req.getContextPath() + "/manufacturers/all");
}
}
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_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 {
Expand Down
27 changes: 27 additions & 0 deletions src/main/webapp/WEB-INF/views/cars/addDriver.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Add Driver to the Car</title>
</head>
<body>
<h1>Choose a car and a driver</h1>
<form method="post" action="${pageContext.request.contextPath}/cars/drivers/add">
Car<label>
<select name="car.id">
<c:forEach items="${cars}" var="car">
<option value="${car.id}">"${car.model}" "${car.manufacturer.name}</option>
</c:forEach>
</select>
</label>
Driver<label>
<select name="driver_id">
<c:forEach items="${drivers}" var="driver">
<option value="${driver.id}">"${driver.name}" "${driver.licenseNumber}"</option>
</c:forEach>
</select>
</label>
<button type="submit">Create</button>
</form>
</body>
</html>
Loading