2.1 JSP-директивтер
JSP-файл кәдімгі сервлетке айналатынын білдік қой, осылайша онда кәдімгі Java-код жазуға болады. Ал бұл Java-кодта әртүрлі кластарды қолдануға болады (мысалы, Math класы). Бұл тіпті жақсы ғой! Бірақ біз барлық код doGet()
әдісіне көшірілгенін көреміз. Бұдан бірден бірнеше сұрақ туындайды:
- Кодты
doPost()
әдісіне қалай көшіруге болады? init()
әдісіне өз кодымды қалай қосамын?- Сонымен қатар кластарды қалай импорттаймыз?
Өте жақсы сұрақтар, және, әрине, оларға жауап бар — JSP-директивтер. JSP ішіндегі барлық HTML емес код арнайы жақшаларға <%
және %>
қоршалған болуы керек. Барлық JSP-директивтер шаблонмен беріледі:
<%@ directive %>
Бет директивасының ең танымал атрибуттарының тізімі төменде:
Мысалы | Сипаттама | ||
---|---|---|---|
1 | import | <%@ page import="java.util.Date" %> |
Классты импорттайды |
2 | contentType | <%@ page contentType=text/html %> |
contentType-ті белгілейді |
3 | extends | <%@ page extends="Object" %> |
Базалық класс белгілеуге болады |
4 | info | <%@ page info="Авторы: Петір Иванович; нұсқасы:1.0" %> |
getServletInfo() үшін деректерді белгілейді |
5 | buffer | <%@ page buffer="16kb" %> |
Жауап буферінің көлемін белгілейді |
6 | language | <%@ page language="java" %> |
Тіл белгілейді, әдетте Java |
7 | isELIgnored | <%@ page isELIgnored="true" %> |
EL скрипттерін өшіруге мүмкіндік береді |
8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
threadsafe анықтайды |
9 | autoFlush | <%@ page autoFlush="false" %> |
Буферге жазуды басқарады |
10 | session | <%@ page session="false" %> |
Бетке сессияны өшіруге болады |
11 | pageEncoding | <%@ page pageEncoding="UTF-8"%> |
Беттің кодировкасін белгілеуге болады |
12 | errorPage | <%@ page errorPage="errorpage.jsp" %> |
Қателер үшін бетті белгілеуге болады |
2.2 Импорттар
Қызық үшін біздің JSP-файлға бірнеше импорттарды қосып, базалық класты белгілейік.
JSP-файл мысалы:
<%@ page import="java.util.Date" %> <%@ page import="java.lang.Math" %> <%@ page extends="com.javarush.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random(); if (num > 0.95) {
%>
<h2>Бақыттысың, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Ал, осылай шығады:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.javarush.MyHttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body> ");
double num = Math.random();
if (num > 0.95) {
out.print("<h2> Бақыттысың, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
Жұмыс істеп тұр. Керемет!
GO TO FULL VERSION