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 @@ -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
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
33 changes: 33 additions & 0 deletions src/main/java/mate/controller/car/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
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.model.Car;
import mate.model.Driver;
import mate.service.CarService;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/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 doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Long driverId = Long.valueOf(request.getParameter("driver_id"));
Long carId = Long.valueOf(request.getParameter("car_id"));
Car car = carService.get(carId);
Driver driver = driverService.get(driverId);
carService.addDriverToCar(driver, car);

response.sendRedirect(request.getContextPath() + "/");
}
}
41 changes: 41 additions & 0 deletions src/main/java/mate/controller/car/CreateCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
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.model.Car;
import mate.model.Manufacturer;
import mate.service.CarService;
import mate.service.ManufacturerService;

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

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/views/cars/addCar.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Car car = new Car();
String model = request.getParameter("model");
Long manufacturerId = Long.valueOf(request.getParameter("manufacturer_id"));
Manufacturer manufacturer = manufacturerService.get(manufacturerId);
car.setModel(model);
car.setManufacturer(manufacturer);
carService.create(car);
response.sendRedirect(request.getContextPath() + "/cars");
}
}
36 changes: 36 additions & 0 deletions src/main/java/mate/controller/driver/CreateDriverController.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 CreateDriverController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final DriverService driverService =
(DriverService) injector.getInstance(DriverService.class);

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/views/drivers/addDriver.jsp")
.forward(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Driver driver = new Driver();
driver.setName(request.getParameter("name"));
driver.setLicenseNumber(request.getParameter("license"));
driverService.create(driver);

response.sendRedirect(request.getContextPath() + "/drivers");
}
}
27 changes: 27 additions & 0 deletions src/main/java/mate/controller/driver/GetAllDriversController.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.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")
public class GetAllDriversController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final DriverService driverService =
(DriverService) injector.getInstance(DriverService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Driver> allDrivers = driverService.getAll();
req.setAttribute("drivers", allDrivers);
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.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 CreateManufacturerController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final ManufacturerService manufacturerService =
(ManufacturerService) injector.getInstance(ManufacturerService.class);

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/views/manufacturers/addManufacturer.jsp")
.forward(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Manufacturer manufacturer = new Manufacturer();
manufacturer.setName(request.getParameter("name"));
manufacturer.setCountry(request.getParameter("country"));
manufacturerService.create(manufacturer);

response.sendRedirect(request.getContextPath() + "/manufacturers");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
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")
public class GetAllManufacturersController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private static final ManufacturerService manufacturerService =
(ManufacturerService) injector.getInstance(ManufacturerService.class);

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Manufacturer> allManufacturers = manufacturerService.getAll();
request.setAttribute("manufacturers", allManufacturers);
request.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp")
.forward(request, response);
}
}
15 changes: 15 additions & 0 deletions src/main/webapp/WEB-INF/views/cars/addCar.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add Car</title>
</head>
<body>
<h1>Add new Car</h1>

<form method="post" action="${pageContext.request.contextPath}/cars/add">
Car model <input type="text" name="model"><br>
Manufacturer Id <input type="text" name="manufacturer_id"><br>
<button type="submit">Add new car</button>
</form>
</body>
</html>
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 new driver to a car</title>
</head>
<body>
<h1>Please provide information:</h1>
<form method="post" action="${pageContext.request.contextPath}/cars/drivers/add">
Driver id<input type="number" name="driver_id"><br>
Car id<input type="number" name="car_id"><br>
<button type="submit">Add driver to car</button>
</form>
</body>
</html>
15 changes: 15 additions & 0 deletions src/main/webapp/WEB-INF/views/drivers/addDriver.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add driver</title>
</head>
<body>
<h1>Add new Driver</h1>

<form method="post" action="${pageContext.request.contextPath}/drivers/add">
Driver name <input type="text" name="name"><br>
Driver license <input type="text" name="license"><br>
<button type="submit">Add new driver</button>
</form>
</body>
</html>
24 changes: 24 additions & 0 deletions src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<%@taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Get all drivers</title>
</head>
<body>
<h1>List of drivers:</h1>
<table>
<tr>
<td>ID</td>
<td>NAME</td>
<td>LICENSE NUM </td>
</tr>
<c:forEach items="${drivers}" var="driver">
<tr>
<td><c:out value="${driver.id}"/></td>
<td><c:out value="${driver.name}"/></td>
<td><c:out value="${driver.licenseNumber}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
15 changes: 15 additions & 0 deletions src/main/webapp/WEB-INF/views/manufacturers/addManufacturer.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add manufacturer</title>
</head>
<body>
<h1>Add new manufacturer</h1>

<form method="post" action="${pageContext.request.contextPath}/manufacturers/add">
Manufacturer name <input type="text" name="name"><br>
Manufacturer country <input type="text" name="country"><br>
<button type="submit">Add manufacturer</button>
</form>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<%@taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Get all manufacturers</title>
</head>
<body>
<h1>List of manufacturers:</h1>
<table>
<tr>
<td>ID</td>
<td>NAME</td>
<td>COUNTRY</td>
</tr>
<c:forEach items="${manufacturers}" var="manufacturer">
<tr>
<td><c:out value="${manufacturer.id}"/></td>
<td><c:out value="${manufacturer.name}"/></td>
<td><c:out value="${manufacturer.country}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
8 changes: 0 additions & 8 deletions src/main/webapp/web.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,4 @@
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>mate.controller.IndexController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
</web-app>