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
Классикалык сервлеттерде башка urlге redirect же forward жасоо мүмкүнчүлүгүн эсинде барбы? 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 Redirect
Redirect үчүн атайын директива жок, бирок аны Java-кодду колдонуунун жардамы менен аткарса болот.
Мисал:
<body>
<%
String redirectURL = "https://javarush.com/";
response.sendRedirect(redirectURL);
%>
</body>
Бул мисал 302
redirect жөнөтөт. Эгерде сага 301
redirect керек болсо, анда бир аз код жазуу керек:
<body>
<%
response.setStatus(301);
response.setHeader("Location", "https://javarush.com/");
response.setHeader("Connection", "close");
%>
</body>
GO TO FULL VERSION