IInterpreterResource:
@Path("/interpreter")
public interface IInterpreterResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
List<Interpreter> getAll();
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("{id}")
Interpreter getInterpreterById(@PathParam("id") int id);
InterpreterStore:
public class InterpreterStore {
private static InterpreterStore instance;
private final List<Interpreter> interpreters = new ArrayList<>();
public InterpreterStore() {
//CDs erstellen
CD cd1 = new CD();
cd1.setId(1);
cd1.setTitle("Run");
cd1.setReleaseDate(LocalDate.of(2021,7,17));
CD cd2 = new CD();
cd2.setId(2);
cd2.setTitle("Pressure");
cd2.setReleaseDate(LocalDate.of(2021,7,2));
CD cd3 = new CD();
cd3.setId(3);
cd3.setTitle("Thunder");
cd3.setReleaseDate(LocalDate.of(2022,1,15));
Interpreter interpreter1 = new Interpreter();
interpreter1.setId(1);
interpreter1.setFirstname("Rainer");
interpreter1.setLastname("Zufall");
interpreter1.setEmail("rainer.zufall1@icloud.com");
interpreter1.setPassword("moinMeister");
interpreter1.setCds(new ArrayList<>(List.of(cd1, cd2)));
interpreters.add(interpreter1);
Interpreter interpreter2 = new Interpreter();
interpreter2.setId(2);
interpreter2.setFirstname("Winnie");
interpreter2.setLastname("Puuh");
interpreter2.setEmail("winnie.puuh2@icloud.com");
interpreter2.setPassword("puhDerBär");
interpreter2.setCds(new ArrayList<>(List.of(cd3)));
interpreters.add(interpreter2);
}
public static InterpreterStore getInstance() {
if (instance == null){
instance = new InterpreterStore();
}
return instance;
}
public List<Interpreter> getInterpreters() {
return interpreters;
}
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<jsp:include page="/includes/head.jsp"/>
</head>
<body>
<jsp:useBean id="interpretersBean" class="com.example.client.model.InterpretersBean" scope="request"/>
<h1 class="w3-aqua">Welcome to iTunes</h1>
<br>
<form action="login.jsp" class="w3-center">
<button type="submit" name="login" >Login</button>
</form>
<br>
<c:forEach var="interpreter" items="${interpretersBean.interpreters}">
<fieldset class="w3-blue-gray">
<h4>${interpreter.firstname} ${interpreter.lastname}</h4>
<details>
<c:forEach var="cd" items="${interpreter.cds}">
<p>${cd.id}. ${cd.title} (${cd.releaseDate})</p>
</c:forEach>
</details>
</fieldset>
<br>
</c:forEach>
</body>
</html>
InterpretersBean:
public class InterpretersBean {
private List<Interpreter> interpreters;
public InterpretersBean() {
}
public List<Interpreter> getInterpreters() {
return interpreters;
}
public void setInterpreters(List<Interpreter> interpreters) {
this.interpreters = interpreters;
}
}
HomePageServlet:
@WebServlet(name = "HomePageServlet", value = "/HomePageServlet")
public class HomePageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
IInterpreterResource client = RestClientBuilder.newBuilder()
.baseUri(URI.create("http://localhost:8080/JavaTestBspCDs-1.0-SNAPSHOT/api"))
.followRedirects(true)
.build(IInterpreterResource.class);
InterpretersBean interpretersBean = new InterpretersBean();
interpretersBean.setInterpreters(client.getAll());
request.setAttribute("interpretersBean", interpretersBean);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
<title>iTunes Store</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/w3.css">
<style>
h1, h4, details, p, label, input{
text-align: center;
}
</style>
LoginServlet:
@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
IInterpreterResource client = RestClientBuilder.newBuilder()
.baseUri(URI.create("http://localhost:8080/JavaTestBspCDs-1.0-SNAPSHOT/api"))
.followRedirects(true)
.build(IInterpreterResource.class);
for (Interpreter i:client.getAll()) {
if (i.getEmail().equals(request.getParameter("email")) && i.getPassword().equals(request.getParameter("password"))){
InterpretBean interpretBean = new InterpretBean();
interpretBean.setInterpreter(i);
request.setAttribute("interpretBean", interpretBean);
request.getRequestDispatcher("interpreter.jsp").forward(request, response);
}
}
request.setAttribute("error", true);
request.getRequestDispatcher("login.jsp").forward(request, response);
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<jsp:include page="/includes/head.jsp"/>
</head>
<body>
<h1>iTunes Login</h1>
<br>
<form action="${pageContext.request.contextPath}/LoginServlet">
<fieldset>
<label for="email">E-Mail:</label><br>
<input type="email" id="email" name="email"><br><br>
<label for="password">Password:</label><br>
<input type="password" id="password" name="password"><br><br>
<c:if test="${requestScope.error}">
<br>
<code>Password Incorrect</code><br><br>
</c:if>
<button type="submit" name="login">Login</button>
</fieldset>
</form>
</body>
</html>