Dieser Artikel beschreibt die Java -Web -Implementierungsfunktion, die nach Ablauf der Sitzung automatisch zur Anmeldeseite springt. Teilen Sie es für Ihre Referenz wie folgt weiter:
Durch Filter springt die Sitzung nach Ablauf automatisch zur Anmeldeseite.
Filter sind nur für Server nützlich, die mit der Servlet -Spezifikation Version 2.3 kompatibel sind. Wenn Ihre Webanwendung Legacy -Server unterstützen muss, können Sie keine Filter verwenden.
1. Festlegen grundlegender Filter
Die Festlegung eines Filters umfasst die folgenden fünf Schritte:
1) Erstellen Sie einen Klassensitzungsfilter, der die Filterschnittstelle implementiert . Diese Klasse erfordert drei Methoden, nämlich: Dofilter, init und zerstören. Die Dofilter -Methode enthält den Hauptfiltercode, die Init -Methode legt den Einstellungsvorgang fest und die Zerstörungsmethode wird gereinigt.
2) Stellen Sie das Filterverhalten in die Dofilter -Methode ein . Der erste Parameter der Dofilter -Methode ist das ServletRequest -Objekt. Dieses Objekt bietet dem Filter den vollen Zugriff auf eingehende Informationen, einschließlich Formellaten für Formulardaten, Cookies und HTTP -Anforderungen. Der zweite Parameter ist ServletResponse, der normalerweise in einfachen Filtern ignoriert wird. Der letzte Parameter ist Filterchain, wie im nächsten Schritt beschrieben, mit dem ein Servlet oder eine JSP -Seite aufgerufen wird.
3) Rufen Sie die Dofilter -Methode des SessionFilter -Objekts auf . Die Dofiltermethode der Filterschnittstelle nimmt ein Filterchain -Objekt als Parameter. Beim Aufrufen der Dofilter -Methode dieses Objekts wird der nächste verwandte Filter aktiviert. Wenn der Servlet- oder JSP -Seite kein anderer Filter zugeordnet ist, wird die Servlet- oder JSP -Seite aktiviert.
4) Registrieren Sie Filter für die entsprechenden SERVLET- und JSP -Seiten . Verwenden Sie Filter- und Filter-Mapping-Elemente in der Bereitstellungsdeskriptordatei (web.xml).
5) Deaktivieren Sie den Aktivator -Servlet . Verhindern Sie, dass Benutzer die Filtereinstellungen mithilfe der Standard -Servlet -URL umgehen.
Der Quellcode lautet wie folgt:
package com.base.filter;import java.io.IOException;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; import javax.servlet.http.httpsertResponse; import Javax.servlet.http.httpSession; Import Com.base.constants.SessionKeyConstants; // Filter zerstören, im Allgemeinen Ressourcen freigeben} / ** * Einige URLs müssen sich anmelden, um zugreifen zu (Sitzungsverifizierungsfilter) * / public void dofilter (ServletRequest arg0, servletresponse arg1, filterchain arg2) löscht IoException, servletException {httpServequest -Anforderung = (httpervevel) (httpervevevel) (httpervevevel) (httpervevevly) (httpervevly HttpServletResponse response = (httpServletResponse) arg1; HttpSession Session = Request.GetSession (); // beurteilen, ob die Sitzung abgibt, wenn ((Benutzer-) Sitzung.GetAttribute (SessionKeyConstants.login) == NULL) {String errors = "Sie sind noch nicht angemeldet, oder die Sitzung ist abgelaufen. Bitte melden Sie sich zuerst an!"; Request.SetAttribute ("Nachricht", Fehler); // Überspringen Sie zur Anmeldeseitenanforderung. } else {arg2.dofilter (Anfrage, Antwort); }} public void init (filterconfig arg0) löst ServletException aus {// Initialisieren Sie den Vorgang, lesen Sie die Initialisierungsparameter der Filterkonfiguration in web.xml und erfüllen Sie die Anforderungen, die Sie nicht mit dieser Methode verwenden}}}}}}2. Konfigurieren Sie in der Konfigurationsdatei web.xml
<!-Setzen Sie die Ablaufzeit der Sitzung auf 30 Minuten-> <Session-Config> <Session-Timeout> 30 </Session-Timeout> </Sitzungs-Konfiguration> <!-Sitzungsfilterkonfiguration verwandt-> <Filter> <Filter-Name> SessionFilter </filter-name> <filter-klasse> com.base <Filter-name> SessionFilter </filter-name> <URL-Muster>/Vertrag/*</url-pufterN> <URL-Muster>/Benutzer/*</url-pattern> <dispatcher> Forward </Dispatcher> <! -> <Dispatcher> Anfrage </Dispatcher> </filtermapping>
Weitere Informationen zu Java -verwandten Inhalten finden Sie in den Themen dieser Website: "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Datei- und Verzeichnisbetriebsfähigkeiten", "Zusammenfassung der Java Operation DOM -Knotenkenntnisse" und "Zusammenfassung der Fähigkeiten der Java -Cache -Operation"
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.