2.1 JSP-direktivlar
Endi biz bilamizki, JSP-fayl oddiy servletga aylantiriladi, shuning uchun unda oddiy Java-kodni yozish mumkin. Va bu Java-kodda turli xil sinflardan foydalanish mumkin (Masalan, Math). Bu juda zo'r! Ammo biz ko'ramizki, barcha kod servletning doGet() metodiga ko'chirilgan. Va shu yerda bir necha savollar tug'iladi:
- Kodni
doPost()metodiga qanday ko'chirish mumkin? init()metodiga o'z kodimizni qanday qo'shish mumkin?- Va nihoyat sinflarni qanday import qilish mumkin?
Ajoyib savollar va albatta, ularga javob bor — bu JSP-direktivlar. JSP ichidagi barcha non-HTML-kod maxsus qavslar ichiga <% va %> olinishi kerak. Barcha JSP-direktivlar quyidagi shaklda beriladi:
<%@ directive %>
Sahifa direktivasining eng mashhur atributlari ro'yxati:
| Misol | Tavsif | ||
|---|---|---|---|
| 1 | import | <%@ page import="java.util.Date" %> |
Sinfni import qiladi |
| 2 | contentType | <%@ page contentType=text/html %> |
contentType ni belgilaydi |
| 3 | extends | <%@ page extends="Object" %> |
Asosiy sinfni belgilash mumkin |
| 4 | info | <%@ page info="Автор: Пётр Иванович; версия:1.0" %> |
getServletInfo() uchun ma'lumotlar belgilaydi |
| 5 | buffer | <%@ page buffer="16kb" %> |
Javob buferining o'lchamini belgilaydi |
| 6 | language | <%@ page language="java" %> |
Tilni belgilaydi, odatda Java |
| 7 | isELIgnored | <%@ page isELIgnored="true" %> |
EL skriptlarni o'chirish imkonini beradi |
| 8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
threadsafe bo'lib qolishini belgilaydi |
| 9 | autoFlush | <%@ page autoFlush="false" %> |
Buferga yozishni boshqaradi |
| 10 | session | <%@ page session="false" %> |
Sahifa uchun sessionni o'chirish mumkin |
| 11 | pageEncoding | <%@ page pageEncoding="UTF-8"%> |
Sahifa kodlashini belgilash mumkin |
| 12 | errorPage | <%@ page errorPage="errorpage.jsp" %> |
Xatolar uchun sahifani belgilash mumkin |
2.2 Importlar
Keling, qiziqish uchun o'z JSP-faylimizga bir necha import qo'shamiz va asosiy sinfni belgilaymiz.
JSP-faylning namunasi:
<%@ 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>Siz omadlisiz, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Va mana u qanday bo'ladi:
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> Siz omadlisiz, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
Ishlaydi. Zo'r!
GO TO FULL VERSION