MVC, Security, AOP Flashcards Preview

Java Core > MVC, Security, AOP > Flashcards

Flashcards in MVC, Security, AOP Deck (45)
Loading flashcards...
1

Что такое MVC?

схема использования нескольких шаблонов проектирования, с помощью которых модель приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные

2

Что такое Spring MVC?

Это фреймворк который реализует MVC, каркас основанный на HTTP и сервелатах.
-Ясное и прозрачное разделение между слоями в MVC и запросах.
-Стратегия интерфейсов - каждый интерфейс делает только свою часть работы.
- Интерфейс всегда может быть заменен альтернативной реализацией.
-Интерфейсы тесно связаны с Serlet API.
-Высокий уровень абстракции для вебприложения.

3

Что такое DispatcherServlet?

Это сервлет, главная задача которого - принимать входные URL и находить правильную комбинацию обработчиков(контроллеров) и отображать (jsэ, html), которые объединяются в страницу или искомый ресурс.

4

Что такое WebApplicationContext?

"nj расширение обычного ApplicationContext, которое предоставляет конфигурацию для Web приложения и работает с интерфейсом java.servlet.ServletContext

5

Чем отличается WebApplicationContext от ApplicationContext?

ApplicationContext это главный контекст, он может быть только один на все приложение. WebApplicationContext наследуется от ApplicationContext, его может быть несколько в одном приложении. Каждый DispatcherServlet ассоциируется с отдельным WebApplicationContext.

6

Для чего предназначена аннотация @Controller в Spring MVC?

Аннотация @Controller указывает, что данный класс играет роль контроллера. Основная цель аннотации @Controller - назначать шаблон данному классу, показывая его роль. Это значит, что диспетчер будет сканировать Contreller -классы на предмет реализованных методов, проверяя @RequestMapping аннотаций.

7

Для чего предназначена аннотация @RequestMapping в Spring MVC?

Предназначена для маппинга отдельных обработчиков запроса.

8

Как на один метод-контроллер заманит несколько URL используя @RequestMapping?

@ReuqestMapping(value={"", "/", "welcome"}
public String welcomeHandler()
{return("welcome");})

9

Для чего предназначена и где используется аннотация @ModelAttribute в Spring MVC?

@ModelAttribute указывает что параметр играет роль Модели в шаблоне MVC. Это форма хранилища объекта.

10

Что такое @RequestBody в Spring MVC?

@RequestBody - аннотация указывает что параметр метода - это значение тела HTTP запроса.

11

Что такое @ResponseBody в Spring MVC?

@ResponseBody - аннотация указывает что возвращаемое значение - это тело HTTP ответа. То есть ответ нужно записать прямо в тело HTTP сообщения, а не передавать с помощью Model или возвращать имя view.

12

Какие есть конвертеры для тела HTTP запроса в Spring MVC?

ByteArrayHTTPMessageConverter
StringHttpMessageConverter
FormHttpMessageConverter
SourceHttpMessageConverter

13

Для чего предназначена аннотация @PathVariable в SpringMVC?

Обозначает что параметр метода - это переменная в которой будет значение с URL запроса.

14

Чем отличаются теги и ?

декларирует общие аннотации: @required, @Autowired, @PostConstruct.
декларирует аннотации которые используются в контроллерах Spring MVC: @RequestMapping, @Controller, @RequestBody, @ResponseBody

15

Какие есть способы выполнить валидации блинов в Spring MVC?

Использовать стандартные Java EE аннотации (JSR-330) средства: @Size, @NotNull, @Future, @Null, @Pattern.
В классе, экземпляр которого нужно проверить, реализовать интерфейс org.springframework.validation.Validator

16

Что такое Interceptor в Spring MVC?

В Spring MVC есть возможность производить некие действия перед обработкой запроса, сразу после его обработки и перед отправкой ответа клиенту. Все это можно сделать с помощью так называемых Interceptoror'ов.

17

Как сделать свой interceptor?

Наследоваться от одного из следующих классов:
ConversionServiceExplosingInterceptor
HadlerInterceptorAdapter
LocaleChangeInterceptor
ThemeChangeInteceptor
UserRoleAuthorizationInterceptor
WebContentInterceptor
WebRequestHandlerInperceptorAdapter

18

Что такое ViewResolver в Spring MVC?

ViewResolver это интерфейс, который предлагает доступ к jsp, html страницам через имя.

19

Какие вы знаете реализации интерфейса ViewResolver?

XmlViewResolver
ResourseBundleViewResolver
InternalResourseViewResolver

20

Что такое ContextLoaderListener?

Отвесает за загрузку контекста Web-приложения, когда оно начинает работать.

21

Какие аннотации в Spring MVC больше всего подойдут для создания RESTful веб сервиса?

Используя аннотации @RestController: @RestController = @Controller + @ResponseBody

22

Как обрабатывать исключительные ситуации в Spring MVC?

@ExceptionHandler, @ControllerAdvice

23

Что такое Spring Security?

Spring Security это Java/JavaEE framework предоставляющий механизмы построения системы аутентификации и авторизации, а также другие возможности обеспечения безопасности для корпоративных приложений, созданных с помощью Spring Framework.

24

Если в основе Spring MVC лежит сервлет, что лежит в основе Spring Security?

Фильтры и их цепочки.

25

Как получить SecurityContext?

SecurityContextHolder.getContext()

26

C точки зрения многопоточности, каким есть SecurityContextHolder?

SecurityContextHolder использует ThreadLocal для хранения информации,что означает, что контекст безопасности всегда доступен для методов исполняющихся в том же самом потоке, даже если контекст безопасности явно не передается в качестве аргумента этих методов.

27

Что представляет собой интерфейс Authentication, какие у него есть методы?

Authentication представляет пользователя (Principal) с точки зрения Spring Security.
Методы:
getAuthorities()
getCredentials()
getDetails()
getPrincipal()
isAuthenticated()
setAuthenticated(boolean is Authenticated)

28

Что такое GrantedAuthority?

GrantedAuthority отражает разрешения, выданные пользователю в масштабе всего приложения, такие разрешения(как правило называются "роли"), например
ROLE_ANONYMOUS
ROLE_USER
ROLE_ADMIN

29

Что представляет собой интерфейс UserDetails?

UserDetails предоставляет необходимую информацию для построения объекта Authentication из DAO объектов приложения или других источников данных системы безопасности.
Объект UserDetails содержит имя пользователя, пароль, флаги: isAccountNonExpired, isAccountNonLocked, isCredentialsNonExpired, isEnabled и Collection - прав (ролей) пользователя.

30

Что вы знаете про интерфейс UserDetailsService?

Button единственный метод
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
Этот метод должен проводить поиск пользователя (Principle) по его username.
Если такого нет бросает исключение.