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!