Φιλτράρισμα χάρτηping σε Web.xml
⚡ Έξυπνη Σύνοψη
Φιλτράρισμα χάρτηping Το Web.xml ορίζει πώς τα φίλτρα JSP αναχαιτίζουν τα αιτήματα πελατών και τις απαντήσεις του διακομιστή σε ένα Java εφαρμογή web. Καταγράφει κάθε φίλτρο στην περιγραφή ανάπτυξης, ενεργοποιώντας τον έλεγχο ταυτότητας, την καταγραφή, τη συμπίεση και την κρυπτογράφηση πριν από την πρόσβαση σε πόρους.
Τι είναι τα φίλτρα JSP;
- Τα φίλτρα στο web.xml χρησιμοποιούνται για τη λειτουργία φιλτραρίσματος του Java εφαρμογή ιστού.
- Παρακολουθούν τα αιτήματα από τον πελάτη προτού επιχειρήσουν πρόσβαση στον πόρο.
- Διαχειρίζονται τις απαντήσεις από τον διακομιστή και στέλνονται στον πελάτη.
Τα φίλτρα ορίζονται στο web.xml και είναι ένας χάρτης στο servlet ή JSP. Όταν το κοντέινερ JSP ξεκινά με την εφαρμογή Ιστού, δημιουργεί το στιγμιότυπο κάθε φίλτρου στο web.xml που έχει δηλωθεί στην περιγραφή ανάπτυξης.
Τύποι φίλτρων στο JSP
Το JSP υποστηρίζει διάφορους τύπους φίλτρων, καθένας από τους οποίους χειρίζεται ένα συγκεκριμένο ζήτημα στον κύκλο αιτήματος-απόκρισης:
- Φίλτρα ελέγχου ταυτότητας
- Φίλτρα συμπίεσης δεδομένων
- Φίλτρα κρυπτογράφησης
- Φίλτρα αλυσίδας MIME
- Φίλτρα καταγραφής
- Φίλτρα Tokenizing
Μέθοδοι φίλτρου JSP
Μόλις γνωρίσετε τους τύπους φίλτρων, είναι χρήσιμο να κατανοήσετε τις μεθόδους που ελέγχουν τον κύκλο ζωής ενός φίλτρου. Ακολουθούν οι μέθοδοι φίλτρων:
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Αυτό καλείται κάθε φορά όταν μεταβιβάζεται ένα αίτημα/απόκριση από κάθε πελάτη όταν ζητείται από έναν πόρο.
Public void init (FilterConfig)
Αυτό υποδεικνύει ότι το φίλτρο στο JSP έχει τεθεί σε λειτουργία.
Δημόσιο κενό καταστροφή()
Αυτό υποδηλώνει ότι το φίλτρο έχει αφαιρεθεί από το σέρβις.
Παράδειγμα
Σε αυτό το παράδειγμα, δημιουργήσαμε φίλτρο και αντιστοιχίσαμε Java φίλτρο web.xml.
Guruφίλτρο.java
package demotest; import java.io.IOException; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class GuruFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String ipAddress = req.getRemoteAddr(); System.out.println("IP Address "+ipAddress + ", Time is" + new Date().toString()); // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { String guruparam = fConfig.getInitParameter("guru-param"); //Print the init parameter System.out.println("Test Param: " + guruparam); } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
Επεξήγηση του κώδικα
Guruφίλτρο.java
Code Γραμμή 17-32: Εδώ χρησιμοποιούμε τη μέθοδο "doFilter" όπου λαμβάνουμε το αντικείμενο request (στο παράδειγμά μας το αντικείμενο request είναι req (αντικείμενο HttpServletRequest)) και λαμβάνουμε την απομακρυσμένη διεύθυνση του πελάτη και την εκτυπώνουμε στην κονσόλα, καθώς και την ημερομηνία και την ώρα στην κονσόλα.
Code Γραμμή 33-37: Εδώ χρησιμοποιούμε τη μέθοδο init όπου παίρνουμε την παράμετρο init και την εκτυπώνουμε στην κονσόλα.
Web.xml
Code Γραμμή 10-11: Φιλτράρισμα χάρτηping σε web.xml για GuruΦιλτράρισμα με το όνομα της κλάσης GuruFilter.java όπου έχουμε το όνομα-φίλτρου ως GuruΦίλτρο και κλάση φίλτρου που είναι η διαδρομή καταλόγου του GuruΚλάση φίλτρου.
Code Γραμμή 13-15: Χάρτηςping την παράμετρο init με το όνομα guru-param και λαμβάνοντας την τιμή της, η οποία τοποθετείται κάτω από την ετικέτα φίλτρου, επομένως αυτή η παράμετρος init έχει οριστεί για το gurufilter.
Παραγωγή:
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:
- Η έξοδος είναι Test Param από την παράμετρο init
- Και λήψη διεύθυνσης IP, ημερομηνίας και ώρας.


