MVC, Security, AOP Flashcards
Что такое MVC?
схема использования нескольких шаблонов проектирования, с помощью которых модель приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные
Что такое Spring MVC?
Это фреймворк который реализует MVC, каркас основанный на HTTP и сервелатах.
- Ясное и прозрачное разделение между слоями в MVC и запросах.
- Стратегия интерфейсов - каждый интерфейс делает только свою часть работы.
- Интерфейс всегда может быть заменен альтернативной реализацией.
- Интерфейсы тесно связаны с Serlet API.
- Высокий уровень абстракции для вебприложения.
Что такое DispatcherServlet?
Это сервлет, главная задача которого - принимать входные URL и находить правильную комбинацию обработчиков(контроллеров) и отображать (jsэ, html), которые объединяются в страницу или искомый ресурс.
Что такое WebApplicationContext?
“nj расширение обычного ApplicationContext, которое предоставляет конфигурацию для Web приложения и работает с интерфейсом java.servlet.ServletContext
Чем отличается WebApplicationContext от ApplicationContext?
ApplicationContext это главный контекст, он может быть только один на все приложение. WebApplicationContext наследуется от ApplicationContext, его может быть несколько в одном приложении. Каждый DispatcherServlet ассоциируется с отдельным WebApplicationContext.
Для чего предназначена аннотация @Controller в Spring MVC?
Аннотация @Controller указывает, что данный класс играет роль контроллера. Основная цель аннотации @Controller - назначать шаблон данному классу, показывая его роль. Это значит, что диспетчер будет сканировать Contreller -классы на предмет реализованных методов, проверяя @RequestMapping аннотаций.
Для чего предназначена аннотация @RequestMapping в Spring MVC?
Предназначена для маппинга отдельных обработчиков запроса.
Как на один метод-контроллер заманит несколько URL используя @RequestMapping?
@ReuqestMapping(value={“”, “/”, “welcome”}
public String welcomeHandler()
{return(“welcome”);})
Для чего предназначена и где используется аннотация @ModelAttribute в Spring MVC?
@ModelAttribute указывает что параметр играет роль Модели в шаблоне MVC. Это форма хранилища объекта.
Что такое @RequestBody в Spring MVC?
@RequestBody - аннотация указывает что параметр метода - это значение тела HTTP запроса.
Что такое @ResponseBody в Spring MVC?
@ResponseBody - аннотация указывает что возвращаемое значение - это тело HTTP ответа. То есть ответ нужно записать прямо в тело HTTP сообщения, а не передавать с помощью Model или возвращать имя view.
Какие есть конвертеры для тела HTTP запроса в Spring MVC?
ByteArrayHTTPMessageConverter
StringHttpMessageConverter
FormHttpMessageConverter
SourceHttpMessageConverter
Для чего предназначена аннотация @PathVariable в SpringMVC?
Обозначает что параметр метода - это переменная в которой будет значение с URL запроса.
Чем отличаются теги и ?
декларирует общие аннотации: @required, @Autowired, @PostConstruct.
декларирует аннотации которые используются в контроллерах Spring MVC: @RequestMapping, @Controller, @RequestBody, @ResponseBody
Какие есть способы выполнить валидации блинов в Spring MVC?
Использовать стандартные Java EE аннотации (JSR-330) средства: @Size, @NotNull, @Future, @Null, @Pattern.
В классе, экземпляр которого нужно проверить, реализовать интерфейс org.springframework.validation.Validator
Что такое Interceptor в Spring MVC?
В Spring MVC есть возможность производить некие действия перед обработкой запроса, сразу после его обработки и перед отправкой ответа клиенту. Все это можно сделать с помощью так называемых Interceptoror’ов.
Как сделать свой interceptor?
Наследоваться от одного из следующих классов: ConversionServiceExplosingInterceptor HadlerInterceptorAdapter LocaleChangeInterceptor ThemeChangeInteceptor UserRoleAuthorizationInterceptor WebContentInterceptor WebRequestHandlerInperceptorAdapter
Что такое ViewResolver в Spring MVC?
ViewResolver это интерфейс, который предлагает доступ к jsp, html страницам через имя.