Τι είναι οι οδηγίες JSP;
- Οι οδηγίες JSP είναι τα μηνύματα προς το κοντέινερ JSP. Παρέχουν παγκόσμιες πληροφορίες σχετικά με μια ολόκληρη σελίδα JSP.
- Οι οδηγίες JSP χρησιμοποιούνται για να δώσουν ειδικές οδηγίες σε ένα κοντέινερ για τη μετάφραση του JSP σε servlet code.
- Στη φάση κύκλου ζωής JSP, το JSP πρέπει να μετατραπεί σε servlet που είναι η φάση μετάφρασης.
- Δίνουν οδηγίες στον περιέκτη σχετικά με τον τρόπο χειρισμού ορισμένων πτυχών της επεξεργασίας JSP
- Οι οδηγίες μπορούν να έχουν πολλά χαρακτηριστικά διαχωρισμένα με κόμμα ως ζεύγη τιμών-κλειδιών.
- Στο JSP, η οδηγία περιγράφεται σε <% @%> ετικέτες.
Σύνταξη της Οδηγίας:
<%@ directive attribute %>
Υπάρχουν τρεις τύποι οδηγιών:
- Οδηγία σελίδας
- Συμπεριλάβετε την οδηγία
- Οδηγία Taglib
Καθένα από αυτά περιγράφεται λεπτομερώς παρακάτω με παραδείγματα:
Σε αυτό το σεμινάριο, θα μάθετε -
- Οδηγία σελίδας JSP
- Οδηγία συμπερίληψης JSP
- Οδηγία JSP Taglib
Οδηγία σελίδας JSP
Σύνταξη οδηγίας σελίδας:
<%@ page… %>
- Παρέχει χαρακτηριστικά που εφαρμόζονται σε ολόκληρη τη σελίδα JSP.
- Ορίζει χαρακτηριστικά που εξαρτώνται από τη σελίδα, όπως γλώσσα δέσμης ενεργειών, σελίδα σφάλματος και απαιτήσεις αποθήκευσης.
- Χρησιμοποιείται για την παροχή οδηγιών σε ένα κοντέινερ που σχετίζεται με την τρέχουσα σελίδα JSP.
Ακολουθεί η λίστα χαρακτηριστικών που σχετίζονται με την οδηγία σελίδας:
- Γλώσσα
- Επεκτείνεται
- Εισαγωγή
- Τύπος περιεχομένου
- πληροφορίες
- συνεδρία
- είναι το ThreadSafe
- αυτόματη συμπλήρωση
- ρυθμιστής
- IsErrorPage
- σελίδαΕ κωδικοποίηση
- errorPage
- είναι ΕΙΔΙΚΑ
Περισσότερες λεπτομέρειες για κάθε χαρακτηριστικό
- language : Ορίζει τη γλώσσα προγραμματισμού (υποκείμενη γλώσσα) που χρησιμοποιείται στη σελίδα.
Σύνταξη γλώσσας:
<%@ page language="value" %>
Εδώ είναι η τιμή προγραμματισμού (υποκείμενη γλώσσα)
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Επεξήγηση του κώδικα: Στο παραπάνω παράδειγμα, η τιμή γλώσσας χαρακτηριστικού είναι η Java που είναι η υποκείμενη γλώσσα σε αυτήν την περίπτωση. Επομένως, ο κώδικας σε ετικέτες έκφρασης θα μεταγλωττίστηκε χρησιμοποιώντας μεταγλωττιστή java.
- Extends : Αυτό το χαρακτηριστικό χρησιμοποιείται για να επεκτείνει (κληρονομήσει) την τάξη όπως κάνει η JAVA
Σύνταξη επεκτάσεων:
<%@ page extends="value" %>
Εδώ η τιμή αντιπροσωπεύει κλάση από την οποία πρέπει να κληρονομηθεί.
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Επεξήγηση του κώδικα: Στον παραπάνω κώδικα, το JSP επεκτείνει το DemoClass που βρίσκεται στο πακέτο demotest και θα επεκτείνει όλες τις δυνατότητες της κλάσης.
- Εισαγωγή : Αυτό το χαρακτηριστικό χρησιμοποιείται πιο συχνά στα χαρακτηριστικά οδηγιών σελίδας. Χρησιμοποιείται για να πει στο κοντέινερ να εισαγάγει άλλες κλάσεις java, διεπαφές, αριθμούς κ.λπ. κατά τη δημιουργία κώδικα servlet. Είναι παρόμοιο με τις δηλώσεις εισαγωγής σε κλάσεις java, διεπαφές.
Σύνταξη εισαγωγής :
<%@ page import="value" %>
Εδώ η τιμή δείχνει τις κλάσεις που πρέπει να εισαχθούν.
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, εισάγουμε κλάση ημερομηνίας από το πακέτο java.util (όλες οι κλάσεις χρησιμότητας) και μπορεί να χρησιμοποιήσει όλες τις μεθόδους της ακόλουθης κλάσης.
- τύπος περιεχομένου :
- Ορίζει το σχήμα κωδικοποίησης χαρακτήρων, δηλαδή χρησιμοποιείται για τον καθορισμό του τύπου περιεχομένου και του συνόλου χαρακτήρων της απόκρισης
- Ο προεπιλεγμένος τύπος contentType είναι "text / html; charset = ISO-8859-1".
Σύνταξη του περιεχομένου Τύπος:
<%@ page contentType="value" %>
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, ο τύπος περιεχομένου έχει οριστεί ως κείμενο / html, ορίζει κωδικοποίηση χαρακτήρων για JSP και για τη σελίδα δημιουργίας απόκρισης.
- πληροφορίες
- Καθορίζει μια συμβολοσειρά στην οποία μπορείτε να έχετε πρόσβαση με τη μέθοδο getServletInfo ().
- Αυτό το χαρακτηριστικό χρησιμοποιείται για να ορίσετε την περιγραφή servlet.
Σύνταξη πληροφοριών:
<%@ page info="value" %>
Εδώ, η τιμή αντιπροσωπεύει τις πληροφορίες servlet.
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, η συμβολοσειρά "Guru Directive JSP" μπορεί να ανακτηθεί από τη διεπαφή servlet χρησιμοποιώντας το getServletInfo ()
- Συνεδρία
- Η σελίδα JSP δημιουργεί συνεδρία από προεπιλογή.
- Μερικές φορές δεν χρειαζόμαστε μια περίοδο σύνδεσης για να δημιουργηθεί στο JSP, και ως εκ τούτου, μπορούμε να ορίσουμε αυτό το χαρακτηριστικό σε false σε αυτήν την περίπτωση. Η προεπιλεγμένη τιμή του χαρακτηριστικού περιόδου σύνδεσης είναι αληθής και δημιουργείται η περίοδος σύνδεσης.
Όταν έχει οριστεί σε false, τότε μπορούμε να υποδείξουμε ότι ο μεταγλωττιστής δεν θα δημιουργήσει την περίοδο λειτουργίας από προεπιλογή.
Σύνταξη περιόδου σύνδεσης:
<%@ page session="true/false"%>
Εδώ σε αυτήν την περίπτωση το χαρακτηριστικό session μπορεί να οριστεί σε true ή false
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Επεξήγηση κωδικού:
Στο παραπάνω παράδειγμα, το χαρακτηριστικό περιόδου λειτουργίας έχει οριστεί σε "false", επομένως υποδεικνύουμε ότι δεν θέλουμε να δημιουργήσουμε καμία συνεδρία σε αυτό το JSP
- είναι το ThreadSafe:
- Καθορίζει το μοντέλο σπειρώματος για το servlet που δημιουργείται.
- Υποδεικνύει το επίπεδο ασφάλειας του νήματος που εφαρμόζεται στη σελίδα.
- Η προεπιλεγμένη τιμή του ισχύει τόσο ταυτόχρονα
- Μπορούμε να χρησιμοποιήσουμε αυτό το χαρακτηριστικό για να εφαρμόσουμε τη διεπαφή SingleThreadModel σε δημιουργημένο servlet.
- Εάν το ορίσουμε σε ψευδές, τότε θα εφαρμόσει το SingleThreadModel και μπορεί να έχει πρόσβαση σε κοινόχρηστα αντικείμενα και μπορεί να αποδώσει ασυνέπεια.
Σύνταξη του isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Εδώ το true ή false αντιπροσωπεύει εάν ο συγχρονισμός υπάρχει τότε ορίστε ως true και ορίστε το ως false.
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, το isThreadSafe έχει οριστεί σε "true", επομένως θα γίνει συγχρονισμός και μπορούν να χρησιμοποιηθούν πολλά νήματα.
- AutoFlush:
Αυτό το χαρακτηριστικό καθορίζει ότι η αποθηκευμένη έξοδος θα πρέπει να ξεπλυθεί αυτόματα ή όχι και η προεπιλεγμένη τιμή αυτού του χαρακτηριστικού είναι αληθής.
Εάν η τιμή οριστεί ως ψευδής, το buffer δεν θα ξεπλυθεί αυτόματα και εάν είναι πλήρες, θα λάβουμε μια εξαίρεση.
Όταν το buffer δεν είναι κανένα, τότε το false είναι παράνομο και δεν υπάρχει buffering, οπότε θα ξεπλυθεί αυτόματα.
Σύνταξη του autoFlush:
<% @ page autoFlush="true/false" %>
Εδώ το true / false αντιπροσωπεύει εάν πρέπει να γίνει buffering ή όχι
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, η αυτόματη συμπλήρωση έχει οριστεί σε ψευδής και επομένως δεν θα γίνει αποθήκευση της προσωρινής αποθήκευσης και έχει χειροκίνητα εκκαθάριση της εξόδου.
- Ρυθμιστής:
- Χρησιμοποιώντας αυτό το χαρακτηριστικό, το αντικείμενο απόκρισης εξόδου ενδέχεται να είναι προσωρινά αποθηκευμένο.
- Μπορούμε να καθορίσουμε το μέγεθος της προσωρινής αποθήκευσης που πρέπει να γίνει χρησιμοποιώντας αυτό το χαρακτηριστικό και το προεπιλεγμένο μέγεθος είναι 8KB.
- Κατευθύνει το servlet να γράψει το buffer πριν γράψει στο αντικείμενο απόκρισης.
Σύνταξη buffer:
<%@ page buffer="value" %>
Εδώ η τιμή αντιπροσωπεύει το μέγεθος του buffer που πρέπει να καθοριστεί. Εάν δεν υπάρχει buffer, τότε μπορούμε να γράψουμε ως κανένα, και αν δεν αναφέρουμε καμία τιμή, τότε η προεπιλογή είναι 8KB
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, το μέγεθος του buffer αναφέρεται ως 16KB όπου το buffer θα ήταν αυτού του μεγέθους
- isErrorPage:
- Υποδεικνύει ότι η σελίδα JSP που έχει errorPage θα ελεγχθεί σε άλλη σελίδα JSP
- Οποιοδήποτε αρχείο JSP δηλώνεται με το χαρακτηριστικό "isErrorPage" είναι στη συνέχεια ικανό να λαμβάνει εξαιρέσεις από άλλες σελίδες JSP που έχουν σελίδες σφάλματος.
- Εξαιρέσεις είναι διαθέσιμες μόνο σε αυτές τις σελίδες.
- Η προεπιλεγμένη τιμή είναι ψευδής.
Σύνταξη του isErrorPage:
<%@ page isErrorPage="true/false"%>
Παράδειγμα:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, το isErrorPage έχει οριστεί ως αληθινό. Ως εκ τούτου, θα ελέγξει ότι άλλα JSPs έχουν σύνολο χαρακτηριστικών errorPage (περιγράφεται στο επόμενο χαρακτηριστικό) και μπορεί να χειριστεί εξαιρέσεις.
- Κωδικοποίηση σελίδας:
Η προεπιλογή καθορίζεται ως "ISO-8859-1" εάν δεν έχει οριστεί άλλη.
Σύνταξη σελίδας Κωδικοποίηση:
<%@ page pageEncoding="vaue" %>
Εδώ η τιμή καθορίζει την τιμή charset για το JSP
Παράδειγμα:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα "pageEncoding" έχει οριστεί σε προεπιλεγμένο charset ISO-8859-1
- errorPage:
Σύνταξη σφάλματος Σελίδα:
<%@ page errorPage="value" %>
Εδώ η τιμή αντιπροσωπεύει την τιμή σελίδας σφάλματος JSP
Παράδειγμα:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, για να χειριστούμε τις εξαιρέσεις έχουμε errroHandler.jsp
- αγνοείται:
- Το IsELIgnored είναι ένα χαρακτηριστικό flag όπου πρέπει να αποφασίσουμε αν θα αγνοήσουμε τις ετικέτες EL ή όχι.
- Ο τύπος δεδομένων του είναι java enum και η προεπιλεγμένη τιμή είναι ψευδής, επομένως το EL είναι ενεργοποιημένο από προεπιλογή.
Σύνταξη του IEL Αγνοήθηκε:
<%@ page isELIgnored="true/false" %>
Εδώ, true / false αντιπροσωπεύει την τιμή του EL είτε πρέπει να αγνοηθεί είτε όχι.
Παράδειγμα:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Επεξήγηση του κωδικού:
Στον παραπάνω κώδικα, isELIgnored είναι αλήθεια και ως εκ τούτου αγνοείται η γλώσσα έκφρασης (EL) εδώ.
Στο παρακάτω παράδειγμα χρησιμοποιούμε τέσσερα χαρακτηριστικά (γραμμή κώδικα 1-2)
Παράδειγμα με τέσσερα χαρακτηριστικά
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%><κεφάλι>>Οδηγία Guru JSP1 <άτομο> Ημερομηνία είναι: <% = νέο java.util.Date ()%>