Автор оригинала: Pankaj Kumar.
Вопросы для интервью JSP очень важны, если вы собираетесь на собеседование на Java. JSP является неотъемлемой частью любого веб-приложения Java EE, и в последнее время я много писал о различных функциях в JSP.
Мы начали с основ JSP, сценариев JSP и закончили пользовательскими тегами JSP, чтобы избежать java-кода на страницах JSP. Некоторые из учебных пособий, которые вы могли бы изучить, следующие:
- Учебник по JSP для начинающих
- Неявные объекты JSP
- Директивы JSP
- Обработка исключений JSP
- Теги действий JSP
- JSP EL
- Теги ядра JSTL
- Пользовательские теги JSP
Вопросы для интервью JSP
Здесь я предоставляю некоторые важные вопросы для интервью JSP с ответами, которые помогут вам в интервью. Это хорошие вопросы и ответы для интервью с JSP как для опытных программистов, так и для начинающих.прежде чем вы перейдете к ответам, я бы рекомендовал вам прочитать приведенные выше руководства и попытаться ответить на них самостоятельно и проверить свое понимание JSP.
- Что такое JSP и зачем он нам нужен?
- Каковы этапы жизненного цикла JSP?
- Каковы методы жизненного цикла JSP?
- Какие методы жизненного цикла JSP могут быть переопределены?
- Как мы можем избежать прямого доступа к страницам JSP из клиентского браузера?
- Каковы различные типы комментариев в JSP?
- Что такое сценарий, выражение и объявление в JSP?
- Что такое неявные объекты JSP?
- Можем ли мы использовать неявные объекты JSP в методе, определенном в объявлении JSP?
- Какой неявный объект недоступен на обычных страницах JSP?
- Каковы преимущества неявного объекта PageContext?
- Как мы настраиваем параметры инициализации для JSP?
- Почему использование элементов сценариев в JSP не рекомендуется?
- Можем ли мы определить класс на странице JSP?
- Как мы можем отключить java-код или сценарии на странице JSP?
- Объясните Элементы действия JSP или теги действий?
- В чем разница между директивой include и действием jsp:include?
- Что такое язык выражений JSP и в чем его преимущества?
- Что такое неявные объекты JSP EL и чем они отличаются от неявных объектов JSP?
- Как использовать JSP EL для получения имени метода HTTP?
- Что такое стандартная библиотека тегов JSP, приведите несколько примеров использования?
- Каковы типы тегов JSTL?
- Что такое пользовательский тег JSP и каковы его компоненты?
- Приведите пример, где вам нужен пользовательский тег JSP?
- Почему нам не нужно настраивать стандартные теги JSP в web.xml?
- Как мы можем обрабатывать исключения, создаваемые методом службы JSP?
- Как мы перехватываем исключение и обрабатываем его с помощью JSTL?
- Как мы печатаем “создает новую строку в HTML” в JSP?
- Что такое jsp-конфигурация в дескрипторе развертывания?
- Как игнорировать оценку выражения EL в JSP?
- Когда контейнер инициализирует несколько объектов JSP/сервлетов?
- Можем ли мы использовать JavaScript со страницами JSP?
- Как мы можем предотвратить неявное создание сеанса в JSP?
- В чем разница между JspWriter и Servlet PrintWriter?
- Как мы можем расширить технологию JSP?
- Предоставьте некоторые лучшие практики JSP?
Вопросы и ответы для интервью JSP
Что такое JSP и зачем он нам нужен?
JSP расшифровывается как страницы JavaServer. JSP-это технология java на стороне сервера для создания динамических веб-страниц. JSP-это расширение технологии сервлетов, помогающее разработчикам создавать динамические страницы с синтаксисом, подобным HTML.
Мы также можем создавать пользовательские представления в сервлете, но код станет очень уродливым и подверженным ошибкам. Кроме того, большинство элементов на веб-странице статичны, поэтому страница JSP больше подходит для веб-страниц. Мы должны избегать бизнес-логики на страницах JSP и стараться использовать ее только для целей просмотра. Элементы сценариев JSP можно использовать для написания кода Java на страницах JSP, но лучше избегать их и использовать элементы действий JSP, теги JSTL или пользовательские теги для достижения тех же функций.
Еще одним преимуществом JSP является то, что большинство контейнеров поддерживают горячее развертывание страниц JSP. Просто внесите необходимые изменения на страницу JSP и замените старую страницу обновленной страницей jsp в каталоге развертывания, и контейнер загрузит новую страницу JSP. Нам не нужно компилировать код нашего проекта или перезапускать сервер, в то время как если мы внесем изменения в код сервлета, нам нужно снова создать полный проект и развернуть его. Хотя большинство контейнеров теперь обеспечивают поддержку горячего развертывания приложений, все равно это больше работы, чем страницы JSP.
Каковы этапы жизненного цикла JSP?
Если вы посмотрите на код страницы JSP, он выглядит как HTML и совсем не похож на классы java. На самом деле контейнер JSP заботится о переводе страниц JSP и создании класса сервлетов, который используется в веб-приложении. Этапы жизненного цикла JSP включают:
- Перевод – Контейнер JSP проверяет код страницы JSP и анализирует его для создания исходного кода сервлета. Например, в Tomcat вы найдете сгенерированные файлы классов сервлетов в каталоге TOMCAT/work/Catalina/localhost/WEBAPP/org/apache/jsp . Если имя страницы JSP-home.jsp, обычно генерируемое имя класса сервлета-home_jsp, а имя файла-home_jsp.java
- Компиляция – Контейнер JSP компилирует исходный код класса jsp и создает файл класса на этом этапе.
- Загрузка класса – Контейнер загружает класс в память на этом этапе.
- Создание экземпляра – Контейнер вызывает конструктор без аргументов сгенерированного класса, чтобы загрузить его в память и создать экземпляр.
- Инициализация – Контейнер вызывает метод инициализации объекта класса JSP и инициализирует конфигурацию сервлета с параметрами инициализации, настроенными в дескрипторе развертывания. После этого этапа JSP готова обрабатывать запросы клиентов. Обычно переход от перевода к инициализации JSP происходит при поступлении первого запроса на JSP, но мы можем настроить его для загрузки и инициализации во время развертывания, как сервлеты, используя элемент загрузки при запуске.
- Обработка запросов – Это самый длительный жизненный цикл страницы JSP, и страница JSP обрабатывает запросы клиентов. Обработка многопоточна и похожа на сервлеты, и для каждого запроса создается новый поток, создаются объекты ServletRequest и ServletResponse и вызывается метод службы JSP.
- Уничтожить – Это последняя фаза жизненного цикла JSP, на которой класс JSP выгружается из памяти. Обычно это происходит, когда приложение не развернуто или сервер выключен.
Каковы методы жизненного цикла JSP?
Методы жизненного цикла JSP являются:
- jspInit() : Этот метод объявлен на странице
Jsp
и реализован реализациями контейнеров JSP. Этот метод вызывается один раз в жизненном цикле JSP для его инициализации с помощью параметров конфигурации, настроенных в дескрипторе развертывания. Мы можем переопределить этот метод, используя элемент сценария объявления JSP, чтобы инициализировать любые ресурсы, которые мы хотим использовать на странице JSP. - _jspService() : Это метод JSP, который вызывается контейнером JSP для каждого запроса клиента путем передачи объекта запроса и ответа. Обратите внимание, что имя метода начинается с подчеркивания, чтобы отличить его от других методов жизненного цикла, поскольку мы не можем переопределить этот метод. Весь код JSP входит в этот метод, и по умолчанию он переопределен. Мы не должны пытаться переопределить его с помощью элемента сценария объявления JSP. Этот метод определен в интерфейсе HttpJspPage.
- jspDestroy() : Этот метод вызывается контейнером, когда JSP выгружается из памяти, например, при закрытии приложения или контейнера. Этот метод вызывается только один раз в жизненном цикле JSP, и мы должны переопределить этот метод, чтобы освободить все ресурсы, созданные в методе инициализации JSP.
- jspInit() : Этот метод объявлен на странице
Какие методы жизненного цикла JSP могут быть переопределены?
Мы можем переопределить методы jspInit() и jspDestroy (), используя элемент сценария объявления JSP. Мы должны переопределить методы jspInit() для создания общих ресурсов, которые мы хотели бы использовать в методе службы JSP, и переопределить метод jspDestroy() для освобождения общих ресурсов.
Как мы можем избежать прямого доступа к страницам JSP из клиентского браузера?
Мы знаем, что все, что находится в каталоге WEB-INF, не может быть доступно непосредственно в веб-приложении, поэтому мы можем разместить наши страницы JSP в каталоге WEB-INF, чтобы избежать прямого доступа к странице JSP из клиентского браузера. Но в этом случае нам придется настроить его в дескрипторе развертывания так же, как сервлеты. Пример конфигурации приведен ниже фрагмента кода web.xml файл.
Каковы различные типы комментариев в JSP?
Страницы JSP предоставляют два типа комментариев, которые мы можем использовать:
- HTML-комментарии : Поскольку страницы JSP похожи на HTML, мы можем использовать HTML-комментарии, такие как
. Эти комментарии также отправляются клиенту, и мы можем увидеть их в исходном HTML-коде. Поэтому мы должны избегать любых комментариев на уровне кода или комментариев к отладке с использованием HTML-комментариев.
- Комментарии JSP : Комментарии JSP пишутся с использованием скриптов, таких как
<%-- Комментарий JSP --%>
. Эти комментарии присутствуют в сгенерированном исходном коде сервлета и не отправляются клиенту. Для комментариев к любому уровню кода или информации об отладке мы должны использовать комментарии JSP.
- HTML-комментарии : Поскольку страницы JSP похожи на HTML, мы можем использовать HTML-комментарии, такие как
Что такое сценарий, выражение и объявление в JSP?
Скрипты, выражения и объявления-это элементы сценариев на странице JSP, с помощью которых мы можем добавлять java-код на страницы JSP.
Тег скриптлета начинается с
<%
и заканчивается%>
. Любой код, написанный внутри тегов скриптлета, переходит в метод_jspService ()
. Например;Поскольку в большинстве случаев мы печатаем динамические данные на странице JSP с помощью метода out.print () , для этого существует ярлык с помощью выражений JSP. Выражение JSP начинается с
<%=
и заканчивается%>
.<% out.print("Pankaj"); %>
может быть записано с использованием выражения JSP как<%= "Pankaj" %>
Обратите внимание, что все, что находится между
<%=%>
, отправляется в качестве параметра вout.print()
метод. Также обратите внимание, что скриптлеты могут содержать несколько операторов java и всегда заканчиваются точкой с запятой (;), но выражение не заканчивается точкой с запятой.Объявления JSP используются для объявления методов – членов и переменных класса сервлетов. Объявления JSP начинаются с
<%!
и заканчивается на%>
.Например, мы можем создать переменную int в JSP на уровне класса как
<%! общедоступный статический int; %>
.Что такое неявные объекты JSP?
Неявные объекты JSP создаются контейнером при переводе страницы JSP в исходный код сервлета, чтобы помочь разработчикам. Мы можем использовать эти объекты непосредственно в скриптлетах , которые входят в метод обслуживания, однако мы не можем использовать их в объявлении JSP, потому что этот код будет использоваться на уровне класса.
У нас есть 9 неявных объектов, которые мы можем напрямую использовать на странице JSP. Семь из них объявлены как локальная переменная в начале метода _jspService () , тогда как два из них являются частью аргумента _jsp Service() метода, который мы можем использовать.
- вне Объекта
- объект запроса
- объект ответа
- объект конфигурации
- объект приложения
- объект сеанса
- Объект PageContext
- объект страницы
- объект исключения
- Пример неявных объектов JSP
Можем ли мы использовать неявные объекты JSP в методе, определенном в объявлении JSP?
Нет, мы не можем, потому что неявные объекты JSP являются локальными для метода службы и добавляются контейнером JSP при переводе страницы JSP в исходный код сервлета. Код объявлений JSP выходит за рамки метода службы и используется для создания переменных и методов уровня класса и, следовательно, не может использовать неявные объекты JSP.
Какой неявный объект недоступен на обычных страницах JSP?
Неявный объект исключения JSP недоступен на обычных страницах JSP и используется на страницах ошибок JSP только для перехвата исключения, создаваемого страницами JSP, и предоставления полезного сообщения клиенту.
Каковы преимущества неявного объекта PageContext?
Неявный объект JSP PageContext является экземпляром реализации абстрактного класса javax.servlet.jsp.PageContext. Мы можем использовать PageContext для получения и установки атрибутов с различными областями действия, а также для пересылки запроса на другие ресурсы. Объект PageContext также содержит ссылку на другой неявный объект.
Это единственный объект, который является общим как для неявных объектов JSP, так и для неявных объектов JSP EL.
Как мы настраиваем параметры инициализации для JSP?
Мы можем настроить параметры инициализации для JSP аналогично сервлету в web.xml файл, нам нужно настроить параметры инициализации JSP с сервлетом и элементом сопоставления сервлетов. Единственное, что отличается от сервлета,-это элемент jsp-файла, в котором нам нужно указать местоположение страницы JSP.
Почему использование элементов сценариев в JSP не рекомендуется?
Страницы JSP в основном используются для просмотра, и вся бизнес-логика должна быть в классах сервлетов или моделей. Мы должны передать параметры на страницу JSP через атрибуты, а затем использовать их для создания HTML-ответа на странице JSP.
Большая часть страницы JSP содержит HTML-код, и чтобы помочь веб-дизайнерам легко понять страницу JSP и разработать ее, технология JSP предоставляет элементы действий, JSP EL, библиотеку стандартных тегов JSP и пользовательские теги, которые мы должны использовать, а не элементы сценариев, чтобы преодолеть разрыв между частью JSP HTML и частью JSP java.
Можем ли мы определить класс на странице JSP?
Хотя это не очень хорошая практика, но мы можем определить класс внутри страницы JSP. Ниже приведен пример кода для этого:
Или
Как мы можем отключить java-код или сценарии на странице JSP?
Мы можем отключить элементы сценариев на страницах JSP с помощью конфигурации дескриптора развертывания, как показано ниже.
Приведенный выше URL-шаблон отключит сценарии для всех страниц JSP, но если вы хотите отключить его только для определенной страницы, вы можете указать само имя файла JSP.
Объясните Элементы действия JSP или теги действий?
Элементы действия JSP или теги действий-это HTML-теги, которые предоставляют полезные функции, такие как работа с Java-компонентами, включая ресурс, пересылка запроса и создание динамических XML-элементов. Элементы действия JSP всегда начинаются с jsp: и мы можем использовать их непосредственно на странице JSP без необходимости импортировать какие-либо библиотеки тегов или любые другие изменения конфигурации. Некоторые из важных элементов действия:jsp:useBean, jsp:getProperty, jsp:setProperty, jsp: включить и jsp:вперед.
Подробнее об этом читайте в разделе Элементы действия JSP .
В чем разница между директивой include и действием jsp:include?
Разница между директивой JSP include и действием include заключается в том, что в директиве include содержимое другого ресурса добавляется в сгенерированный код сервлета во время трансляции, тогда как при действии include это происходит во время выполнения.
Другое отличие заключается в том, что в JSP include action мы можем передавать параметры для использования во включенном ресурсе с помощью элемента
jsp:param
action, но в директиве JSP include мы не можем передавать какие-либо параметры.Когда включенный ресурс статичен, такой как верхний, нижний колонтитулы, файлы изображений, мы должны использовать директиву include для повышения производительности, но если включенный ресурс динамичен и требует некоторых параметров для обработки, мы должны использовать тег действия include.
Что такое язык выражений JSP и в чем его преимущества?
В большинстве случаев мы используем JSP для целей просмотра, и вся бизнес-логика присутствует в коде сервлета или классах моделей. Когда мы получаем запрос клиента в сервлете, мы обрабатываем его, а затем добавляем атрибуты в область запроса/сеанса/контекста, которые будут извлечены в коде JSP. Мы также используем параметры запроса, заголовки, файлы cookie и параметры инициализации в JSP для создания представлений ответов.
Мы можем использовать скриптлеты и выражения JSP для извлечения атрибутов и параметров в JSP с помощью кода java и использовать его для просмотра. Но для веб-дизайнеров java-код трудно понять, и именно поэтому в спецификации JSP 2.0 был введен язык выражений (EL), с помощью которого мы можем легко получать атрибуты и параметры, используя HTML, такие как теги.
Синтаксис языка выражений
${name}
, и мы можем использовать неявные объекты EL и операторы EL для извлечения атрибутов из разных областей и использования их на странице JSP.Подробнее о JSP EL с примером программы читайте в JSP EL Tutorial .
Что такое неявные объекты JSP EL и чем они отличаются от неявных объектов JSP?
Язык выражений JSP предоставляет множество неявных объектов, которые мы можем использовать для получения атрибутов из разных областей и значений параметров. Обратите внимание, что они отличаются от неявных объектов JSP и содержат только атрибуты в данной области. Единственным общим неявным объектом в JSP EL и JSP page является объект PageContext.
В таблице ниже приведен список неявных объектов в JSP EL.
Карта Карта Карта Карта Карта Карта Карта Карта Карта Карта Текст страницы Как использовать JSP EL для получения имени метода HTTP?
Мы можем использовать неявный объект PageContext JSP EL для получения ссылки на объект запроса и использовать оператор dot для получения имени метода HTTP на странице JSP. Код JSP EL для этого будет
${PageContext.request.method}
.Что такое стандартная библиотека тегов JSP, приведите несколько примеров использования?
Стандартная библиотека тегов JSP или JSTL более универсальна, чем элементы JSP EL или действия, потому что мы можем перебирать коллекцию или экранировать HTML-теги, чтобы отображать их как текст в ответе.
JSTL является частью API Java EE и входит в большинство контейнеров сервлетов. Но чтобы использовать JSTL на наших страницах JSP, нам нужно загрузить JSTL-банки для вашего контейнера сервлетов. В большинстве случаев вы можете найти их в примерах проектов и использовать их. Вам необходимо включить эти библиотеки в каталог project WEB-INF/lib. Эти банки являются специфичными для контейнеров, например, в Tomcat нам нужно включить jstl.jar и standard.jar файлы jar в пути сборки проекта.
Подробнее о тегах JSTL с примером программы читайте в JSTL Tutorial .
Каковы типы тегов JSTL?
На основе функций JSTL они подразделяются на пять типов.
- Основные теги – Основные теги обеспечивают поддержку итерации, условной логики, исключения перехвата, URL-адреса, прямого или перенаправленного ответа и т.д.
- Теги форматирования и локализации – Эти теги предназначены для форматирования чисел, дат и поддержки i18n с помощью локализаций и пакетов ресурсов.
- Теги SQL – Теги JSTL SQL обеспечивают поддержку взаимодействия с реляционными базами данных, такими как Oracle, MySQL и т.д.
- Теги XML – теги XML используются для работы с XML-документами, такими как анализ XML, преобразование XML-данных и оценка выражений XPath.
- Теги функций JSTL – Теги JSTL предоставляют ряд функций, которые мы можем использовать для выполнения общих операций, большинство из них предназначены для обработки строк, таких как объединение строк, разделение строк и т.д.
Что такое пользовательский тег JSP и каковы его компоненты?
Иногда JSP EL, тегов действий и тегов JSTL недостаточно, и у нас может возникнуть соблазн написать java-код для выполнения некоторых операций на странице JSP. К счастью, JSP расширяется, и мы можем создавать ваши собственные теги для выполнения определенных операций.
Мы можем создавать пользовательские теги JSP со следующими компонентами:
- Обработчик пользовательских тегов JSP
- Создание файла дескриптора библиотеки тегов (TLD)
- Конфигурация дескриптора развертывания для ДВУ
Мы можем добавить пользовательскую библиотеку тегов на страницу JSP с помощью директивы taglib, а затем использовать ее.
Приведите пример, где вам нужен пользовательский тег JSP?
Допустим, мы хотим показать число с форматированием с запятыми и пробелами. Это может быть очень полезно для пользователя, когда номер действительно длинный. Поэтому нам нужны некоторые пользовательские теги, как показано ниже:
<<мои теги:номер формата/>
На основе переданного числа и формата он должен записать отформатированный номер на странице JSP, в приведенном выше примере он должен напечатать 123 456,79
Мы знаем, что JSTL не предоставляет никаких встроенных тегов для достижения этой цели, поэтому мы создадим нашу собственную реализацию пользовательских тегов и будем использовать ее на странице JSP.
Прочитайте приведенный выше пример реализации по адресу Пользовательский тег JSP .
Почему нам не нужно настраивать стандартные теги JSP в web.xml?
Нам не нужно настраивать стандартные теги JSP в web.xml потому что файлы TLD находятся в каталоге META-INF файлов JSTL jar. Когда контейнер загружает веб-приложение и находит файлы TLD в каталоге META-INF файла JAR, он автоматически настраивает их для использования непосредственно на страницах JSP приложения. Все, что нам нужно сделать, это включить его на страницу JSP с помощью директивы taglib.
Как мы можем обрабатывать исключения, создаваемые методом службы JSP?
Для обработки исключений, создаваемых страницей JSP, все, что нам нужно, – это страница ошибок и определение страницы ошибок в JSP с помощью директивы страницы.
Чтобы создать страницу с ошибкой JSP, нам нужно установить значение атрибута директивы страницы isErrorPage равным true, затем мы сможем получить доступ к неявному объекту исключения в JSP и использовать его для отправки клиенту настраиваемого сообщения об ошибке.
Нам нужно определить страницы JSP обработчика исключений и ошибок в дескрипторе развертывания, как показано ниже.
Подробнее с примером программы читайте в Обработка исключений JSP .
Как мы перехватываем исключение и обрабатываем его с помощью JSTL?
Мы можем использовать ключевые теги JSTL c:catch и c:if, чтобы перехватить исключение внутри метода службы JSP и обработать его. c:тег catch улавливает исключение и переносит его в переменную исключения, и мы можем использовать тег условия c:if для его обработки. Ниже приведен фрагмент кода с примером использования.
Обратите внимание на использование JSP EL в условии
c:if
.Как мы печатаем “создает новую строку в HTML” в JSP?
Мы можем использовать атрибут c:out escapeXml для экранирования HTML-элементов, чтобы он отображался в браузере в виде текста, для этого сценария мы напишем код, как показано ниже.
Что такое jsp-конфигурация в дескрипторе развертывания?
элемент jsp-config используется для настройки различных параметров для страниц JSP. Некоторые из его применений:
- Настройка библиотек тегов для веб-приложения, как показано ниже.
- Мы можем управлять элементами сценариев на страницах JSP.
- Мы можем управлять оценкой языка выражений JSP (EL) на страницах JSP.
- Мы можем определить кодировку страницы для шаблона URL.
- Чтобы определить размер буфера, который будет использоваться в объекте JSP page out.
- Чтобы указать, что группа ресурсов, соответствующих шаблону URL, являются документами JSP и, следовательно, должны интерпретироваться как XML-документы.
- Настройка библиотек тегов для веб-приложения, как показано ниже.
Как игнорировать оценку выражения EL в JSP?
Мы можем игнорировать оценку EL на странице JSP двумя способами.
- Использование директивы страницы как
<%@ страница %>
- Настройка в web.xml – лучший подход, когда вы хотите отключить оценку EL для многих страниц JSP.
- Использование директивы страницы как
Когда контейнер инициализирует несколько объектов JSP/сервлетов?
Если у нас есть несколько элементов сервлета и сопоставления сервлетов в дескрипторе развертывания для одного сервлета или страницы JSP, то контейнер инициализирует объект для каждого элемента, и все эти экземпляры будут иметь свой собственный объект ServletConfig и параметры инициализации.
Например, если мы настроим одну страницу JSP в web.xml как показано ниже.
Можем ли мы использовать JavaScript со страницами JSP?
Да, почему бы и нет, я видел, как некоторые разработчики путались с этим. Несмотря на то, что JSP является технологией на стороне сервера, она используется для генерации ответа на стороне клиента, и мы можем добавлять код javascript или CSS, как и любую другую HTML-страницу.
Как мы можем предотвратить неявное создание сеанса в JSP?
По умолчанию страница JSP создает сеанс, но иногда нам не нужен сеанс на странице JSP. Мы можем использовать атрибут сеанса директивы страницы JSP, чтобы указать компилятору не создавать сеанс по умолчанию. Значение по умолчанию равно true, и сеанс создается. Чтобы отключить создание сеанса, мы можем использовать его, как показано ниже.
В чем разница между JspWriter и Servlet PrintWriter?
PrintWriter-это фактический объект, ответственный за написание содержимого в ответе. JspWriter использует объект PrintWriter за сценой и обеспечивает поддержку буфера. Когда буфер заполнен или сброшен, JspWriter использует объект PrintWriter для записи содержимого в ответ.
Как мы можем расширить технологию JSP?
Мы можем расширить технологию JSP с помощью пользовательских тегов, чтобы избежать элементов сценариев и java-кода на страницах JSP.
Предоставьте некоторые лучшие практики JSP?
Некоторые из лучших практик JSP являются:
- Избегайте элементов сценариев на страницах JSP. Если JSP EL, элементы действия и JSTL не удовлетворяют вашим потребностям, создайте пользовательские теги.
- Используйте комментарии правильно, используйте комментарии JSP для уровня кода или для отладки, чтобы они не отправлялись клиенту.
- Избегайте какой-либо бизнес-логики на странице JSP, страницы JSP следует использовать только для генерации ответов для клиента.
- Отключите создание сеанса на странице JSP, где он вам не нужен для повышения производительности.
- Используйте директивы page, taglib в начале страницы JSP для лучшей читаемости.
- Правильное использование директивы jsp include или действия include в зависимости от ваших требований, директива include подходит для статического контента, тогда как действие include подходит для динамического контента и включения ресурсов во время выполнения.
- Правильная обработка исключений с использованием страниц ошибок JSP, чтобы избежать отправки сгенерированного контейнером ответа в случае, если страницы JSP выдают исключение в методе обслуживания.
- Если у вас есть код CSS и JavaScript на страницах JSP, лучше всего разместить их в отдельных файлах и включить в страницу JSP.
- В большинстве случаев JSTL достаточно для наших нужд, если вы найдете сценарий, в котором этого нет, проверьте дизайн своего приложения и попробуйте поместить логику в сервлет, который будет выполнять обработку, а затем устанавливать атрибуты для использования на страницах JSP.
Подробнее о каждом из них читайте в Неявные объекты JSP .
Затем, если мы сможем получить доступ к одной и той же странице JSP с обоими шаблонами URL, и у обоих будут свои собственные значения параметров инициализации.
Пожалуйста, дайте мне знать, если я пропустил какой-либо важный вопрос для собеседования в JSP, в будущем я добавлю больше в список.