Αντιστοίχιση φίλτρου Web.xml σε Servlet JSP με παράδειγμα

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

Anonim

Τι είναι το φίλτρο JSP;

  • Τα φίλτρα χρησιμοποιούνται για το φιλτράρισμα της λειτουργικότητας της εφαρμογής web Java.
  • Παρακωλύουν τα αιτήματα από τον πελάτη πριν προσπαθήσουν να αποκτήσουν πρόσβαση στον πόρο
  • Διαχειρίζονται τις απαντήσεις από το διακομιστή και αποστέλλονται στον πελάτη.

Τύποι φίλτρων σε JSP

  • Φίλτρα ελέγχου ταυτότητας
  • Φίλτρα συμπίεσης δεδομένων
  • Φίλτρα κρυπτογράφησης
  • Φίλτρα αλυσίδας MIME
  • Φίλτρα καταγραφής
  • Φίλτρα διακριτικών

Τα φίλτρα ορίζονται στο web.xml και αποτελούν χάρτη για servlet ή JSP. Όταν το κοντέινερ JSP ξεκινά με την εφαρμογή ιστού, δημιουργεί την παρουσία κάθε φίλτρου που έχει δηλωθεί στον περιγραφέα ανάπτυξης.

Ακολουθούν οι μέθοδοι φίλτρου:

  • Δημόσιο άκυρο doFilter (ServletRequest, ServletResponse, FilterChain)

    Αυτό καλείται κάθε φορά που ένα αίτημα / απάντηση διαβιβάζεται από κάθε πελάτη όταν ζητείται από έναν πόρο.

  • Δημόσιο κενό init (FilterConfig)

    Αυτό σημαίνει ότι το φίλτρο τίθεται σε λειτουργία

  • Δημόσια κενή καταστροφή ()

    Αυτό σημαίνει ότι το φίλτρο έχει αφαιρεθεί από τη λειτουργία.

Παράδειγμα:

Σε αυτό το παράδειγμα, δημιουργήσαμε φίλτρο και χαρτογραφήσαμε στο web.xml

Gurufilter.java

demotest πακέτουεισαγωγή java.io.IOException;εισαγωγή java.util.Date;εισαγωγή javax.servlet.Filter;εισαγωγή javax.servlet.FilterChain;εισαγωγή javax.servlet.FilterConfig;εισαγωγή javax.servlet.ServletException;εισαγωγή javax.servlet.ServletRequest;εισαγωγή javax.servlet.ServletResponse;εισαγωγή Javax.servlet.http.HttpServletRequest;δημόσια τάξη GuruFilter εφαρμόζει φίλτρο {public void doFilter (ServletRequest request, ServletResponse response, Filterchain chain) ρίχνει το IOException, ServletException {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδουHttpServletRequest req = (HttpServletRequest) αίτημα;Συμβολοσειρά ipAddress = req.getRemoteAddr ();System.out.println ("Διεύθυνση IP" + ipAddress + ", ο χρόνος είναι"+ νέα ημερομηνία (). toString ());// περάστε το αίτημα κατά μήκος της αλυσίδας φίλτρουchain.doFilter (αίτημα, απάντηση);}/ *** @ δείτε Φίλτρο # init (FilterConfig)* /public void init (FilterConfig fConfig) ρίχνει ServletException {String guruparam = fConfig.getInitParameter ("γκουρού-param");// Εκτυπώστε την παράμετρο initSystem.out.println ("Test Param: + guruparam);}}

Web.xml

<εμφάνιση- όνομα>δοκιμή <φίλτρο><περιγραφή><εμφάνιση- όνομα>GuruFilter  GuruFilter  demotest.GuruFilter 
 γκουρού-param 
 Αυτή είναι η παράμετρος του γκουρού  GuruFilter  / GuruFilter 

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

Gurufilter.java

Γραμμή κώδικα 17-32 : Εδώ χρησιμοποιούμε τη μέθοδο "doFilter" όπου λαμβάνουμε αντικείμενο αιτήματος (στο παράδειγμά μας το αντικείμενο αιτήματος είναι req (αντικείμενο HttpServletRequest)) και λαμβάνουμε την απομακρυσμένη διεύθυνση του πελάτη και εκτυπώνουμε στην κονσόλα και εκτυπώνουμε επίσης ημερομηνία και ώρα στην κονσόλα.

Γραμμή κώδικα 33-37 : Εδώ χρησιμοποιούμε τη μέθοδο init όπου παίρνουμε την παράμετρο init και εκτυπώνουμε την παράμετρο init στην κονσόλα.

Web.xml

Γραμμή κώδικα 10-11 - Χαρτογράφηση του GuruFilter με το όνομα τάξης GuruFilter.java όπου έχουμε φίλτρο-όνομα ως GuruFilter και κλάση φίλτρου που είναι η διαδρομή καταλόγου της τάξης GuruFilter

Γραμμή κώδικα 13-15 - Χαρτογράφηση της παραμέτρου init με την ονομασία γκουρού-παραμέτρου και λήψη της τιμής που τοποθετείται κάτω από την ετικέτα φίλτρου, ώστε αυτό το init-param να έχει οριστεί για το gurufilter

Παραγωγή:

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

  • Η έξοδος είναι Test Param από την παράμετρο init
  • Και ανάκτηση διεύθυνσης IP, ημερομηνίας και ώρας αυτής.