2.1 Directive JSP
Deoarece am aflat că fișierul JSP este convertit într-un servlet obișnuit, atunci puteți scrie cod Java normal în el. Și în acest cod Java, puteți folosi diverse clase (Matematică din exemplu). Asta e chiar mai bine! Dar putem vedea că tot codul a fost mutat într-o doGet()
metodă servlet. Și acest lucru ridică imediat câteva întrebări:
- Cum se face ca codul să fie mutat în metodă
doPost()
? - Cum să adăugați propriul cod la metodă
init()
? - Cum se înregistrează până la urmă importurile de clasă?
Întrebări grozave și, desigur, au un răspuns - directive JSP. Toate codurile non-HTML dintr-un JSP trebuie incluse între paranteze speciale <%
și %>
. Toate directivele JSP sunt date de un șablon:
<%@ directive %>
Iată o listă cu cele mai populare atribute ale directivei de pagină:
Exemplu | Descriere | ||
---|---|---|---|
1 | import | <%@ page import="java.util.Date" %> |
Importă o clasă |
2 | tipul de conținut | <%@ page contentType=text/html %> |
Setează contentType |
3 | se extinde | <%@ page extends="Object" %> |
Puteți seta clasa de bază |
4 | info | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
Setează datele pentru getServletInfo() |
5 | tampon | <%@ page buffer="16kb" %> |
Setează dimensiunea tamponului de răspuns |
6 | limba | <%@ page language="java" %> |
Specifică limba, implicit este Java |
7 | este ELIgnorat | <%@ page isELIgnored="true" %> |
Vă permite să dezactivați scripturile EL |
8 | este ThreadSafe | <%@ page isThreadSafe="false" %> |
Indică firesafe |
9 | autoFlush | <%@ page autoFlush="false" %> |
Gestionează scrierile în buffer |
10 | sesiune | <%@ page session="false" %> |
Puteți dezactiva sesiunea pentru pagină |
unsprezece | codificarea paginii | <%@ page pageEncoding="UTF-8"%> |
Puteți seta codarea paginii |
12 | errorPage | <%@ page errorPage="errorpage.jsp" %> |
Puteți seta o pagină de eroare |
2.2 Importuri
Să adăugăm câteva importuri în fișierul nostru JSP pentru distracție și să definim o clasă de bază.
Exemplu de fișier JSP:
<%@ 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>
Și iată ce va rezulta din asta:
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> ");
}
}
Lucrări. Grozav!
GO TO FULL VERSION