JSP Implicit Objects: Πλήρης οδηγός

Πίνακας περιεχομένων:

Anonim

Τι είναι το JSP Implicit αντικείμενο;

  • Τα σιωπηρά αντικείμενα JSP δημιουργούνται κατά τη φάση μετάφρασης του JSP στο servlet.
  • Αυτά τα αντικείμενα μπορούν να χρησιμοποιηθούν άμεσα σε scriplet που ακολουθούν τη μέθοδο υπηρεσίας.
  • Δημιουργούνται αυτόματα από το κοντέινερ και είναι προσβάσιμα μέσω αντικειμένων.

Πόσα έμμεσα αντικείμενα είναι διαθέσιμα στο JSP;

Υπάρχουν 9 τύποι έμμεσων αντικειμένων διαθέσιμα στο κοντέινερ:

  1. έξω
  2. αίτηση
  3. απάντηση
  4. διαμόρφωση
  5. εφαρμογή
  6. συνεδρία
  7. σελίδα
  8. σελίδα
  9. εξαίρεση

Ας μελετήσουμε ένα προς ένα

έξω

  • Το Out είναι ένα από τα έμμεσα αντικείμενα για να γράψετε τα δεδομένα στο buffer και να στείλετε έξοδο στον πελάτη ως απόκριση
  • Το αντικείμενο Out μας επιτρέπει να έχουμε πρόσβαση στη ροή εξόδου του servlet
  • Το Out είναι αντικείμενο της κλάσης javax.servlet.jsp.jspWriter
  • Ενώ εργαζόμαστε με servlet, χρειαζόμαστε αντικείμενο εκτυπωτή

Παράδειγμα:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό Guru JSP1 <άτομο><% int num1 = 10; int num2 = 20;out.println ("num1 is" ​​+ num1);out.println ("num2 is" + num2);%>

Επεξήγηση του κωδικού:

Ο κωδικός Line 11-12 - out χρησιμοποιείται για εκτύπωση στη ροή εξόδου

Όταν εκτελούμε τον παραπάνω κώδικα, λαμβάνουμε την ακόλουθη έξοδο:

Παραγωγή:

  • Στην έξοδο, λαμβάνουμε τις τιμές num1 και num2

Αίτηση

  • Το αντικείμενο αιτήματος είναι μια παρουσία του java.servlet.http.HttpServletRequest και είναι ένα από τα επιχειρήματα της μεθόδου υπηρεσίας
  • Θα δημιουργηθεί από κοντέινερ για κάθε αίτημα.
  • Θα χρησιμοποιηθεί για να ζητήσει πληροφορίες όπως παράμετρος, πληροφορίες κεφαλίδας, όνομα διακομιστή κ.λπ.
  • Χρησιμοποιεί getParameter () για πρόσβαση στην παράμετρο αιτήματος.

Παράδειγμα:

Implicit_jsp2.jsp (φόρμα από την οποία αποστέλλεται το αίτημα στο guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Έμμεση φόρμα Γκουρού JSP2 <άτομο><μορφή δράσης = "guru.jsp">

Guru.jsp (όπου γίνεται η δράση)

Επεξήγηση κωδικού:

Γραμμή κώδικα 10-13: Στο αίτημα implicit_jsp2.jsp (φόρμα) αποστέλλεται, ως εκ τούτου η μεταβλητή όνομα χρήστη υποβάλλεται σε επεξεργασία και αποστέλλεται στο guru.jsp που είναι ενέργεια του JSP.

Guru.jsp

Κωδικός Line10-11: Πρόκειται για ενέργεια jsp όπου επεξεργάζεται το αίτημα και το όνομα χρήστη λαμβάνεται από τη μορφή jsp.

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο

Παραγωγή:

Όταν γράφετε δοκιμή και κάνετε κλικ στο κουμπί υποβολής, τότε λαμβάνετε την ακόλουθη έξοδο "Welcome Test"

Απάντηση

  • Το "Response" είναι μια παρουσία κλάσης που εφαρμόζει τη διεπαφή HttpServletResponse
  • Το κοντέινερ δημιουργεί αυτό το αντικείμενο και μεταβιβάζει στη μέθοδο _jspservice () ως παράμετρο
  • Το "αντικείμενο απόκρισης" θα δημιουργηθεί από το κοντέινερ για κάθε αίτημα.
  • Αντιπροσωπεύει την απάντηση που μπορεί να δοθεί στον πελάτη
  • Το σιωπηρό αντικείμενο απόκρισης χρησιμοποιείται για τον τύπο περιεχομένου, την προσθήκη cookie και την ανακατεύθυνση στη σελίδα απόκρισης

Παράδειγμα:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό Guru JSP4 <άτομο><% response.setContentType ("text / html"); %>

Επεξήγηση του κωδικού:

Γραμμή κώδικα 11: Στο αντικείμενο απόκρισης μπορούμε να ορίσουμε τον τύπο περιεχομένου

Εδώ ρυθμίζουμε μόνο τον τύπο περιεχομένου στο αντικείμενο απόκρισης. Ως εκ τούτου, δεν υπάρχει έξοδος για αυτό.

Διαμόρφωση

  • Το "Config" είναι του τύπου java.servlet.servletConfig
  • Δημιουργείται από το κοντέινερ για κάθε σελίδα jsp
  • Χρησιμοποιείται για να πάρει την παράμετρο αρχικοποίησης στο web.xml

Παράδειγμα:

Web.xml (καθορίζει το όνομα και τη χαρτογράφηση του servlet)

Implicit_jsp5.jsp (λήψη της τιμής του ονόματος servlet)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό Guru JSP5 <άτομο><% String servletName = config.getServletName ();out.println ("Servlet Name is" + servletName);%>

Επεξήγηση του κωδικού:

Στο web.xml

Γραμμή κώδικα 14-17: Στο web.xml έχουμε χαρτογράφηση servlets στις τάξεις

Implicit_jsp5.jsp

Γραμμή κώδικα 10-11: Για να λάβουμε το όνομα του servlet στο JSP, μπορούμε να χρησιμοποιήσουμε το config.getServletName, το οποίο θα μας βοηθήσει να πάρουμε το όνομα του servlet.

Όταν εκτελείτε τον παραπάνω κώδικα λαμβάνετε την ακόλουθη έξοδο:

Παραγωγή:

  • Το όνομα Servlet είναι "GuruServlet" καθώς το όνομα υπάρχει στο web.xml

Εφαρμογή

  • Το αντικείμενο εφαρμογής (γραμμή κώδικα 10) είναι μια παρουσία του javax.servlet.ServletContext και χρησιμοποιείται για τη λήψη πληροφοριών περιβάλλοντος και χαρακτηριστικών στο JSP.
  • Το αντικείμενο εφαρμογής δημιουργείται από ένα κοντέινερ ανά εφαρμογή, όταν η εφαρμογή αναπτύσσεται.
  • Το αντικείμενο Servletcontext περιέχει ένα σύνολο μεθόδων που χρησιμοποιούνται για την αλληλεπίδραση με το servlet container. Μπορούμε να βρούμε πληροφορίες σχετικά με το servlet container

Παράδειγμα:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Implicit JSP6 Γκουρού <άτομο><% application.getContextPath (); %>

Επεξήγηση του κωδικού:

  • Στον παραπάνω κώδικα, το χαρακτηριστικό εφαρμογής βοηθά στη λήψη της διαδρομής περιβάλλοντος της σελίδας JSP.

Συνεδρία

  • Η συνεδρία κρατάει αντικείμενο "httpsession" (γραμμή κώδικα 10).
  • Το αντικείμενο συνεδρίας χρησιμοποιείται για τη λήψη, τον ορισμό και την κατάργηση χαρακτηριστικών στο πεδίο εφαρμογής και επίσης για τη λήψη πληροφοριών περιόδου σύνδεσης

Παράδειγμα:

Implicit_jsp7 (το χαρακτηριστικό έχει οριστεί)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό JSP <άτομο><% session.setAttribute ("χρήστης", "GuruJSP"); %> Κάντε κλικ εδώ για να λάβετε το όνομα χρήστη 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> σιωπηρό Guru JSP8 <άτομο><% String name = (String) session.getAttribute ("χρήστης");out.println ("Όνομα χρήστη είναι" + όνομα);%>

Επεξήγηση του κωδικού:

Implicit_jsp7.jsp

Γραμμή κώδικα 11: ορίζουμε τον χρήστη χαρακτηριστικών στη μεταβλητή περιόδου λειτουργίας και αυτή η τιμή μπορεί να ληφθεί από τη συνεδρία στην οποία κληθεί jsp από αυτήν (_jsp8.jsp).

Γραμμή κώδικα 12: Καλούμε ένα άλλο jsp στο href στο οποίο θα λάβουμε την τιμή για το χαρακτηριστικό χρήστη που έχει οριστεί.

Implicit_jsp8.jsp

Γραμμή κώδικα 11: Λαμβάνουμε την τιμή του χαρακτηριστικού χρήστη από το αντικείμενο περιόδου σύνδεσης και εμφανίζουμε αυτήν την τιμή

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

Όταν κάνετε κλικ στο σύνδεσμο για το όνομα χρήστη. Θα λάβετε την ακόλουθη έξοδο.

Παραγωγή:

  • Όταν κάνουμε κλικ στο σύνδεσμο που δίνεται στο implicit_jsp7.jsp τότε ανακατευθύνεται στη δεύτερη σελίδα jsp, δηλαδή (_jsp8.jsp) και λαμβάνουμε την τιμή από το αντικείμενο περιόδου σύνδεσης του χαρακτηριστικού χρήστη (_jsp7.jsp).

σελίδα Περιεχόμενο:

  • Αυτό το αντικείμενο είναι του τύπου pagecontext.
  • Χρησιμοποιείται για τη λήψη, ρύθμιση και κατάργηση των χαρακτηριστικών από ένα συγκεκριμένο πεδίο

Τα πεδία είναι 4 τύπων:

  • Σελίδα
  • Αίτηση
  • Συνεδρία
  • Εφαρμογή

Παράδειγμα:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό Guru JSP9 <άτομο><% pageContext.setAttribute ("μαθητής", "gurustudent", pageContext.PAGE_SCOPE);String name = (String) pageContext.getAttribute ("μαθητής");out.println ("όνομα μαθητή είναι" + όνομα);%>

Επεξήγηση του κωδικού:

Γραμμή κώδικα 11: ορίζουμε το χαρακτηριστικό χρησιμοποιώντας αντικείμενο pageContext και έχει τρεις παραμέτρους:

  • Κλειδί
  • αξία
  • Πεδίο εφαρμογής

Στον παραπάνω κώδικα, το κλειδί είναι μαθητής και η τιμή είναι "gurustudent" ενώ το πεδίο είναι το πεδίο σελίδας. Εδώ το πεδίο είναι "σελίδα" και μπορεί να χρησιμοποιήσει μόνο το εύρος σελίδας.

Γραμμή κώδικα 12: Λαμβάνουμε την τιμή του χαρακτηριστικού χρησιμοποιώντας το pageContext

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

Παραγωγή:

  • Η έξοδος θα εκτυπώσει "το όνομα του μαθητή είναι gurustudent".

Σελίδα

  • Η σιωπηρή μεταβλητή σελίδας κρατά το τρέχον εκτελεσμένο αντικείμενο servlet για το αντίστοιχο jsp.
  • Λειτουργεί ως αυτό το αντικείμενο για την τρέχουσα σελίδα jsp.

Παράδειγμα:

Σε αυτό το παράδειγμα, χρησιμοποιούμε αντικείμενο σελίδας για να πάρουμε το όνομα της σελίδας χρησιμοποιώντας τη μέθοδο toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Σιωπηρό Guru JSP10 <άτομο><% String pageName = page.toString ();out.println ("Το όνομα σελίδας είναι" + όνομα σελίδας);%>

Επεξήγηση του κωδικού:

Γραμμή κώδικα 10-11: Σε αυτό το παράδειγμα, προσπαθούμε να χρησιμοποιήσουμε τη μέθοδο toString () του αντικειμένου σελίδας και προσπαθούμε να πάρουμε το όνομα συμβολοσειράς της σελίδας JSP.

Όταν εκτελείτε τον κώδικα λαμβάνετε την ακόλουθη έξοδο:

Παραγωγή:

  • Η έξοδος είναι το όνομα συμβολοσειράς της παραπάνω σελίδας jsp

Εξαίρεση

  • Η εξαίρεση είναι το σιωπηρό αντικείμενο της κατηγορίας με δυνατότητα ρίψης.
  • Χρησιμοποιείται για χειρισμό εξαιρέσεων στο JSP.
  • Το αντικείμενο εξαίρεσης μπορεί να χρησιμοποιηθεί μόνο σε σελίδες σφάλματος.

    Παράδειγμα:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%><κεφάλι>> Σιωπηρό Guru JSP 11 <άτομο><% int [] num1 = {1,2,3,4};out.println (αριθμός 1 [5]);%><% = εξαίρεση%>

Επεξήγηση του κωδικού:

Γραμμή κώδικα 10-12 - Έχει μια σειρά αριθμών, δηλαδή, num1 με τέσσερα στοιχεία. Στην έξοδο, προσπαθούμε να εκτυπώσουμε το πέμπτο στοιχείο του πίνακα από το num1, το οποίο δεν δηλώνεται στη λίστα πίνακα. Έτσι χρησιμοποιείται για να πάρει αντικείμενο εξαίρεσης του jsp.

Παραγωγή:

Παίρνουμε το ArrayIndexOfBoundsException στον πίνακα όπου παίρνουμε έναν πίνακα num1 του πέμπτου στοιχείου.