From 5b6ee976c490980c9ccd7262296f32d13a7ac247 Mon Sep 17 00:00:00 2001
From: 0qln <0qln@proton.me>
Date: Thu, 12 Feb 2026 18:10:37 +0100
Subject: [PATCH] uebung2/aufgabe17
---
.../java/org/example/demo/models/Student.java | 48 ++++++++++++
.../example/demo/models/StudentServlet.java | 77 +++++++++++++++++++
.../uebung2/aufgabe17/studentAnlegen.jsp | 39 ++++++++++
.../uebung2/aufgabe17/studentAnzeigen.jsp | 29 +++++++
4 files changed, 193 insertions(+)
create mode 100644 src/main/java/org/example/demo/models/Student.java
create mode 100644 src/main/java/org/example/demo/models/StudentServlet.java
create mode 100644 src/main/webapp/uebung2/aufgabe17/studentAnlegen.jsp
create mode 100644 src/main/webapp/uebung2/aufgabe17/studentAnzeigen.jsp
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"%>
+
+
+
| Name: | +|
| Matrikelnummer: | +|
| Geburtsdatum: | +