Kontaktformular erstellen mit Spring boot mvc: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
// via Wikitext Extension for VSCode
 
// via Wikitext Extension for VSCode
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Kontaktformular erstellen mit Spring boot mvc
==Kontaktformular erstellen mit Spring boot mvc==
===Spring boot Starter===
* Spring Web Starter
* Thymeleaf
* Spring Boot DevTools
* Spring Data JPA Starter
* H2 Database
* Spring Security Starter
* Validation Starter
* Spring Boot session
===Projektstruktur===
* src
** main
*** java
**** com.example.demo
***** controller
****** HomeController.java
***** model
****** Contact.java
***** repository
****** ContactRepository.java
***** service
****** ContactService.java
***** DemoApplication.java
*** resources
**** static
***** css
****** style.css
**** templates
***** contact.html
***** index.html
***** login.html
***** register.html
***** welcome.html
**** application.properties
==Roadmap==
* Erstellen Sie ein neues Spring Boot-Projekt
* Fügen Sie die Abhängigkeiten hinzu
* Konfigurieren Sie die Datenbank
* Erstellen Sie das Modell
* Erstellen Sie das Repository
* Erstellen Sie den Service
* Erstellen Sie den Controller
* Erstellen Sie die Ansichten
* Konfigurieren Sie die Sicherheit
* Testen Sie die Anwendung
==Konfigurieren Sie die Datenbank h2==
* application.properties
<pre>
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/h2
</pre>


In diesem Tutorial werden wir ein Kontaktformular erstellen, das die Eingabe von Benutzern entgegennimmt und die Daten in der Datenbank speichert. Wir werden auch die Validierung der Benutzereingaben implementieren.
==Konfigration erstellen Security==
Konfigration erstellen Security


== Schritt 1: Erstellen Sie ein neues Spring Boot-Projekt==
<pre>


Erstellen Sie ein neues Spring Boot-Projekt mit dem Spring Initializr. Fügen Sie die folgenden Abhängigkeiten hinzu:
@Configuration
@EnableWebSecurity
public class SecurityConfig {


* Spring Web
    @Bean
* Thymeleaf
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests((authz) -> authz
                .requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
               
                .requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
                .anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
            )
            .formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
        return http.build();
    }


== Schritt 2: Erstellen Sie das Kontaktformular==
     @Bean
 
     public UserDetailsService userDetailsService() {
Erstellen Sie eine neue HTML-Datei namens `contact.html` im `src/main/resources/templates` Verzeichnis. Fügen Sie den folgenden Code hinzu:
         UserDetails user = User.withDefaultPasswordEncoder()
 
            .username("Test")
<pre>
            .password("Test")
<!DOCTYPE html>
            .roles("USER")
<html xmlns:th="http://www.thymeleaf.org">
            .build();
<head>
         return new InMemoryUserDetailsManager(user);
     <title>Kontaktformular</title>
    }
</head>
}
<body>
     <h1>Kontaktformular</h1>
    <form action="#" th:action="@{/submit}" th:object="${contact}" method="post">
         <label for="name">Name:</label>
        <input type="text" id="name" th:field="*{name}" />
        <br/>
        <label for="email">Email:</label>
        <input type="email" id="email" th:field="*{email}" />
        <br/>
         <label for="message">Nachricht:</label>
        <textarea id="message" th:field="*{message}"></textarea>
        <br/>
        <button type="submit">Absenden</button>
    </form>


</pre>
</pre>

Aktuelle Version vom 18. Dezember 2024, 05:32 Uhr

Kontaktformular erstellen mit Spring boot mvc

Spring boot Starter

  • Spring Web Starter
  • Thymeleaf
  • Spring Boot DevTools
  • Spring Data JPA Starter
  • H2 Database
  • Spring Security Starter
  • Validation Starter
  • Spring Boot session

Projektstruktur

  • src
    • main
      • java
        • com.example.demo
          • controller
            • HomeController.java
          • model
            • Contact.java
          • repository
            • ContactRepository.java
          • service
            • ContactService.java
          • DemoApplication.java
      • resources
        • static
          • css
            • style.css
        • templates
          • contact.html
          • index.html
          • login.html
          • register.html
          • welcome.html
        • application.properties

Roadmap

  • Erstellen Sie ein neues Spring Boot-Projekt
  • Fügen Sie die Abhängigkeiten hinzu
  • Konfigurieren Sie die Datenbank
  • Erstellen Sie das Modell
  • Erstellen Sie das Repository
  • Erstellen Sie den Service
  • Erstellen Sie den Controller
  • Erstellen Sie die Ansichten
  • Konfigurieren Sie die Sicherheit
  • Testen Sie die Anwendung

Konfigurieren Sie die Datenbank h2

  • application.properties
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/h2

Konfigration erstellen Security

Konfigration erstellen Security


@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests((authz) -> authz
                .requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
                
                .requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
                .anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
            )
            .formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails user = User.withDefaultPasswordEncoder()
            .username("Test")
            .password("Test")
            .roles("USER")
            .build();
        return new InMemoryUserDetailsManager(user);
    }
}