Spring WebMVC

Spring WebMVC

Dependencies

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>4.0.4</version>
    </dependency>
</dependencies>

Servlet Container Spring

Servlet container Spring

DispatcherServlet

  • Реализация паттерна FrontController

  • Точка входа в приложение

  • Перенаправляет пользовательские запросы на зарегистрированные в системе контроллеры

Request lifecycle

Request lifecycle

ViewResolver

  • Компонент Spring MVC, необходимый для определения расположения необходимого view по его имени

  • Пример:

    • имя viewregistration

    • расположение – /WEB-INF/jsp/registration.jsp

Инициализация приложения

public class WebApplicationInitializer
        extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

Инициализация приложения

@Configuration
@ComponentScan(basePackages = "com.rakovets.course.java.spring.webmvc.controller")
@EnableWebMvc
public class WebConfig {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/jsp/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setExposeContextBeansAsAttributes(true);
        return viewResolver;
    }
}

Exception Handling

Exception Handling

Exception Handling