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 та збирати усі сторінки як конструктор.
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>
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>
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ