diff --git a/web/07/demos/00_method_receiver.go b/web/07/demos/00_method_receiver.go
new file mode 100644
index 0000000..00f8020
--- /dev/null
+++ b/web/07/demos/00_method_receiver.go
@@ -0,0 +1,26 @@
+package main
+
+import "fmt"
+
+type Person struct {
+ Name string
+ Age int
+}
+
+// Wert-Receiver: arbeitet auf einer Kopie
+func (p Person) Greet() {
+ fmt.Println("Hallo,", p.Name)
+}
+
+// Zeiger-Receiver: kann das Original ändern
+func (p *Person) Birthday() {
+ p.Age++
+}
+
+func main() {
+ a := Person{Name: "Karl", Age: 30}
+
+ a.Greet() // Ausgabe: Hallo, Karl
+ a.Birthday() // Alter wird erhöht
+ fmt.Println(a.Age) // Ausgabe: 31
+}
diff --git a/web/07/demos/01_helloworld_http.go b/web/07/demos/01_helloworld_http.go
new file mode 100644
index 0000000..858f83f
--- /dev/null
+++ b/web/07/demos/01_helloworld_http.go
@@ -0,0 +1,18 @@
+package main
+
+import (
+ "fmt"
+ "net/http"
+)
+
+type helloHandler int
+
+func (hello helloHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintf(w, "Hello World %d!", hello)
+}
+
+func main() {
+ var world helloHandler
+ world = 42
+ http.ListenAndServe("localhost:8080", world)
+}
diff --git a/web/07/demos/02_responsewriter_http.go b/web/07/demos/02_responsewriter_http.go
new file mode 100644
index 0000000..da73765
--- /dev/null
+++ b/web/07/demos/02_responsewriter_http.go
@@ -0,0 +1,19 @@
+package main
+
+import (
+ "net/http"
+)
+
+type respExampleHandler int
+
+func (hello respExampleHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("my-http-header", "Ein beliebiger Text")
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ w.WriteHeader(http.StatusFound)
+ w.Write([]byte("
Dies ist eine HTML-Überschrift"))
+}
+
+func main() {
+ var r respExampleHandler
+ http.ListenAndServe("localhost:8080", r)
+}
diff --git a/web/07/demos/03_get_request_http.go b/web/07/demos/03_get_request_http.go
new file mode 100644
index 0000000..5462ffd
--- /dev/null
+++ b/web/07/demos/03_get_request_http.go
@@ -0,0 +1,36 @@
+package main
+
+import (
+ "fmt"
+ "net/http"
+)
+
+type reqExampleHandler int
+
+func (hello reqExampleHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+
+ if r.Method != http.MethodGet {
+ http.Error(w, "Only GET requests are allowed", http.StatusMethodNotAllowed)
+ return
+ }
+
+ fmt.Println("Method:", r.Method)
+ fmt.Println("URL:", r.URL.String())
+ fmt.Println("Host:", r.Host)
+ fmt.Println("Accept-Header", r.Header.Get("Accept"))
+
+ queryParams := r.URL.Query()
+ fmt.Println("Query Parameters:")
+ for key, values := range queryParams {
+ for _, value := range values {
+ fmt.Printf(" %s = %s\n", key, value)
+ }
+ }
+
+ w.Write([]byte("GET: http.Request-Beispiel"))
+}
+
+func main() {
+ var r reqExampleHandler
+ http.ListenAndServe("localhost:8080", r)
+}
diff --git a/web/07/demos/04_post_request_http.go b/web/07/demos/04_post_request_http.go
new file mode 100644
index 0000000..b311cf6
--- /dev/null
+++ b/web/07/demos/04_post_request_http.go
@@ -0,0 +1,47 @@
+package main
+
+import (
+ "fmt"
+ "net/http"
+)
+
+type formExampleHandler int
+
+func (formHandler formExampleHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+
+ if r.Method != http.MethodPost {
+ http.Error(w, "Only POST requests are allowed", http.StatusMethodNotAllowed)
+ return
+ }
+
+ // Formulardaten parsen und Überprüfen, ob ungültige Formulardaten gesendet wurde
+ if err := r.ParseForm(); err != nil {
+ http.Error(w, "Fehler beim Parsen des Formulars", http.StatusBadRequest)
+ return
+ }
+
+ // Überprüfen, ob leeres Formular gesendet wurde
+ if len(r.PostForm) == 0 {
+ http.Error(w, "Kein POST-Formular gesendet", http.StatusBadRequest)
+ return
+ }
+
+ // Zugriff auf PostForm-Daten
+ // string mit Wert des Feldes "name"
+ name := r.PostForm.Get("name")
+ // []string mit allen ausgewählten Werten der Checkbox "hobby"
+ hobbies := r.PostForm["hobby"]
+
+ // Ausgabe der Werte
+ fmt.Fprintf(w, "Name: %s\n", name)
+ fmt.Fprintf(w, "Hobbies:\n")
+ for _, h := range hobbies {
+ fmt.Fprintf(w, "- %s\n", h)
+ }
+
+}
+
+func main() {
+ var r formExampleHandler
+ http.ListenAndServe("localhost:8080", r)
+}
diff --git a/web/07/demos/05_encode_json.go b/web/07/demos/05_encode_json.go
new file mode 100644
index 0000000..f336013
--- /dev/null
+++ b/web/07/demos/05_encode_json.go
@@ -0,0 +1,28 @@
+package main
+
+import (
+ "encoding/json"
+ "net/http"
+)
+
+type jsonEncodeHandler int
+
+type User struct {
+ Firstname string `json:"firstname"`
+ Lastname string `json:"lastname"`
+ Age int `json:"age"`
+}
+
+func (jsonHandler jsonEncodeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ mariam := User{
+ Firstname: "Mariam",
+ Lastname: "Okonkwo",
+ Age: 25,
+ }
+ json.NewEncoder(w).Encode(mariam)
+}
+
+func main() {
+ var enc jsonEncodeHandler
+ http.ListenAndServe("localhost:8080", enc)
+}
diff --git a/web/07/demos/06_decode_json.go b/web/07/demos/06_decode_json.go
new file mode 100644
index 0000000..a604cd7
--- /dev/null
+++ b/web/07/demos/06_decode_json.go
@@ -0,0 +1,26 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+)
+
+type jsonDecodeHandler int
+
+type User struct {
+ Firstname string `json:"firstname"`
+ Lastname string `json:"lastname"`
+ Age int `json:"age"`
+}
+
+func (jsonHandler jsonDecodeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ var user User
+ json.NewDecoder(r.Body).Decode(&user)
+ fmt.Fprintf(w, "%s %s is %d years old!", user.Firstname, user.Lastname, user.Age)
+}
+
+func main() {
+ var dec jsonDecodeHandler
+ http.ListenAndServe("localhost:8080", dec)
+}
diff --git a/web/07/demos/post_form.html b/web/07/demos/post_form.html
new file mode 100644
index 0000000..8ad9fa7
--- /dev/null
+++ b/web/07/demos/post_form.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Einfaches Formular für Backend
+
+
+
+
+
+
+
\ No newline at end of file