|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
JSTL xml
Используется для обработки данных XML в JSP-документе. <% @taglib uri=”http://java.sun.com/jstl/xml” prefix=”x” %> – для обычной JSP-страницы, <jsp:root version=”1.2” xmlns:x= ”http://java.sun.com/jstl/xml”>...</jsp:root> – для XML формата JSP. Теги: <x:forEach> - XML-версия тега <c:choose>; <x:choose> - XML-версия тега <c:forEach>; <x:if> - XML-версия тега <c:if>; <x:otherwise> - XML-версия тега <c:otherwise>; <x:out> - XML-версия тега <c:out>; <x:param> - XML-версия тега <c:param>, определяющая параметры для другого тега <x:transform>; <x:parse> - разбор XML-документа; <x:set> - XML-версия тега <c:set>; <x:transform> - трансформация XML-документа; <x:when> - XML-версия тега <c:when>; <x:choose> - XML-версия тега <c:choose>; <x:forEach> - XML-версия тега <c:forEach>. Включение ресурсов В реальных проектах JSP-страницы часто состоят из статических элементов. Для этого используется директива include, а файл, содержащий необходимый статичный элемент, сохраняется с расширением .jspf, что означает «фрагмент JSP». При необходимости включения содержимого в JSP-страницу каждый раз, когда та получает запрос, используется стандартное действие jsp:include. В этом случае включаемые сегменты имеют доступ к объектам request, session и applicatio n исходной страницы и ко всем атрибутам, которые имеют эти объекты. Если использовать директиву include, то изменения включаемого сегмента отразятся только после изменения исходной страницы (контейнер JSP перекомпилирует исходную страницу). Для включения содержимого в JSP-документ также используется стандартное действие jsp:include. При этом не обязательно, чтобы включаемый JSP-фрагмент был правильным XML-документом. Главное, чтобы он возвращал текст в виде правильного XML и не нарушал структуру исходного JSP-документа. <!--пример #15: включение в код статического содержимого: incl_title.jspx --> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0"> <jsp:directive.page contentType= "text/html; charset=Utf-8" /> <html><head> <jsp:directive.include file="\WEB-INF\jspf\title.jspf" /> </head> <body> <h1>JSP-страница, использующая директиву include</h1> <h3>Директива include используется для включения статического содержимого, например заголовка страницы.</h3> </body></html> </jsp:root> <!-- пример # 16: код включаемого фрагмента: title.jspf --> <title>Title from title.jspf</title> Ниже приведен пример включения динамического содержимого. Включаемый фрагмент получает данные из объектов request и session. Для передачи значения параметра можно использовать строку запроса. Запрос может выглядеть следующим образом: http://localhost:8082/home/thanks.jspx?lname=username. Установка кодировки в фрагменте необходима для того, чтобы устранить неполадки при включении русского текста. <!-- пример # 17: использование действия include для динамического включения: thanks.jspx --> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> <jsp:directive.page contentType="text/html;charset=Utf-8"/> <html><head><title>Действие include</title></head> <body> Данные, сформированные динамически при включении jsp-фрагмента<br/> Включаемый фрагмент получает данные из объекта session <br/> <jsp:include page="\WEB-INF\jspf\params.jsp"/>. </body></html> </jsp:root> <!-- пример #18: включаемый фрагмент: params.jsp --> <jsp:directive.page contentType="text/html;charset=Utf-8"/> ID сессии - <jsp:expression>session.getId()</jsp:expression> В результате работы документа в браузер будет выведено: Данные, сформированные динамически при включении jsp-фрагмента. Также для включения содержимого можно использовать тег <c:import>. Его использование уже было приведено выше. Обработка ошибок При выполнении web-приложений, как и любых других, могут возникать ошибки и исключительные ситуации. Три основных типа исключительных ситуаций: - код «404 Not Found». Возникает при неправильном наборе адреса или обращении к станице, которой не существует; - код «500 Internal Server Error». Возникает при вызове сервлетом метода sendError(500) для объекта HttpServletResponse; - исключения времени исполнения. Исключения, генерируемые web-приложением и не перехватываемые фильтром, сервлетом или JSP. Для обработки исключений в зависимости от типа в приложении может существовать несколько JSP-страниц, сервлетов или обычных HTML-страниц. Для настройки соответствия ошибок и обработчиков используется элемент error-page файла web.xml. Например: <error-page> <error-code>404</error-code> <location>/error404</location> </error-page> или <error-page> <exception-type>java.io.IOException</exception-type> <location>/errorIo</location> </error-page> В элементе error-code указывается код ошибки, в элементе exception-type – тип исключения. Для указания страницы, обрабатывающей ошибки, возникающие при выполнении текущей страницы, можно использовать директиву <jsp:directive.page errorPage="path" />, где path – эту путь к странице-обработчику. Ниже приведен пример, использующий именно такой способ. При нажатии на кнопку генерируется ошибка java.lang.NullPointerException, и управление передается странице error_hand.jsp <!--пример # 19: генерация ошибки: gen_error.jspx --> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0"> <jsp:directive.page contentType= "text/html; charset=Utf-8"/> <jsp:directive.page errorPage="/error_hand.jspx" /> <html><head><title>Генерация исключения</title></head> <body> <h2>При нажатии кнопки будет сгенерирована ошибка!</h2> <form> <input type="submit" name="gen" value="Сгенерировать ошибку"/> </form> <c:if test="${not emptyparam.gen}"> <jsp:declaration>String str;</jsp:declaration> <jsp:scriptlet>str.length();</jsp:scriptlet> </c:if> </body></html> </jsp:root> Страница, вызываемая при ошибках, может иметь статический вид, но при необходимости сообщает о типе и месте возникшего исключения в понятной для клиента приложения форме. <!--пример # 20: ERROR PAGE: error_hand.jspx --> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> <jsp:directive.page contentType= "text/html; charset=Utf-8" /> <jsp:directive.page isErrorPage="true" /> <html><head><title>Сообщение об ошибке</title></head> <body> <p>Сгенерирована ошибка! <br/> <jsp:expression>exception.toString()</jsp:expression> </p></body></html> </jsp:root> Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.012 сек.) |