Φιλτράρισμα αντιστοίχισης στο Web.xml
Τι είναι τα φίλτρα JSP;
- Τα φίλτρα στο web.xml χρησιμοποιούνται για τη λειτουργία φιλτραρίσματος του Java εφαρμογή ιστού.
- Παρακολουθούν τα αιτήματα από τον πελάτη προτού προσπαθήσουν να αποκτήσουν πρόσβαση στον πόρο
- Διαχειρίζονται τις απαντήσεις από τον διακομιστή και στέλνονται στον πελάτη.
Τύποι φίλτρων στο JSP
- Φίλτρα ελέγχου ταυτότητας
- Φίλτρα συμπίεσης δεδομένων
- Φίλτρα κρυπτογράφησης
- Φίλτρα αλυσίδας MIME
- Φίλτρα καταγραφής
- Φίλτρα Tokenizing
Τα φίλτρα ορίζονται στο web.xml και είναι ένας χάρτης στο servlet ή JSP. Όταν το κοντέινερ JSP ξεκινά με την εφαρμογή Ιστού, δημιουργεί το στιγμιότυπο κάθε φίλτρου στο web.xml που έχει δηλωθεί στην περιγραφή ανάπτυξης.
Μέθοδοι φίλτρου JSP
Ακολουθούν οι μέθοδοι φιλτραρίσματος:
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Αυτό καλείται κάθε φορά όταν μεταβιβάζεται ένα αίτημα/απόκριση από κάθε πελάτη όταν ζητείται από έναν πόρο.
Public void init (FilterConfig)
Αυτό σημαίνει ότι το φίλτρο στο JSP έχει τεθεί σε λειτουργία
Δημόσιο κενό καταστροφή()
Αυτό υποδηλώνει ότι το φίλτρο έχει αφαιρεθεί από το σέρβις.
Παράδειγμα
Σε αυτό το παράδειγμα, δημιουργήσαμε φίλτρο και αντιστοιχίσαμε Java Φίλτρο web.xml
Gurufilter.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>
Επεξήγηση του κώδικα
Gurufilter.java
Κωδικός Γραμμή 17-32: Εδώ χρησιμοποιούμε τη μέθοδο "doFilter" όπου λαμβάνουμε αντικείμενο αίτησης (στο παράδειγμά μας το αντικείμενο αίτησης είναι req(HttpServletRequest αντικείμενο)) και παίρνουμε την απομακρυσμένη διεύθυνση του πελάτη και την εκτύπωση στην κονσόλα και επίσης την ημερομηνία και την ώρα εκτύπωσης στο κονσόλα.
Κωδικός Γραμμή 33-37: Εδώ χρησιμοποιούμε τη μέθοδο init όπου παίρνουμε την παράμετρο init και εκτυπώνουμε την παράμετρο init στην κονσόλα.
Web.xml
Κωδικός Γραμμή 10-11: Αντιστοίχιση φίλτρου στο web.xml για GuruFilter με το όνομα κλάσης GuruFilter.java όπου έχουμε το όνομα φίλτρου ως GuruFilter και την κλάση φίλτρου που είναι η διαδρομή καταλόγου της κλάσης GuruFilter
Κωδικός Γραμμή 13-15: Αντιστοίχιση της παραμέτρου init με το όνομα guru-param και λήψη της τιμής της που τοποθετείται κάτω από την ετικέτα φίλτρου, έτσι αυτή η παράμετρος init έχει οριστεί για το gurufilter
Παραγωγή:
Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:
- Η έξοδος είναι Test Param από την παράμετρο init
- Και λήψη διεύθυνσης IP, ημερομηνίας και ώρας.