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!