Java Servlet API Flashcards
Что такое web приложение?
Это программные модули, которые работает на сервере и предоставляют статический и динамический контент браузеру.
Чем отличается web сервер от сервера приложений?
Web server принимает HTTP запросы от браузера клиента и отправляет ответ в виде HTML(Tomcat)
Сервер приложений это web сервер, но еще предоставляет дополнительные средства такие как менеджмент транзаций, JMS, EJB.
Что такое Java Servlet?
Это приложение Java, запускаемое и выполняемое в контейнере сервера приложений:
- загружается веб-сервером в контейнер
- выполняется на стороне сервера
- обрабатывает запросы клиентов
- принимает запросы от других сервлетов
- динамически генерирует ответы на запросы
Какой интерфейс описывает жизненный цикл сервлета?
javax.servlet.Servlet
Какой класс представляет методы POST и GET протокола HTTP?
HttpServlet
Перечислите методы класса HttpServlet
doDelete() doGet() doHead() doOptions() doPost() doPut() doTrace() getLastModified() service()
Что такое ServletConfig объект?
ServletConfig используется для передачи конфигураций в сервлет.
Каждый сервлет имеет свой собственный ServletConfig.
Может конф игурировать параметры инициализации сервлета
Как получить ServletConfig?
Использовать getServletConfig() метод
Какие способы задания конфигурации сервлета?
Webxml
@WebInitParam
init() метод
Что такое ServletContext?
Это интерфейс, который предоставляет сервлету доступ к параметрам веб приложения.
Сколько ServletContext может быть в одном web приложении?
Только один
Как получить доступ к ServletContext?
Используя метод getServletContext() экземпляра ServletContext.
Как установить параметры в ServletContext?
Используя тег в файле web.xml
Чем отличается ServletConfig от ServletContext?
один на все сервлет и один на приложение init параметры для конкретного сервлета Параметры уровня приложения для всех сервлетов config нельзя добавлять атрибуты context можно добавлять атрибуты
Что такое RequestDispatcher?
Это интерфейс, который используется для перенаправления запроса пользователя на другой ресурс (сервлет, jsp, HTML)
Какие есть два метода в RequestDispatcher?
void forward(ServletRequest request, ServletResponse response) void include(ServletRequest request, ServletResponse response)
Как получить RequestDispatcher?
Используя метод ServletContext:
getRequestDispatcher(String path)
Что такое ServletOutputStream?
Это байтовый поток, предназначенный для записи данных ответа сервлета.
Чем отличаются PrintWriter от ServletOutputStream и как их получить?
PrintWriter - это символьный поток
ServletOutputStream - байтовый
Чтобы получить их, нужно вызвать метод getOutputStream() или getWriter() из объекта ServletResponse
Возможен ли deadlock в серлетах?
Да, возможен. Если одновременно сделать вызвать метод doGet() из метода doPost() и наоборот.
Что такое service() метод в сервлете?
Когда он вызывается?
Когда контейнер сервлетов получает запрос от клиента, он вызывает service() метод, который основываясь на запросе вызывает метод doGet() или doPost()
Как предварительно обработать запросы сервлетов?
Использовать фильтры или листенеры для предварительной обработки запросов.
Почему не рекомендуется переопределять метод service()
service() обрабатывает стандартные запросы HTTP посылая их на методы-обработчики для каждого типа HTTP запроса.
Стоит ли использовать конструктор сервлета для конфигураций сервлета?
Нет, потому что конструктор не будет иметь доступа к экземпляру ServletConfig.
Для начальной конфигурации сервлета нужно использовать метод init()