Учебники

22) JSP Интервью Q & A

Скачать PDF

1) Объясните JSP и расскажите о его использовании.

JSP расшифровывается как Java Server Pages. Это технология презентационного уровня, независимая от платформы. Он поставляется с платформами SUN J2EE. Они похожи на HTML-страницы, но в них встроены фрагменты кода Java. Они сохраняются с расширением .jsp. Они компилируются с использованием JSP-компилятора в фоновом режиме и генерируют сервлет со страницы.

2) Что требуется от библиотеки тегов?

Коллекция пользовательских тегов называется библиотекой тегов. Повторяющиеся задачи обрабатываются проще и повторно используются в нескольких приложениях для повышения производительности. Они используются дизайнерами веб-приложений, которые фокусируются на презентации, а не на доступе к базе данных или другим сервисам. Некоторые популярные библиотеки — это библиотека тегов String и библиотека отображения Apache.

3) Объясните технологию JSP.

JSP является стандартным расширением Java и определяется поверх расширений сервлета. Его цель — упростить управление и создание динамических веб-страниц. Он не зависит от платформы, безопасен и использует Java в качестве языка сценариев на стороне сервера.

4) Объяснить неявные объекты в JSP.

Объекты, созданные веб-контейнером и содержащие информацию о конкретном запросе, приложении или странице, называются неявными объектами. Они есть :

  • ответ
  • исключение
  • применение
  • запрос
  • сессия
  • страница
  • вне
  • конфиг
  • PageContext

5) Как можно предотвратить многократные отправки из-за нажатия кнопок обновления?

Эту проблему можно решить с помощью шаблона Post / Redirect / Get или PRG.

1) Форма, заполненная пользователем, отправляется на сервер методом POST или GET. Состояние в базе данных и бизнес-модель обновляются.

2) Ответ перенаправления используется для ответа сервлетом на страницу просмотра.

3) Представление загружается браузером с помощью команды GET, и пользовательские данные не отправляются. Это безопасно от нескольких представлений, так как это отдельная страница JSP.

6) Является ли технология JSP расширяемой?

Да, JSP легко расширяется за счет использования и модификации тегов или пользовательских действий, инкапсулированных в библиотеки тегов.

7) Различать response.sendRedirect (url) и <jsp: forward page =…>.

Элемент <jsp.forward> перенаправляет объект запроса из 1 файла JSP в другой. Целевым файлом может быть HTML, сервлет или другой файл JSP, но он должен находиться в том же контексте приложения, что и файл пересылки JSP.

sendRedirect отправляет HTTP-ответ временного перенаправления в браузер. Затем браузер создает новый запрос для перенаправленной страницы. Это убивает переменные сеанса.

8) Можно ли получить доступ к последующему запросу с помощью кода своего сервлета, если атрибут запроса уже отправлен в его JSP?

Запрос выходит из области видимости, поэтому к нему невозможно получить доступ. Однако, если атрибут запроса установлен в своем сервлете, то он может быть доступен в его JSP.

JSP — это компонент на стороне сервера, и страница переводится в сервлет Java, а затем выполняется. В качестве вывода предоставляется только HTML-код.

9) Как включить статические файлы в страницу JSP?

Статические страницы всегда включаются с использованием директивы включения JSP. Таким образом, включение выполняется на этапе перевода один раз. Обратите внимание, что для атрибута файла должен быть указан относительный URL. Хотя статические ресурсы могут быть включены, это не является предпочтительным, поскольку каждый запрос требует включения.

10) Почему у JComponent есть методы add () и remove (), а у Component нет?

JComponent является подклассом контейнера. Он содержит другие компоненты и JComponents.

11) Как можно реализовать потокобезопасную страницу JSP?

Это можно сделать, реализовав их с помощью интерфейса SingleThreadModel. Добавьте директиву <% @ page isThreadSafe = ”false”%> на странице JSP.

12) Как можно предотвратить кэширование вывода страницы JSP или страницы сервлета браузером?

Использование соответствующих атрибутов заголовка HTTP, чтобы браузер не кэшировал вывод динамического содержимого страницей JSP.

13) Как ограничить отображение ошибок страницы на странице JSP?

Установив атрибут «ErrorPage» в каталоге PAGE для имени страницы ошибок на странице JSP, а затем на странице ошибок jsp установите «isErrorpage =» TRUE », ошибки могут быть отключены для отображения.

14) Что такое действия JSP?

Это теги XML, которые направляют сервер на использование существующих компонентов или управляют поведением JSP Engine. Они состоят из типичного префикса «jsp:» и имени действия.

<jsp:include/>
<jsp:getProperty/>	 	
<jsp:forward/>
<jsp:setProperty/>
<jsp:usebean/>
<jsp:plugin/>

15) Различайте <jsp: include page = …> и <% @ include file = …>.

Оба эти тега содержат информацию с одной страницы на другую.

Первый тег действует как вызов функции между двумя Jsp. Он выполняется каждый раз, когда клиент получает доступ к странице клиента. Полезно модулировать веб-приложение. Новый контент включен в вывод.

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

16) Может ли конструктор использоваться вместо init () для инициализации сервлета?

Да, это возможно. Но это не является предпочтительным, поскольку init () был разработан, потому что более ранние версии Java не могли динамически вызывать конструкторы с аргументами. Поэтому они не могли назначить servletConfig. Однако сегодня контейнеры сервлетов все еще вызывают только конструктор без аргументов. Таким образом, нет доступа к servletContext или servletConfig.

17) Объясните методы жизненного цикла. 1)

jsplnit () : контейнер вызывает это для инициализации экземпляра сервлета. Он вызывается только один раз для экземпляра сервлета и предшествует любому другому методу. 2)

_jspService () : контейнер вызывает это для каждого запроса и передает его объектам. 3)

jspDestroy () : он вызывается контейнером непосредственно перед уничтожением экземпляра.

18) Объясните JSP Вывод комментариев?

Это комментарии, которые можно просмотреть в исходном файле HTML.

19) Определить выражение

Тег выражения используется для вставки значений Java непосредственно в вывод. Его синтаксис

<% = Выражение%>

Он содержит выражение языка сценариев, которое оценивается, затем преобразуется в строку, а затем вставляется туда, где выражение содержится в файле JSP.

20) Определить состав.

Композиция имеет более сильную связь с объектом, чем агрегация.

21) Определите JSP Scriptlet.

Это тег JSP, который заключает код Java в страницы JSP. Их синтаксис <%%>. Код, написанный в скриптлете, выполняется каждый раз при запуске программы.

22) Как можно передать информацию из одной JSP в другую JSP?

Тег <Jsp: param> позволяет нам передавать информацию между несколькими Jsp.

23) Объясните использование тега <jsp: usebean>.

<jsp:useBean>

id="beanInstName"

scope= "page | application"

class="ABC.class"  type="ABC.class"

</jsp:useBean>

Этот тег создает экземпляр Java-бина. Сначала он пытается найти, если экземпляр компонента уже существует, и назначить сохраняет ссылку в переменной. Тип также указан; в противном случае он создается из указанного класса, хранящего ссылку в новой переменной.

24) Объясните обработку исключений во время выполнения.

Атрибут errorpage используется для отлова исключений времени выполнения, автоматически перенаправляемых на страницу обработки ошибок.

Он перенаправляет браузер на страницу JSP error.jsp, если при обработке запроса возникает какое-либо необработанное исключение. Это страница обработки ошибок.

25) Почему _jspService () начинается с ‘_’, а другие методы жизненного цикла — нет?

Любой контент, созданный на странице jsp, попадает в метод _jspService () контейнера. Если это переопределение, компилятор выдает ошибку, но другие 2 жизненных цикла могут быть легко переопределены. Так что ‘_’ показывает, что мы не можем переопределить этот метод.

26) Объясните различные значения области видимости для тега <jsp: useBean>.

Тег <jsp: useBean> используется для использования любого объекта java на странице jsp. Некоторые значения области видимости:

1) заявление

2) запрос

3) стр

4) сессия

27) Покажите 2 типа комментариев в JSP.

2 типа:

<%–JSP Comment–%>
<!–HTML comment–>

28) Может ли статический метод быть переопределенным?

Мы можем объявить статические методы с той же сигнатурой в подклассе, но это не считается переопределением, так как не будет никакого полиморфизма во время выполнения. Следовательно, ответ «Нет».

29) Объясните директивы JSP.

Директивы JSP являются сообщениями для JSP Engine. Они служат в качестве сообщения от страницы к контейнеру и контролируют обработку всей страницы. Они могут устанавливать глобальные значения, такие как объявление класса. Они не производят вывод и заключены в <% @ ….%>

30) Объясните директивы pge.

Директивы страницы информируют JSP Engine о заголовках и возможностях, которые страница получает из среды. Он находится вверху всех страниц JSP. Его синтаксис: <% @ page attribute = ”value”>

31) Показать атрибуты директив страницы.

1) Сеанс: показывает, доступны ли данные сеанса на странице.

2) Импорт: показывает импортированные пакеты.

3) isELIgnored: показывает, игнорируются ли выражения EL при преобразовании JSP в сервлет.

4) contentType: позволяет пользователю указать тип содержимого страницы.

32) Что такое директива Включить?

Директива include статически вставляет содержимое ресурса в текущий JSP. Это помогает в повторном использовании кода без дублирования. и включает в себя содержимое файла во время перевода. Его синтаксис выглядит следующим образом: <% @ include file = ”Filename”%>.

33) Что такое стандартные действия в JSP?

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

34) Объясните действие jsp: setProperty.

Он используется для присвоения значений свойствам bean-компонентов, на которые ранее ссылались.

<jsp: useBean id = ”ABC” … />…

<jsp: setProperty name = ”ABC” property = ”myProperty” …

jsp: setproperty выполняется, даже если создан новый компонент или найден существующий компонент.

Добавляя </jsp.useBean> в конце кода, условие для выполнения инвертируется, т.е. оно не выполняется, если был найден существующий объект, и только если был создан новый объект.

35) Определить статический блок.

Он используется для запуска статического члена данных. Выполняется перед загрузкой классов.

36) Объясните действие jsp: плагин.

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

37) Объясните клиентскую и серверную проверку.

Javascript используется для проверки на стороне клиента. Это происходит в браузере. Javascript используется для отправки данных формы, если проверка прошла успешно. Ошибки проверки не требуют дополнительного сетевого отключения, потому что форма не может быть отправлена.

Проверка также выполняется на сервере после отправки. Если проверка не пройдена, требуется дополнительное сетевое отключение для повторной отправки формы клиенту.

38) Что такое фаза перевода?

Механизм JSP преобразует и компилирует файл JSP в сервлет. Этот сервлет переходит на этап выполнения, где обрабатываются запросы и ответы. Они компилируются при первом обращении к ним, если они не были скомпилированы заранее. Ручная или явная компиляция полезна для длинных и запутанных программ.

39) Выполните перенаправление браузера со страницы JSP.

<% response.sendRedirect(URL); %>

или мы можем изменить местоположение атрибута заголовка HTTP следующим образом:

<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader(URL); %>

40) Дайте использование клонирования объектов.

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

41) Как переслать запрос в другой источник.

<jsp:forward page="/Page2.jsp" />

42) Как можно предотвратить автоматическое создание сеанса на странице JSP?

Страница JSP автоматически создает сеансы для запросов. Набрав следующее, этого можно избежать.

<%@ page session=”false”  %>

43) Как можно избежать кода скриптлета в JSP?

JavaBeans или пользовательские теги могут использоваться вместо кода скриптлета.

44) Объясните метод jspDestroy ().

Всякий раз, когда JSP-страница собирается быть уничтоженной, контейнер вызывает метод jspDestroy () из интерфейса javax.servlet.jsp.JspPage. Методы уничтожения сервлетов похожи на это. Его можно легко переопределить для выполнения очистки, например, при закрытии соединения с базой данных.

45) Объясните действие <jsp: param>.

Это действие, используемое со стандартными действиями include или forward. Это помогает в передаче имен параметров и значений в ресурс.

46) Объясните статический метод.

Статический метод относится к классу, а не к объекту класса. Он может быть вызван без экземпляра класса. Статические члены также могут получить доступ к статическим данным и изменить их значение.

47) Как отключить скриптинг?

Сценарии можно легко отключить, установив для сценария-недопустимого элемента дескриптора развертывания значение true. Это подэлемент группы свойств. Это также может быть ложным.

48) Определите декларацию JSP.

Декларация JSP — это теги, используемые при объявлении переменных. Они заключены в тег <%!%>. Они используются при объявлении функций и переменных.

<%@page contentType=”text/html” %>

<html>

<body>

<%!

int a=0;

private int getCount(){

a++;

return a;

}

%>

<p>Values of a are:</p>

<p><%=getCount()%></p>

</body>

</html>

49) Как можно предотвратить кэширование вывода HTML?

<%

response.setHeader("Cache-Control", "no=store");

response.setDateHeader("Expires", 0);

%>

50) Чем JSP лучше технологии Servlet?

JSP — это технология на стороне сервера, которая упрощает генерацию контента. Они ориентированы на документы, а сервлеты — программы. Страница сервера Java может содержать фрагменты программы Java, которые выполняют и создают экземпляры классов Java. Однако они находятся внутри файла шаблона HTML. Он обеспечивает основу для разработки веб-приложения.