Неявные объекты JSP

Что такое неявный объект JSP?

  • Неявные объекты JSP создаются на этапе трансляции JSP в сервлет.
  • Эти объекты можно напрямую использовать в скриптах, входящих в метод службы.
  • Они создаются контейнером автоматически, и доступ к ним можно получить с помощью объектов.

Сколько неявных объектов доступно в JSP?

В контейнере доступны 9 типов неявных объектов:

  1. Вне
  2. Запрос
  3. Режимы секции мощности
  4. Конфиг
  5. Процесс подачи заявки
  6. Сессия
  7. Контекст страницы
  8. Страница
  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 используется для печати в выходной поток

Когда мы выполним приведенный выше код, мы получим следующий вывод:

Выход в JSP

Вывод:

  • На выходе мы получаем значения 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 (где выполняется действие)

Запрос в JSP

Расшифровка кода:

Строка кода 10–13: В implicit_jsp2.jsp(form) отправляется запрос, следовательно, переменная имя пользователя обрабатывается и отправляется в guru.jsp, что является действием JSP.

Гуру.jsp

Строка кода 10–11: Это действие jsp, в котором запрос обрабатывается, а имя пользователя берется из формы jsp.

Когда вы выполните приведенный выше код, вы получите следующий вывод

Вывод:

Запрос в 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 (указывает имя и сопоставление сервлета)

Конфигурация в JSP

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, который поможет нам получить имя сервлета.

Когда вы выполните приведенный выше код, вы получите следующий результат:

Ответ в JSP

Вывод:

  • Имя сервлета — «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: Мы получаем значение атрибута пользователя из объекта сеанса и отображаем это значение.

При выполнении приведенного выше кода вы получите следующий результат:

Сессия в JSP

При нажатии на ссылку для имени пользователя. Вы получите следующий результат.

Сессия в JSP

Вывод:

  • Когда мы нажимаем на ссылку, указанную в 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.

При выполнении приведенного выше кода вы получите следующий результат:

Контекст страницы в JSP

Вывод:

  • В выводе будет напечатано «имя студента — гурустудент».

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

Вывод:

  • Вывод представляет собой строковое имя указанной выше страницы 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.

Вывод:

Исключение в JSP

Мы получаем ArrayIndexOfBoundsException в массиве, где мы получаем массив num1 пятого элемента.