JavaRush /Курсы /JSP & Servlets /Директивы JSP

Директивы JSP

JSP & Servlets
13 уровень , 4 лекция
Открыта

5.1 include

Есть еще несколько волшебных директив, о которых хотелось бы рассказать. Первая такая директива – это директива include. Она позволяет вставить другой файл в то место страницы, где она указана. Общий формат такой директивы имеет вид:


        <%@ include file="url"%>
        

Можно задать не просто файл, а, например, другой jsp-сервлет, или даже url.

Пример:


 <%@ include file="header.jsp"%>
 
    <%
        double num = Math.random();
        if (num > 0.95) {
            out.print(num);
        }
    %> 
 
 <%@ include file="footer.jsp"%>

Можно, например, вынести верхнюю часть всех страниц сайта в header.jsp, а нижнюю – в footer.jsp и собирать все страницы как конструктор.

5.2 forward

Помнишь, что в классических сервлетах есть возможность выполнить redirect или forward на другой url? В JSP это тоже возможно и для этого есть специальное действие. Его вид немного отличается от того, что ты видел раньше:


         <jsp:forward page="url"/>
        

Также есть более продвинутый вариант – с параметрами:


<jsp:forward page="url" >
 <jsp:param name="имя" value="значение"/>
 <jsp:param name="имя" value="значение"/>
 <jsp:param name="имя" value="значение"/>
</jsp:forward>

Пример:


<html>
   <head>
    <title>The Forward Example</title>
   </head>
   <body>
    <center>
        <h2> Forward example </h2>
 <jsp:forward page="login.jsp"/>
    </center>
   </body>
</html>

5.3 Редирект

Для редиректа специальной директивы нет, но можно его выполнить с помощью вызова Java-кода.

Пример:



<body>
 <%
 String redirectURL = "https://javarush.com/";
 response.sendRedirect(redirectURL);
 %>
</body>

Этот пример отправит 302 редирект. Если тебе нужен 301 редирект, то надо написать на пару строк кода больше:



<body>
 <%
 response.setStatus(301);
 response.setHeader("Location", "https://javarush.com/");
 response.setHeader("Connection", "close");
 %>
</body>

Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ислам Уровень 62 Expert
19 февраля 2025
Код 301 в браузере означает, что ресурс перемещён навсегда. Документ уже не используется сервером, а ссылка перенаправляет на другую страницу. Код 302 указывает на временное перемещение запрошенного ресурса. Запрошенный ресурс временно находится под другим адресом.
Кирилл Уровень 111 Expert
17 августа 2023
Status 301 means that the resource (page) is moved permanently to a new location. The client/browser should not attempt to request the original location but use the new location from now on. Status 302 means that the resource is temporarily located somewhere else, and the client/browser should continue requesting the original url.