Что вы знаете о PageContext и какие преимущества его использования?
Неявный объект JSP - экземпляр класса javax.servlet.jsp.PageContext предоставляет доступ ко всем пространствам имён, ассоциированным с JSP-страницей, а также к различным её атрибутам. Остальные неявные объекты добавляются к pageContext автоматически.
Класс PageContext это абстрактный класс, а его экземпляр можно получить через вызов метода JspFactory.getPageContext(), и освободить через вызов метода JspFactory.releasePageContext().
PageContext обладает следующим набором особенностей и возможностей:
единый API для обслуживания пространств имён различных областей видимости;
несколько удобных API для доступа к различным public-объектам;
механизм получения JspWriter для вывода;
механизм обслуживания использования сессии страницей;
механизм экспонирования («показа») атрибутов директивы page среде скриптинга;
механизмы направления или включения текущего запроса в другие компоненты приложения;
механизм обработки процессов исключений на страницах ошибок errorpage;
Хочешь стать востребованным Java-разработчиком и работать в топовых IT-компаниях Москвы и Санкт-Петербурга? Расходы во время обучение берет на себя Kata Academy (ex Java Mentor), а оплата только после твоего трудоустройства программистом. Гарантия минимальной зарплаты 100 000 рублей на старте.
🙋♂👉 Подать заявку: https://clck.ru/aimfY
Как это работает:
• Ты освоишь востребованные у бизнеса технологии: Java Core, Maven, Git, Tomcat, Spring MVC, Core, Security, Hibernate.
• Опытные наставники будут контролировать усвоение каждой темы.
• Ты пройдешь стажировку в реальном проекте, которая необходима для трудоустройства и получишь строчку в резюме.
• HR-специалисты помогут составить резюме и подготовят тебя к непростым вопросам на собеседовании.
• На всех этапах обучения ты будешь получать мощную поддержку от сообщества студентов.
Каждый наш выпускник получает от трех предложений о работе. Поэтому после успешных собеседований ты самостоятельно выберешь понравившийся проект и начнешь работу.
Java. Professional Guide
Автор: David Mayer (2020)
Узнайте секреты Java, сдайте экзамен и получите самую важную сертификацию в мире. Реальный практический тест с подробными скриншотами, ответами и пояснениями.
Эта книга предназначена для того, чтобы помочь вам освоить наиболее востребованные и критически важные компоненты для получения сертификата Java. Сертификация Java является относительно важным фактором, открывающим новые возможности в вашей профессиональной карьере. Все начинается с доверия. Как только потенциальный работодатель увидит ваше резюме, сертификация Java, без сомнения, привлечет его внимание.
Скачать книгу
#java #english
Какие неявные объекты не доступны в обычной JSP странице?
Неявный объект исключений JSP недоступен в обычных JSP страницах и используется на страницах ошибок JSP (errorpage) только для того, чтобы перехватить исключение, выброшенное JSP страницей и далее предоставить какую-либо полезную информацию клиенту.
Какие неявные, внутренние объекты и методы есть на JSP странице?
JSP implicit objects (неявные объекты) создаются контейнером при конвертации JSP страницы в код сервлета для помощи разработчикам. Эти объекты можно использовать напрямую в скриптлетах для передачи информации в сервис методы, однако мы не можем использовать неявные объекты в JSP Declaration, т.к. такой код пойдет на уровень класса.
Существует 9 видов неявных объектов, которые можно использовать прямо на JSP странице. Семь из них объявлены как локальные переменные в начале _jspService() метода, а два оставшихся могут быть использованы как аргументы метода _jspService().
out Object :
<strong>Current Time is</strong>: <% out.print(new Date()); %><br>
request Object :
<strong>Request User-Agent</strong>: <%=request.getHeader("User-Agent") %><br>
response Object :
<strong>Response</strong>: <%response.addCookie(new Cookie("Test","Value")); %>
config Object :
<strong>User init param value</strong>: <%=config.getInitParameter("User") %><br>
application Object :
<strong>User context param value</strong>: <%=application.getInitParameter("User") %><br>
session Object :
<strong>User Session ID</strong>: <%=session.getId() %><br>
pageContext Object :
<% pageContext.setAttribute("Test", "Test Value"); %>
<strong>PageContext attribute</strong>: {Name="Test",Value="<%=pageContext.getAttribute("Test") %>"}<br>
page Object :
<strong>Generated Servlet Name</strong>: <%=page.getClass().getName() %>
exception Object :
<strong>Exception occured</strong>: <%=exception %><br>
Мечтаете «влететь» в IT? Или вы уже работаете в сфере, хочется стать круче, получать больше, но непонятно как?
Приходите на ТехноДром — Центра запуска и развития карьеры от IBS. Мы помогаем молодым талантам и специалистам из других сфер начать карьеру в IT, а тем, у кого уже есть опыт, сделать рывок в карьере. Для профессионалов, которым хочется прокачаться и опробовать свои силы на масштабных проектах, мы разработали программу «Ускорение».
Почему «Ускорение» - не очередные «курсы для айтишников»?
Мы предоставляем обучение на базе нашей компании а не предлагаем отвлечённые онлайн-уроки. Мы заинтересованы в вашем росте и развитии, чтобы усилить нашу команду.
Мы официально устраиваем на работу с первого дня на «Ускорении». А после завершения программы вас ждёт участие в текущих проектах IBS.
За обучение на «Ускорении» не нужно платить, а также его не нужно совмещать с другой работой.
Вы будете учиться на процессах самых масштабных и передовых IT-проектов страны.
Вас ждёт личный трек обучения, который будет разработан индивидуально в соответствии с вашими навыками и зонами роста.
Вашими наставниками станут ключевые сотрудники компании IBS – ваши будущие коллеги. Наставники заинтересованы в успехе каждого участника и сопровождают вас от старта до финиша программы.
Узнайте больше об «Ускорении» и запишитесь на участие в программе
Пишете на Java или Python и хотите работать в Яндексе?
Тогда приглашаем 22 января на Fast Track для бэкенд-разработчиков. На мероприятии вы можете за один день пройти собеседование и получить оффер в команду HR Tech Яндекса.
HR Tech занимается интранетом Яндекса. Например, это сервисы для процесса найма в Яндекс, учебная платформа Яндекс.Контест и другие сервисы для организации работы сотрудников. Подробнее о команде здесь.
Регистрируйтесь, решайте отборочный тест и до встречи 22 января! Регистрация
Какие области видимости переменных существуют в JSP?
Область видимости объектов определяется тем контекстом, в который помещается данный объект. В зависимости от той или иной области действия так же определяется время существования объекта.
В JSP предусмотрены следующие области действия переменных (объектов):
request область действия запроса - объект будет доступен на текущей JSP странице, странице пересылки (при использовании jsp:forward) или на включаемой странице (при использовании jsp:include);
session область действия сессии - объект будет помещен в сеанс пользователя, будет доступен на всех JSP страницах и будет существовать пока существует сессия пользователя, или он не будет из нее принудительно удален.
application область действия приложения - объект будет доступен для всех пользователей на всех JSP страницах и будет существовать на протяжении всей работы приложения или пока не будет удален принудительно и контекста приложения.
page область действия страницы - объект будет доступен только на той странице, где он определен. На включаемых (jsp:include) и переадресуемых (jsp:forward) страницах данный объект уже не будет доступен.
Таким образом, чтобы объект был доступен всем JSP страницам, необходимо указать область видимости application или session, в зависимости от того требуется ли доступ к объекту всем пользователям или только текущему.
Для указания требуемой области действия при определении объекта на JSP странице используется атрибут scope тега jsp:useBean:
<jsp:useBean id="myBean" class="ru.javacore.MyBean" scope="session"/>
Если не указывать атрибут scope, то по умолчанию задается область видимости страницы page
Каналы от Senior разработчиков
Хотите быстро выучить Java или другой язык программирования? Подписывайтесь на каналы от опытных разработчиков, где они объясняют код и учат программировать.
☕️ Канал Senior Java разработчика:
@seniorjavist
🐍 Канал Python разработчика:
@seniorpythonist
🤖 Канал C++ разработчика:
@seniorcpp
💻 Канал JavaScript разработчика:
@senior_front
📚 Книги от программиста:
@progersbooks
Что вы знаете о действиях JSP (Action tag и JSP Action Elements).Action tag и JSP Action Elements предоставляют методы работы с Java Beans, подключения ресурсов, проброса запросов и создания динамических XML элементов. Такие элементы всегда начинаются с записи jsp: и используются непосредственно внутри страницы JSP без необходимости подключения сторонних библиотек или дополнительных настроек.
Наиболее часто используемыми JSP Action Elements являются:
jsp:include: <jsp:include page="относительный URL" flush="true"/> - подключить файл при запросе страницы. Если необходимо, чтобы файл подключался в процессе трансляции страницы, то используется директива page совместно с атрибутом include;
jsp:useBean: <jsp:useBean att=значение*/> или <jsp:useBean att=значение*>...</jsp:useBean> - найти или создать Java bean;
jsp:setProperty: <jsp:setProperty att=значение*/> - установить свойства Java bean, или явно, или указанием на соответствующее значение, передаваемое при запросе;
jsp:forward: <jsp:forward page="относительный URL"/> - передать запрос другой странице;
jsp:plugin: <jsp:plugin attribute="значение"*>...</jsp:plugin> - сгенерировать (в зависимости от типа браузера) тэги OBJECT или EMBED для апплета, использующего технологию Java Plugin.
Какие существуют основные типы тегов JSP?
Выражение JSP: <%= expression %> - выражение, которое будет обработано с перенаправлением результата на вывод;
Скриплет JSP: <% code %> - код, добавляемый в метод service().
Объявление JSP: <%! code %> - код, добавляемый в тело класса сервлета вне метода service().
Директива JSP page: <%@ page att="value" %> - директивы для контейнера сервлетов с информацией о параметрах.
Директива JSP include: <%@ include file="url" %> - файл в локальной системе, подключаемый при трансляции JSP в сервлет.
Комментарий JSP: <%-- comment --%> - комментарий; игнорируется при трансляции JSP страницы в сервлет.
👨🏻💻 Какова роль архитектора ПО в проектах? 20 декабря в 20:00 пройдет встреча с преподавателем OTUS Станиславом Щетинниковым, директором разработки с 6-летним опытом создания архитектуры систем.
Станислав представит программу онлайн-курса «Microservice Architecture» от OTUS и познакомит с фишками курса, форматом обучения. В конце вебинара у вас будет возможность занять место в группе по спец.цене.
👉🏻 Регистрируйтесь на мероприятие и готовьте свои вопросы эксперту https://otus.pw/pDRq/
Поисковик новостей (RSS), написанный на Java + SQLite
Вы скорее всего подумаете: "Зачем десктопная программа, если можно, как минимум, загуглить?". А затем, что моя программа автоматически "гуглит" за тебя! Причём не только по одному ключевому слову, а по нескольким, которые вы, само собой, можете редактировать. А результат поиска будет направлен на указанную почту, исключая ранее направленные результаты.
https://habr.com/ru/post/595749/
Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream?
Так сделать не получится, т.к. при попытке одновременного вызова getWriter() и getOutputStream() будет выброшено исключение java.lang.IllegalStateException с сообщением, что уже был вызван другой метод.
🔥Айтишник, пора зарабатывать больше, чем DevOps!
— Готовы ли вы к обучению на продвинутом онлайн-курсе «SRE практики и инструменты» от OTUS? Пройдите тест и узнайте сейчас!
👉🏻ПРОЙТИ ТЕСТ НА ЗНАНИЕ SRE: https://otus.pw/WGjH/
📌Хотите протестировать учебный процесс заранее? Регистрируйтесь на бесплатные вебинары:
— «Три слова на три буквы: SLA, SLO, SLI»: https://otus.pw/qIrt/
— «Demo Day курса (знакомство с преподавателем, ответы на вопросы по SRE)»: https://otus.pw/H8zX/