diff --git a/src/main/java/org/example/demo/models/Student.java b/src/main/java/org/example/demo/models/Student.java new file mode 100644 index 0000000..5cff1ec --- /dev/null +++ b/src/main/java/org/example/demo/models/Student.java @@ -0,0 +1,48 @@ +package org.example.demo.models; + +import java.time.LocalDate; + +public class Student { + private String name; + private long matrikelnummer; + private LocalDate geburtsdatum; + + public Student(String name, long matrikelnummer, LocalDate geburtsdatum) { + super(); + this.name = name; + this.matrikelnummer = matrikelnummer; + this.geburtsdatum = geburtsdatum; + } + + public Student() { + this("",-1, LocalDate.now()); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public long getMatrikelnummer() { + return matrikelnummer; + } + + public void setMatrikelnummer(long matrikelnummer) { + this.matrikelnummer = matrikelnummer; + } + + public LocalDate getGeburtsdatum() { + return geburtsdatum; + } + + public void setGeburtsdatum(LocalDate geburtsdatum) { + this.geburtsdatum = geburtsdatum; + } + + public String toString() { + return matrikelnummer + ": " + name + ", " + geburtsdatum; + } +} diff --git a/src/main/java/org/example/demo/models/StudentServlet.java b/src/main/java/org/example/demo/models/StudentServlet.java new file mode 100644 index 0000000..54e9a7a --- /dev/null +++ b/src/main/java/org/example/demo/models/StudentServlet.java @@ -0,0 +1,77 @@ +package org.example.demo.models; + +import java.io.IOException; +import java.text.ParseException; +import java.time.DateTimeException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.format.FormatStyle; +import java.util.Locale; + +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +@WebServlet("/uebung2/aufgabe17/studentServlet") +public class StudentServlet extends HttpServlet { + + public void service(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException { + String fehler = ""; + long matrikelnummer = 0; + LocalDate geburtsdatum = null; + + String name = request.getParameter("name"); + if (name==null || name.isBlank()) { + fehler += "Der Name wurde fehlerhaft eingegeben!
"; + } + + String matrikelnummerString = request.getParameter("matrikelnummer"); + if (matrikelnummerString == null || matrikelnummerString.isBlank()) { + fehler += "Die Matrikelnummer muss eingegeben werden!
"; + } + else { + try { + matrikelnummer = Long.parseLong(matrikelnummerString); + } + catch(NumberFormatException e) { + fehler += "Die Matrikelnummer wurde fehlerhaft eingegeben!
"; + } + } + + String geburtsdatumString = request.getParameter("geburtsdatum"); + if (geburtsdatumString == null || geburtsdatumString.isBlank()) { + fehler += "Das Geburtsdatum muss eingegeben werden!
"; + } + else { + try { + geburtsdatum = LocalDate.parse(geburtsdatumString, DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.GERMANY)); + } + catch(DateTimeParseException e) { + fehler += "Das Datum muss dem Format tt.mm.jjjj entsprechen!
"; + } + + } + + if (!fehler.equals("")) { + request.setAttribute("fehler", fehler); + // Der Inhalt der Variable fehler wird in den Request als Attribut eingefuegt. + // Wenn das Attribut fehler im request nicht enthalten ist, wird ein Leerstring + // im View StudentAnlegen angezeigt. + RequestDispatcher dispatcher = request.getRequestDispatcher("studentAnlegen.jsp"); + dispatcher.forward(request, response); + } + else { + Student student = new Student(name, matrikelnummer, geburtsdatum); + request.setAttribute("student", student); + RequestDispatcher dispatcher = request.getRequestDispatcher("studentAnzeigen.jsp"); + dispatcher.forward(request, response); + } + } +} diff --git a/src/main/webapp/uebung2/aufgabe17/studentAnlegen.jsp b/src/main/webapp/uebung2/aufgabe17/studentAnlegen.jsp new file mode 100644 index 0000000..0c5d8f2 --- /dev/null +++ b/src/main/webapp/uebung2/aufgabe17/studentAnlegen.jsp @@ -0,0 +1,39 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Student anlegen + + + +

Student anlegen

+ + <%= request.getAttribute("fehler")!=null + ? request.getAttribute("fehler") + : "" + %> + +
+ + + + + + + + + + + + + + + + + +
Name:
Matrikelnummer:
Geburtsdatum:
 
+
+ + diff --git a/src/main/webapp/uebung2/aufgabe17/studentAnzeigen.jsp b/src/main/webapp/uebung2/aufgabe17/studentAnzeigen.jsp new file mode 100644 index 0000000..f273073 --- /dev/null +++ b/src/main/webapp/uebung2/aufgabe17/studentAnzeigen.jsp @@ -0,0 +1,29 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Student anzeigen + + + + +

Student

+ + + + + + + + + + + + + + +
Name:
Matrikelnummer:
Geburtsdatum:
+ +