Java Servlet API Flashcards Preview

Java Core > Java Servlet API > Flashcards

Flashcards in Java Servlet API Deck (49)
Loading flashcards...
1

Что такое web приложение?

Это программные модули, которые работает на сервере и предоставляют статический и динамический контент браузеру.

2

Чем отличается web сервер от сервера приложений?

Web server принимает HTTP запросы от браузера клиента и отправляет ответ в виде HTML(Tomcat)
Сервер приложений это web сервер, но еще предоставляет дополнительные средства такие как менеджмент транзаций, JMS, EJB.

3

Что такое Java Servlet?

Это приложение Java, запускаемое и выполняемое в контейнере сервера приложений:
-загружается веб-сервером в контейнер
-выполняется на стороне сервера
-обрабатывает запросы клиентов
-принимает запросы от других сервлетов
-динамически генерирует ответы на запросы

4

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

javax.servlet.Servlet

5

Какой класс представляет методы POST и GET протокола HTTP?

HttpServlet

6

Перечислите методы класса HttpServlet

doDelete()
doGet()
doHead()
doOptions()
doPost()
doPut()
doTrace()
getLastModified()
service()

7

Что такое ServletConfig объект?

ServletConfig используется для передачи конфигураций в сервлет.
Каждый сервлет имеет свой собственный ServletConfig.
Может конф игурировать параметры инициализации сервлета

8

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

Использовать getServletConfig() метод

9

Какие способы задания конфигурации сервлета?

Webxml
@WebInitParam
init() метод

10

Что такое ServletContext?

Это интерфейс, который предоставляет сервлету доступ к параметрам веб приложения.

11

Сколько ServletContext может быть в одном web приложении?

Только один

12

Как получить доступ к ServletContext?

Используя метод getServletContext() экземпляра ServletContext.

13

Как установить параметры в ServletContext?

Используя тег в файле web.xml

14

Чем отличается ServletConfig от ServletContext?

один на все сервлет и один на приложение
init параметры для конкретного сервлета
Параметры уровня приложения для всех сервлетов
config нельзя добавлять атрибуты
context можно добавлять атрибуты

15

Что такое RequestDispatcher?

Это интерфейс, который используется для перенаправления запроса пользователя на другой ресурс (сервлет, jsp, HTML)

16

Какие есть два метода в RequestDispatcher?

void forward(ServletRequest request, ServletResponse response)
void include(ServletRequest request, ServletResponse response)

17

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

Используя метод ServletContext:
getRequestDispatcher(String path)

18

Что такое ServletOutputStream?

Это байтовый поток, предназначенный для записи данных ответа сервлета.

19

Чем отличаются PrintWriter от ServletOutputStream и как их получить?

PrintWriter - это символьный поток
ServletOutputStream - байтовый
Чтобы получить их, нужно вызвать метод getOutputStream() или getWriter() из объекта ServletResponse

20

Возможен ли deadlock в серлетах?

Да, возможен. Если одновременно сделать вызвать метод doGet() из метода doPost() и наоборот.

21

Что такое service() метод в сервлете?
Когда он вызывается?

Когда контейнер сервлетов получает запрос от клиента, он вызывает service() метод, который основываясь на запросе вызывает метод doGet() или doPost()

22

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

Использовать фильтры или листенеры для предварительной обработки запросов.

23

Почему не рекомендуется переопределять метод service()

service() обрабатывает стандартные запросы HTTP посылая их на методы-обработчики для каждого типа HTTP запроса.

24

Стоит ли использовать конструктор сервлета для конфигураций сервлета?

Нет, потому что конструктор не будет иметь доступа к экземпляру ServletConfig.
Для начальной конфигурации сервлета нужно использовать метод init()

25

Чем отличает GenericServlet и HttpServlet?

GenericServlet - протокол-независимая реализация сервлетов, когда HttpServlet - использует HTTP протокол для коммуникации.
HttpServlet наследует от GenericServlet и переопределяет некоторые методы, специфические для HTTP протокола.

26

Реализация каких методов сервлетов должны быть потокобезопасными?

Init(), destroy вызываются всего один раз за жизненный цикл сервлета, их можно не синхронизировать.
doGet(), doPost() - эти методы вызываются при каждом запросе клиента, и должны быть потокобезопасными.

27

Какие есть области видимости атрибутов сервлетов?

Request
Session
Application

28

Что делает метод sendRedirect() из класса ServletResponse?

перенаправляет запрос другому приложению, используя конкретный URL.

29

Чем отличается sendRedirect() от forward()?

RequestDispatcher forward() используется для перенаправления запроса другому ресурсу, когда ServletRespose sendRedirect() это двухшаговый процесс. Сначала web приложение возвращает код 302(redirect) с URL для посылки запроса.
forward обрабатывается сервлетом, а sendRedirect браузером.

30

Почему класс HttpServlet объявлен как absract?

Потому что реализуется паттерн шаблонный метод.
Методы doXxx() имеют default реализацию, которая возвращает 405 Method not implemented ошибку.
Если методы doXxx() были бы абстрактные, пользователю нужно было бы раелизовать их все, а не те, которые нужно.