5.1 obejmuje
Jest jeszcze kilka magicznych dyrektyw, o których chciałbym porozmawiać. Pierwszą taką dyrektywą jest dyrektywa include . Pozwala wstawić inny plik w miejsce strony, gdzie jest to wskazane. Ogólny format takiej dyrektywy to:
<%@ include file="url"%>
Możesz określić nie tylko plik, ale na przykład inny serwlet jsp, a nawet adres URL.
Przykład:
<%@ include file="header.jsp"%>
<%
double num = Math.random();
if (num > 0.95) {
out.print(num);
}
%>
<%@ include file="footer.jsp"%>
Możesz np. umieścić górną część wszystkich stron serwisu w header.jsp, a dolną w footer.jsp i zebrać wszystkie strony jako konstruktor.
5,2 do przodu
Pamiętasz, że klasyczne serwlety mają możliwość przekierowania lub przekazania do innego adresu URL? W JSP jest to również możliwe i jest na to specjalna akcja. Jego wygląd różni się nieco od tego, co widzieliście wcześniej:
<jsp:forward page="url"/>
Jest też opcja bardziej zaawansowana - z parametrami:
<jsp:forward page="url" >
<jsp:param name="Name" value="meaning"/>
<jsp:param name="Name" value="meaning"/>
<jsp:param name="Name" value="meaning"/>
</jsp:forward>
Przykład:
<html>
<head>
<title>The Forward Example</title>
</head>
<body>
<center>
<h2> Forward example </h2>
<jsp:forward page="login.jsp"/>
</center>
</body>
</html>
5.3 Przekierowanie
Nie ma specjalnej dyrektywy dotyczącej przekierowania, ale można to zrobić, wywołując kod Java.
Przykład:
<body>
<%
String redirectURL = "https://codegym.cc/";
response.sendRedirect(redirectURL);
%>
</body>
Ten przykład wyśle 302
przekierowanie. Jeśli potrzebujesz 301
przekierowania, musisz napisać jeszcze kilka linijek kodu:
<body>
<%
response.setStatus(301);
response.setHeader("Location", "https://codegym.cc/");
response.setHeader("Connection", "close");
%>
</body>