2.1 JSP direktívák

Mivel rájöttünk, hogy a JSP fájlt normál szervletté alakítják, így normál Java kódot írhat bele. És ebben a Java kódban különféle osztályokat használhat (a példából a matematika). Ez még jobb! De láthatjuk, hogy az összes kód egy doGet()servlet metódusba került. És ez azonnal felvet néhány kérdést:

  • Hogyan lehet úgy csinálni, hogy a kód átkerüljön a metódusba doPost()?
  • Hogyan adhatunk hozzá saját kódot a metódushoz init()?
  • Hogyan kell a végén regisztrálni az osztályimportokat?

Remek kérdések, és természetesen van válaszuk – JSP direktívák. A JSP-n belüli minden nem HTML kódot speciális zárójelekbe <%és zárójelek közé kell tenni %>. Az összes JSP direktívát egy sablon adja meg:

<%@ directive %>

Itt található a legnépszerűbb oldalirányelv attribútumok listája:

Példa Leírás
1 import <%@ page import="java.util.Date" %> Importál egy osztályt
2 tartalom típus <%@ page contentType=text/html %> A contentType beállítása
3 kiterjed <%@ page extends="Object" %> Beállíthatja az alaposztályt
4 info <%@ page info="Author: Peter Ivanovich; version:1.0" %> Beállítja a getServletInfo() adatait
5 puffer <%@ page buffer="16kb" %> Beállítja a válaszpuffer méretét
6 nyelv <%@ page language="java" %> Meghatározza a nyelvet, alapértelmezett a Java
7 figyelmen kívül hagyva <%@ page isELIgnored="true" %> Lehetővé teszi az EL-szkriptek letiltását
8 isThreadSafe <%@ page isThreadSafe="false" %> A szálbiztosra mutat
9 autoFlush <%@ page autoFlush="false" %> Kezeli a puffer írásait
10 ülés <%@ page session="false" %> Letilthatja az oldal munkamenetét
tizenegy oldalKódolás <%@ page pageEncoding="UTF-8"%> Beállíthatja az oldal kódolását
12 hibaoldal <%@ page errorPage="errorpage.jsp" %> Beállíthat egy hibaoldalt

2.2 Import

Adjunk hozzá néhány importot a JSP-fájlunkhoz a szórakozás kedvéért, és határozzunk meg egy alaposztályt.

JSP fájl példa:


    <%@ 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> 

És ez lesz belőle:

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> ");
    }
}

Művek. Nagy!