From 00fad14ab50131c658c86fb4279762714c698e95 Mon Sep 17 00:00:00 2001 From: 0qln <0qln@proton.me> Date: Thu, 13 Nov 2025 11:14:22 +0100 Subject: [PATCH] initial commit --- README.md | 0 jakarta-proj/demo/.gitignore | 38 +++ jakarta-proj/demo/.idea/.gitignore | 8 + jakarta-proj/demo/.idea/encodings.xml | 7 + jakarta-proj/demo/.idea/misc.xml | 14 + jakarta-proj/demo/.idea/uiDesigner.xml | 124 +++++++ jakarta-proj/demo/.idea/vcs.xml | 6 + .../demo/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 58727 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + jakarta-proj/demo/mvnw | 316 ++++++++++++++++++ jakarta-proj/demo/mvnw.cmd | 188 +++++++++++ jakarta-proj/demo/pom.xml | 59 ++++ .../java/org/example/demo/HelloServlet.java | 27 ++ .../org/example/demo/beans/StudentBean.java | 27 ++ .../java/org/example/demo/models/Buch.java | 78 +++++ .../example/demo/models/BuchContainer.java | 53 +++ .../src/main/resources/META-INF/beans.xml | 6 + .../main/resources/META-INF/persistence.xml | 9 + .../src/main/webapp/WEB-INF/faces-config.xml | 7 + .../demo/src/main/webapp/WEB-INF/web.xml | 15 + jakarta-proj/demo/src/main/webapp/index.jsp | 12 + .../src/main/webapp/praktikum1/books/edit.jsp | 15 + .../main/webapp/praktikum1/books/index.jsp | 31 ++ .../src/main/webapp/praktikum3/page1.xhtml | 11 + .../src/main/webapp/uebung3/eingabe.xhtml | 24 ++ 25 files changed, 1077 insertions(+) mode change 100644 => 100755 README.md create mode 100644 jakarta-proj/demo/.gitignore create mode 100644 jakarta-proj/demo/.idea/.gitignore create mode 100644 jakarta-proj/demo/.idea/encodings.xml create mode 100644 jakarta-proj/demo/.idea/misc.xml create mode 100644 jakarta-proj/demo/.idea/uiDesigner.xml create mode 100644 jakarta-proj/demo/.idea/vcs.xml create mode 100644 jakarta-proj/demo/.mvn/wrapper/maven-wrapper.jar create mode 100644 jakarta-proj/demo/.mvn/wrapper/maven-wrapper.properties create mode 100755 jakarta-proj/demo/mvnw create mode 100755 jakarta-proj/demo/mvnw.cmd create mode 100755 jakarta-proj/demo/pom.xml create mode 100755 jakarta-proj/demo/src/main/java/org/example/demo/HelloServlet.java create mode 100755 jakarta-proj/demo/src/main/java/org/example/demo/beans/StudentBean.java create mode 100755 jakarta-proj/demo/src/main/java/org/example/demo/models/Buch.java create mode 100755 jakarta-proj/demo/src/main/java/org/example/demo/models/BuchContainer.java create mode 100755 jakarta-proj/demo/src/main/resources/META-INF/beans.xml create mode 100755 jakarta-proj/demo/src/main/resources/META-INF/persistence.xml create mode 100755 jakarta-proj/demo/src/main/webapp/WEB-INF/faces-config.xml create mode 100755 jakarta-proj/demo/src/main/webapp/WEB-INF/web.xml create mode 100755 jakarta-proj/demo/src/main/webapp/index.jsp create mode 100755 jakarta-proj/demo/src/main/webapp/praktikum1/books/edit.jsp create mode 100755 jakarta-proj/demo/src/main/webapp/praktikum1/books/index.jsp create mode 100755 jakarta-proj/demo/src/main/webapp/praktikum3/page1.xhtml create mode 100755 jakarta-proj/demo/src/main/webapp/uebung3/eingabe.xhtml diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/jakarta-proj/demo/.gitignore b/jakarta-proj/demo/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/jakarta-proj/demo/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/jakarta-proj/demo/.idea/.gitignore b/jakarta-proj/demo/.idea/.gitignore new file mode 100644 index 0000000..1c2fda5 --- /dev/null +++ b/jakarta-proj/demo/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/jakarta-proj/demo/.idea/encodings.xml b/jakarta-proj/demo/.idea/encodings.xml new file mode 100644 index 0000000..a156f52 --- /dev/null +++ b/jakarta-proj/demo/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/.idea/misc.xml b/jakarta-proj/demo/.idea/misc.xml new file mode 100644 index 0000000..9881e8d --- /dev/null +++ b/jakarta-proj/demo/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/.idea/uiDesigner.xml b/jakarta-proj/demo/.idea/uiDesigner.xml new file mode 100644 index 0000000..6d50cd4 --- /dev/null +++ b/jakarta-proj/demo/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/.idea/vcs.xml b/jakarta-proj/demo/.idea/vcs.xml new file mode 100644 index 0000000..9661ac7 --- /dev/null +++ b/jakarta-proj/demo/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/.mvn/wrapper/maven-wrapper.jar b/jakarta-proj/demo/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1dd12f17644411d6e840bd5a10c6ecda0175f18 GIT binary patch literal 58727 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

Q*ss04{b)&}#@R@3 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 literal 0 HcmV?d00001 diff --git a/jakarta-proj/demo/.mvn/wrapper/maven-wrapper.properties b/jakarta-proj/demo/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..41d2d76 --- /dev/null +++ b/jakarta-proj/demo/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.0/maven-wrapper-3.3.0.jar \ No newline at end of file diff --git a/jakarta-proj/demo/mvnw b/jakarta-proj/demo/mvnw new file mode 100755 index 0000000..8a8fb22 --- /dev/null +++ b/jakarta-proj/demo/mvnw @@ -0,0 +1,316 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/jakarta-proj/demo/mvnw.cmd b/jakarta-proj/demo/mvnw.cmd new file mode 100755 index 0000000..1d8ab01 --- /dev/null +++ b/jakarta-proj/demo/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/jakarta-proj/demo/pom.xml b/jakarta-proj/demo/pom.xml new file mode 100755 index 0000000..1e7a292 --- /dev/null +++ b/jakarta-proj/demo/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + org.example + demo + 1.0-SNAPSHOT + demo + war + + + UTF-8 + 8 + 8 + 5.11.0-M2 + + + + + jakarta.platform + jakarta.jakartaee-web-api + 11.0.0-M3 + provided + + org.jboss.weld.se + weld-se-core + 6.0.0.Beta1 + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + test + + + org.projectlombok + lombok + RELEASE + provided + + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.4.0 + + + \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/java/org/example/demo/HelloServlet.java b/jakarta-proj/demo/src/main/java/org/example/demo/HelloServlet.java new file mode 100755 index 0000000..24f522b --- /dev/null +++ b/jakarta-proj/demo/src/main/java/org/example/demo/HelloServlet.java @@ -0,0 +1,27 @@ +package org.example.demo; + +import java.io.*; +import jakarta.servlet.http.*; +import jakarta.servlet.annotation.*; + +@WebServlet(name = "helloServlet", value = "/hello-servlet") +public class HelloServlet extends HttpServlet { + private String message; + + public void init() { + message = "Hello World!"; + } + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setContentType("text/html"); + + // Hello + PrintWriter out = response.getWriter(); + out.println(""); + out.println("

" + message + "

"); + out.println(""); + } + + public void destroy() { + } +} \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/java/org/example/demo/beans/StudentBean.java b/jakarta-proj/demo/src/main/java/org/example/demo/beans/StudentBean.java new file mode 100755 index 0000000..6dd3393 --- /dev/null +++ b/jakarta-proj/demo/src/main/java/org/example/demo/beans/StudentBean.java @@ -0,0 +1,27 @@ +package org.example.demo.beans; + +import jakarta.enterprise.context.SessionScoped; +import jakarta.inject.Named; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.io.Serializable; + +@Named +@SessionScoped +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class StudentBean implements Serializable { + private String name; + private String matrikelnummer; + private String studiengang; + + public String speichern() { + return "ausgabe?faces-redirect=true"; + } +} + diff --git a/jakarta-proj/demo/src/main/java/org/example/demo/models/Buch.java b/jakarta-proj/demo/src/main/java/org/example/demo/models/Buch.java new file mode 100755 index 0000000..68a40ba --- /dev/null +++ b/jakarta-proj/demo/src/main/java/org/example/demo/models/Buch.java @@ -0,0 +1,78 @@ +package org.example.demo.models; + +public class Buch +{ + //Buch Attribute + private String titel; + private double preis; + private int id; + private static Integer idCounter; + + //Konstruktor + + static{ + idCounter=0; + } + + public Buch(String titel, double preis) { + super(); + this.titel = titel; + this.preis = preis; + synchronized(this.getClass()){ + id=idCounter; + idCounter++; + } + }// Konstruktor + + public Buch() { + this("",-1); + }// Konstruktor + + //Operation update(): aendert alle Attribute + public void update(String titel, double preis) { + this.titel = titel; + this.preis = preis; + }// update + + public String getTitel() { + return titel; + } + + public void setTitel(String titel) { + this.titel = titel; + } + + public double getPreis() { + return preis; + } + + public void setPreis(double preis) { + this.preis = preis; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String toString() + { + return this.titel+", " + + ((""+preis).replace('.',',')); + }// toString + + public boolean equals(Object o){ + if(o != null + && o.getClass() == this.getClass() + && ((Buch)o).getId()==this.getId() + ){ + return true; + } + else{ + return false; + } + } +}// Buch diff --git a/jakarta-proj/demo/src/main/java/org/example/demo/models/BuchContainer.java b/jakarta-proj/demo/src/main/java/org/example/demo/models/BuchContainer.java new file mode 100755 index 0000000..0cc0324 --- /dev/null +++ b/jakarta-proj/demo/src/main/java/org/example/demo/models/BuchContainer.java @@ -0,0 +1,53 @@ +package org.example.demo.models; + +import java.util.ArrayList; + +public class BuchContainer +{ + //Objektverwaltung + private ArrayList buchContainer; + + public BuchContainer() { + buchContainer = new ArrayList(); + }// Konstruktor + + //Operation add(): fuegt ein Element hinzu + public void add(Buch buch) + { + buchContainer.add(buch); + }// add + + public void update(Buch buch, String titel, double preis) { + + // Attribute des Buchs werden geaendert + buch.update(titel, preis); + } + + //Operation delete(): loescht ein Buch aus dem Container + public void delete(Buch buch) + { + buchContainer.remove(buch); + }// delete + + public void delete(int id) + { + Buch buch = new Buch(); + buch.setId(id); + buchContainer.remove(buch); + }// delete + + // + public Buch get(int id){ + Buch buch = new Buch(); + buch.setId(id); + return buchContainer.get(buchContainer.indexOf(buch)); + } + + //Rückgabe des Containers als Array von Objekten + public ArrayList getAll() + { + return buchContainer; + }// getAll + +}// class BuchContainer + diff --git a/jakarta-proj/demo/src/main/resources/META-INF/beans.xml b/jakarta-proj/demo/src/main/resources/META-INF/beans.xml new file mode 100755 index 0000000..96b4c76 --- /dev/null +++ b/jakarta-proj/demo/src/main/resources/META-INF/beans.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/resources/META-INF/persistence.xml b/jakarta-proj/demo/src/main/resources/META-INF/persistence.xml new file mode 100755 index 0000000..4e83e2c --- /dev/null +++ b/jakarta-proj/demo/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/jakarta-proj/demo/src/main/webapp/WEB-INF/faces-config.xml b/jakarta-proj/demo/src/main/webapp/WEB-INF/faces-config.xml new file mode 100755 index 0000000..12b3036 --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/webapp/WEB-INF/web.xml b/jakarta-proj/demo/src/main/webapp/WEB-INF/web.xml new file mode 100755 index 0000000..e94a73e --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,15 @@ + + + + Faces Servlet + jakarta.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/webapp/index.jsp b/jakarta-proj/demo/src/main/webapp/index.jsp new file mode 100755 index 0000000..6a3715c --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/index.jsp @@ -0,0 +1,12 @@ +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> + + + + JSP - Hello World + + +

<%= "Hello World!" %>

+
+Hello Servlet test + + \ No newline at end of file diff --git a/jakarta-proj/demo/src/main/webapp/praktikum1/books/edit.jsp b/jakarta-proj/demo/src/main/webapp/praktikum1/books/edit.jsp new file mode 100755 index 0000000..8f2f581 --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/praktikum1/books/edit.jsp @@ -0,0 +1,15 @@ +<%-- + Created by IntelliJ IDEA. + User: LinusNagel + Date: 17.10.2025 + Time: 10:52 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + diff --git a/jakarta-proj/demo/src/main/webapp/praktikum1/books/index.jsp b/jakarta-proj/demo/src/main/webapp/praktikum1/books/index.jsp new file mode 100755 index 0000000..300f832 --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/praktikum1/books/index.jsp @@ -0,0 +1,31 @@ +<%-- + Created by IntelliJ IDEA. + User: LinusNagel + Date: 17.10.2025 + Time: 10:24 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +
    + <% +// for (int i = 0; i < books.length; i++) { + %> +
  • +<%-- <%= books[i].name %>, <%= books[i].price %>--%> + Bearbeiten +
    + +
    +
  • + <% +// } + %> +
+ + + diff --git a/jakarta-proj/demo/src/main/webapp/praktikum3/page1.xhtml b/jakarta-proj/demo/src/main/webapp/praktikum3/page1.xhtml new file mode 100755 index 0000000..279c80a --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/praktikum3/page1.xhtml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/jakarta-proj/demo/src/main/webapp/uebung3/eingabe.xhtml b/jakarta-proj/demo/src/main/webapp/uebung3/eingabe.xhtml new file mode 100755 index 0000000..7b03a1c --- /dev/null +++ b/jakarta-proj/demo/src/main/webapp/uebung3/eingabe.xhtml @@ -0,0 +1,24 @@ + + + + + Studentendaten + + + + +
+ + +
+ + +
+ +
+
+