2.1 JSP yönergeleri

JSP dosyasının normal bir sunucu uygulamasına dönüştürüldüğünü öğrendiğimize göre, içine normal Java kodu yazabilirsiniz. Ve bu Java kodunda, çeşitli sınıfları kullanabilirsiniz (Örnekten Matematik). Bu daha da iyi! doGet()Ancak tüm kodun bir servlet yöntemine taşındığını görebiliriz . Ve bu hemen birkaç soruyu gündeme getiriyor:

  • Kodun yönteme taşınması için nasıl yapılır doPost()?
  • Yönteme kendi kodunuzu nasıl eklersiniz init()?
  • Sonunda sınıf ithalatı nasıl kaydedilir?

Harika sorular ve elbette bir cevapları var - JSP direktifleri. Bir JSP içindeki tüm HTML olmayan kodlar özel parantezler <%ve %>. Tüm JSP yönergeleri bir şablon tarafından verilir:

<%@ directive %>

En popüler sayfa yönergesi niteliklerinin listesi aşağıdadır:

Örnek Tanım
1 içe aktarmak <%@ page import="java.util.Date" %> Bir sınıfı içe aktarır
2 içerik türü <%@ page contentType=text/html %> ContentType'ı ayarlar
3 uzanır <%@ page extends="Object" %> Temel sınıfı ayarlayabilirsiniz
4 bilgi <%@ page info="Author: Peter Ivanovich; version:1.0" %> getServletInfo() için verileri ayarlar
5 tampon <%@ page buffer="16kb" %> Yanıt arabelleğinin boyutunu ayarlar
6 dil <%@ page language="java" %> Dili belirtir, varsayılan Java'dır
7 isELIgnored <%@ page isELIgnored="true" %> EL betiklerini devre dışı bırakmanıza izin verir
8 isThreadSafe <%@ page isThreadSafe="false" %> threadsafe için puan
9 otomatik Yıkama <%@ page autoFlush="false" %> Tampon yazma işlemlerini yönetir
10 oturum <%@ page session="false" %> Sayfa için oturumu devre dışı bırakabilirsiniz.
on bir sayfaKodlama <%@ page pageEncoding="UTF-8"%> Sayfa kodlamasını ayarlayabilirsiniz
12 hatalı sayfa <%@ page errorPage="errorpage.jsp" %> Bir hata sayfası ayarlayabilirsiniz

2.2 İthalat

Eğlence olsun diye JSP dosyamıza birkaç import ekleyelim ve bir temel sınıf tanımlayalım.

JSP dosyası örneği:


    <%@ page import="java.util.Date" %> 
    <%@ page import="java.lang.Math" %> 
    <%@ page extends="com.codegym.MyHttpServlet" %> 
 
    <html> 
    <body> 
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
    }
    %> 
  </body> 
   </html> 

Ve bundan çıkacak olan şudur:

import java.util.Date;
import java.lang.Math;

public class HelloServlet extends com.codegym.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> You're lucky, user! </h2> <p> (" + num + ")</p> ");
        }
    out.print("</body> ");
    out.print("</html> ");
    }
}

İşler. Harika!