JSP, JSTL, JPA Flashcards

1
Q

Что такое JSP и для чего он используется?

A

Это серверная технология Java, которая позволяет создавать динамические web страницы. Используется как дополнение к сервлетам и помогает создавать web страницы с HTML подобным синтаксисом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое JSP и для чего он используется?

A

Это серверная технология Java, которая позволяет создавать динамические web страницы. Используется как дополнение к сервлетам и помогает создавать web страницы с HTML подобным синтаксисом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Фазы жизненного цикла у JSP?

A
Translation
Compilation
Class Loading 
Instantiation
Initialization
Request Processing
Destroy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие методы жизненного цикла JSP?

A

jspInit()
_jspService()
jspDestroy()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какие методы из жизненного цикла JSP мы можем переопределить ?

A

jspInit() и jspDestroy()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какие основные теги в JSP?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Что такое JSP implict objects?

A

Это объекты Java, которые JSP контейнер делает доступным для каждой страницы, и их можно вызвать без явного объявления.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Какие есть JSP implict objects?

A
response
exception
application
request
session
page
out
config
pageContext
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какие преимущества использования pageContext?

A

C помощью pageContext можно получать и устанавливать атрибуты с различными областями видимости и отправлять запросы к другим ресурсам, сохранять ссылки на другие implict objects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какие преимущества использования pageContext?

A

C помощью pageContext можно получать и устанавливать атрибуты с различными областями видимости и отправлять запросы к другим ресурсам, сохранять ссылки на другие implict objrects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Фазы жизненного цикла у JSP?

A
Translation
Compilation
Class Loading 
Instantiation
Initialization
Request Processing
Destroy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какие методы жизненного цикла JSP?

A

jspInit()
_jspService()
jspDestroy()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какие методы из жизненного цикла JSP мы можем переопределить ?

A

jspInit() и jspDestroy()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Какие основные теги в JSP?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Что такое JSP implict objects?

A

Это объекты Java, которые JSP контейнер делает доступным для каждой страницы, и их можно вызвать без явного объявления.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Какие есть JSP implict objects?

A
response
exception
application
request
session
page
out
config
pageContext
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Можно ли использовать JSP implict objecys в скриптлете?

A

Нет, потому что объекты будут добавлены JSP контейнером во время трансляции страницы в исходный код сервлета.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Какие преимущества использования pageContext?

A

C помощью pageContext можно получать и устанавливать атрибуты с различными областями видимости и отправлять запросы к другим ресурсам, сохранять ссылки на другие implict objrects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Что такое стандартная библиотека тегов JSP(JSTL)?

A

Это библиотека тегов, которые позволяют контролировать поведение JSP страницы, проводить итерацию в коллекциях, позволяют реализовывать ветвление в логике, интернационализацию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Можно ли отключить выполнение скриптлетов в jsp?

A

true

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Что такое JSP Action Elements(Tags)?

A

Это HTML подобные теги, которые предлагают удобное средство работы в JSP.
Они всегда начинаются с jsp:, для них не нужно подключать библиотеки или конфигурировать дополнительно.

22
Q

Какие вы знаете action elements(tags)?

A

jsp: include
jsp: useBean
jsp: getProperty
jsp: setProperty
jsp: forward
jsp: twxt
jsp: element
jsp: attribute
jsp: body
jsp: plugin

23
Q

Какое отличие между директивами include и jsp:include?

A

динамически добавляются атрибуты во время запроса.
:
статически добавляется атрибут к странице во время трансляции.

24
Q

Что такое JSP Expression Language?

A

Это механизм, который позволяет легко и просто доступиться к атрибутам и параметрам JSP используя синтаксис: ${name}
C объектом name можно делать все что с обычным объектом в java.

25
Q

Каким JSP EL можно получить имя HTTP метода?

A

${pageContext.request.method}

26
Q

Какие есть implict object в JSP EL?

A
pageScope, requestScope, sessionScope, applicationScope
Param, paramValues
header, headerValues
Cookie
initParam
pageContext
27
Q

Какой тип у JSP EL Implict Objects?

A

Map кроме pageContext

28
Q

Что такое стандартная библиотека тегов JSP(JSTL)?

A

Это библиотека тегов, которые позволяют контролировать поведение JSP страницы, проводить итерацию в коллекциях, позволяют реализовывать ветвление в логике, интернационализацию.

29
Q

На какие типы деляться JSTL теги?

A
Core
Форматирование и локализация
SQL теги
XML теги 
Функциональные JSTL теги
30
Q

Какие вы знаете Core теги JSTL?

A
31
Q

Можно ли отключить EL?

A

Можно

32
Q

Как запретить скрытое создание сессии в JSP?

A
33
Q

Как сделать JSP потокобезопасным?

A

интерфейс SingleThreadModel

или

34
Q

Что такое ORM(Object Relational Mapping)?

A

Это маппинг(связывание) таблиц реляционной базы данных и java объектов

35
Q

Что такое JPA?

A

Это средство которое предоставляет средства управления отношениями между объектами и таблицами в базе.

36
Q

Какие реализации JPA вы знаете?

A

Hibernate, JDO, EJB, Toplink

37
Q

Что такое Entity?

A

Это класс, экземпляр которого должен сохранятся в базе. Каждое поле Entity класса это колонка в таблице базы

38
Q

Что такое EntityManager?

A

Это интерфейс, который описывает операциии, проводимые с базой данных, такие как persist, remove, update и так далее.
Entity, которые управляются этим EntityManager будут автоматически распространять изменение своего состояния на базу данных.

39
Q

Зачем использовать JPA вместе Hibernate если можно напрямую работать с Hibernate?

A

JPA это стандарт и это хорошо;
JPA не привязывает Вас к использованию только Hibernate;
Нет специфических деталей Hibernate;

40
Q

Какой жизненный цикл Entity?

A

New / Transient
Managed / Persisted
Detached
Removed

41
Q

Какой метод нужно использовать чтобы инициировать синхронизацию базы и entity?

A

У экземпляра persistanceContext вызвать метод flush()

42
Q

Для чего используется метод merge()?

A

Что бы привести Entity экземпляр к состоянию которое находится в entity manager

43
Q

Какие основные методы есть в интерфейсе EntityManager?

A
clear()
find(entityClass, primaryKey)
flush()
isOpen()
persist(Object entity)
refresh(Object entity)
remove(Object entity)
44
Q

Как в JPA начать и закончить транзакцию?

A

em.getTransaction().begin();
Employee emp = new Employee(158);
em.persist(emp);
em.getTransaction().commit();

45
Q

Что значит @GeneratedValue возле поля id?

A

То что, база сама будет генерировать значения id поля при добавлении данных.

46
Q

Что такое lazy loading?

A

Не делаем загрузку данных без необходимости.

47
Q

Как сделать lazy загрузку поля?

A

Подразумевается отказ от загрузки дополнительных данных, когда в этом нет необходимости. Вместо этого ставится маркер о том что данные не загружены и их надо загрузить в случае, если они понадобятся.
@OneToOne(fetch=LAZY)
private Department department;

48
Q

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

A

Для объявления именованных запросов. Аннотация определяет имя запроса и сам текст запроса в виде диалекта JSQL
@NamedQuery(name=”StudentByLastName”,
query=”SELECT s FROM Student s WHERE s.lastName=:lastName”)
Query query = entityManager.createNamedQuery(“studentByLastName”);
query.setParameter(“lastName”, lastName);
Collection students = query.getResultList();

49
Q

С помощью какой аннотации можно организовать наследование сущностей?

A

Использовать аннотацию

@Inheritence для суперкласса иерархии.

50
Q

Какие есть стратегии генерации id в JPA?

A
Стратегию можно указывать с помощью аннотации:
@GeneratedValue
Стратегии 
AUTO
TABLE
IDENTITY
51
Q

КАК работает стратегия Identity?

A

Зависит от БД
для oracle по умолчанию создается @SequenceGenerator со значениями по умолчанию
Для PostgreSQL столбец SERIAL с именем по умолчанию
Для MySQL создается столбец AUTO_INCREMENT