Неявные объекты JSP
Что такое неявный объект JSP?
- Неявные объекты JSP создаются на этапе трансляции JSP в сервлет.
- Эти объекты можно напрямую использовать в скриптах, входящих в метод службы.
- Они создаются контейнером автоматически, и доступ к ним можно получить с помощью объектов.
Сколько неявных объектов доступно в JSP?
В контейнере доступны 9 типов неявных объектов:
- Вне
- Запрос
- Режимы секции мощности
- Конфиг
- Процесс подачи заявки
- Сессия
- Контекст страницы
- Страница
- Исключение
Давайте изучать один за другим
1) Вышел
- Out — один из неявных объектов для записи данных в буфер и отправки вывода клиенту в ответ.
- Объект Out позволяет нам получить доступ к выходному потоку сервлета.
- Out — объект класса javax.servlet.jsp.jspWriter.
- Во время работы с сервлетнам нужен объект printwriter
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP1</title> </head> <body> <% int num1=10;int num2=20; out.println("num1 is " +num1); out.println("num2 is "+num2); %> </body> </html>
Расшифровка кода:
Строка кода 11-12– out используется для печати в выходной поток
Когда мы выполним приведенный выше код, мы получим следующий вывод:
Вывод:
- На выходе мы получаем значения num1 и num2.
2) Запрос
- Объект запроса является экземпляром java.servlet.http.HttpServletRequest и является одним из аргументов метода службы.
- Он будет создаваться контейнером для каждого запроса.
- Он будет использоваться для запроса такой информации, как параметр, информация заголовка, имя сервера и т. д.
- Он использует getParameter() для доступа к параметру запроса.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Implicit_jsp2.jsp(форма, из которой отправляется запрос в guru.jsp)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru form JSP2</title> </head> <body> <form action="guru.jsp"> <input type="text" name="username"> <input type="submit" value="submit"> </form> </body> </html>
Guru.jsp (где выполняется действие)
Расшифровка кода:
Строка кода 10–13: В implicit_jsp2.jsp(form) отправляется запрос, следовательно, переменная имя пользователя обрабатывается и отправляется в guru.jsp, что является действием JSP.
Гуру.jsp
Строка кода 10–11: Это действие jsp, в котором запрос обрабатывается, а имя пользователя берется из формы jsp.
Когда вы выполните приведенный выше код, вы получите следующий вывод
Вывод:
Когда вы пишете тест и нажимаете кнопку «Отправить», вы получаете следующий вывод «Добро пожаловать тест».
3) Ответ
- «Ответ» — это экземпляр класса, который реализует интерфейс HttpServletResponse.
- Контейнер генерирует этот объект и передает методу _jspservice() в качестве параметра.
- «Объект ответа» будет создаваться контейнером для каждого запроса.
- Он представляет собой ответ, который может быть дан клиенту.
- Неявный объект ответа используется для типа контента, добавления файлов cookie и перенаправления на страницу ответа.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP4</title> </head> <body> <%response.setContentType("text/html"); %> </body> </html>
Расшифровка кода:
Строка кода 11: В объекте ответа мы можем установить тип контента
Здесь мы устанавливаем только тип контента в объекте ответа. Следовательно, для этого нет выхода.
4) Конфигурация
- «Конфигурация» имеет тип java.servlet.servletConfig.
- Он создается контейнером для каждой страницы jsp.
- Он используется для получения параметра инициализации в web.xml.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Web.xml (указывает имя и сопоставление сервлета)
Implicit_jsp5.jsp (получение значения имени сервлета)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP5</title> </head> <body> <% String servletName = config.getServletName(); out.println("Servlet Name is " +servletName);%> </body> </html>
Расшифровка кода:
В web.xml
Строка кода 14–17: В web.xml у нас есть сопоставление сервлетов с классами.
Implicit_jsp5.jsp
Строка кода 10–11: Чтобы получить имя сервлета в JSP, мы можем использовать config.getServletName, который поможет нам получить имя сервлета.
Когда вы выполните приведенный выше код, вы получите следующий результат:
Вывод:
- Имя сервлета — «GuruServlet», так как это имя присутствует в web.xml.
5) Приложение
- Объект приложения (строка кода 10) является экземпляром javax.servlet.ServletContext и используется для получения контекстной информации и атрибутов в JSP.
- Объект приложения создается контейнером по одному для каждого приложения при его развертывании.
- Объект Servletcontext содержит набор методов, которые используются для взаимодействия с контейнером сервлетов. Мы можем найти информацию о контейнере сервлетов.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Implicit JSP6</title> </head> <body> <% application.getContextPath(); %> </body> </html>
Расшифровка кода:
- В приведенном выше коде атрибут приложения помогает получить контекстный путь страницы JSP.
6) Сессия
- Сеанс содержит объект «httpsession» (строка кода 10).
- Объект сеанса используется для получения, установки и удаления атрибутов области сеанса, а также для получения информации о сеансе.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Implicit_jsp7 (атрибут установлен)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit JSP</title> </head> <body> <% session.setAttribute("user","GuruJSP"); %> <a href="implicit_jsp8.jsp">Click here to get user name</a> </body> </html>
Implicit_jsp8.jsp(getAttribute)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>implicit Guru JSP8</title> </head> <body> <% String name = (String)session.getAttribute("user"); out.println("User Name is " +name); %> </body> </html>
Расшифровка кода:
Implicit_jsp7.jsp
Строка кода 11: мы устанавливаем атрибут user в переменной сеанса, и это значение можно получить из сеанса в зависимости от того, какой jsp из него вызывается (_jsp8.jsp).
Строка кода 12: Мы вызываем другой jsp по href, в котором получим значение установленного атрибута user.
Implicit_jsp8.jsp
Строка кода 11: Мы получаем значение атрибута пользователя из объекта сеанса и отображаем это значение.
При выполнении приведенного выше кода вы получите следующий результат:
При нажатии на ссылку для имени пользователя. Вы получите следующий результат.
Вывод:
- Когда мы нажимаем на ссылку, указанную в implicit_jsp7.jsp, мы перенаправляемся на вторую страницу jsp, т. е. страницу (_jsp8.jsp), и получаем значение из объекта сеанса пользовательского атрибута (_jsp7.jsp).
7) Контекст страницы
- Этот объект имеет тип контекста страницы.
- Он используется для получения, установки и удаления атрибутов из определенной области.
Прицелы бывают 4-х типов:
- Страница
- Запрос
- Сессия
- Процесс подачи заявки
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP9</title> </head> <body> <% pageContext.setAttribute("student","gurustudent",pageContext.PAGE_SCOPE); String name = (String)pageContext.getAttribute("student"); out.println("student name is " +name); %> </body> </html>
Расшифровка кода:
Строка кода 11: мы устанавливаем атрибут с помощью объекта pageContext, и он имеет три параметра:
- Основные
- Значение
- Объем
В приведенном выше коде ключ — студент, а значение — «гурустудент», а область — это область страницы. Здесь областью действия является «страница», и она может быть получена только с использованием области страницы.
Строка кода 12: Мы получаем значение атрибута, используя pageContext.
При выполнении приведенного выше кода вы получите следующий результат:
Вывод:
- В выводе будет напечатано «имя студента — гурустудент».
8) Страница
- Неявная переменная страницы содержит текущий исполняемый объект сервлета для соответствующего jsp.
- Действует как этот объект для текущей страницы JSP.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
В этом примере мы используем объект страницы для получения имени страницы с помощью метода toString.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP10</title> </head> <body> <% String pageName = page.toString(); out.println("Page Name is " +pageName);%> </body> </html>
Расшифровка кода:
Строка кода 10–11: В этом примере мы пытаемся использовать метод toString() объекта страницы и пытаемся получить имя строки страницы JSP.
Когда вы выполните код, вы получите следующий результат:
Вывод:
- Вывод представляет собой строковое имя указанной выше страницы jsp.
9) Исключение
- Исключением является неявный объект класса throwable.
- Используется для обработка исключений в JSP.
- Объект исключения можно использовать только на страницах ошибок.Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isErrorPage="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP 11</title> </head> <body> <%int[] num1={1,2,3,4}; out.println(num1[5]);%> <%= exception %> </body> </html>
Расшифровка кода:
Строка кода 10-12 – Он имеет массив чисел, т. е. num1 с четырьмя элементами. В выводе мы пытаемся напечатать пятый элемент массива из числа num1, который не объявлен в списке массива. Таким образом, он используется для получения объекта исключения jsp.
Вывод:
Мы получаем ArrayIndexOfBoundsException в массиве, где мы получаем массив num1 пятого элемента.