Dieser Artikel untersucht hauptsächlich die relevante Verwendung von Filterfiltern in Java, und der spezifische Implementierungscode lautet wie folgt.
Der Filterfilter wird hauptsächlich zum Übergeben von Daten an das Backend verwendet. Das Level ist sehr einfach, daher werde ich nur ein paar Codes geben, die geschrieben wurden:
1. Filter, die den Browser nicht Cache -Seiten machen lassen
Javax.servlet importieren. IOException, ServleTException {((httpServletResponse) Antwort) .setheader ("cache-control", "no-cache"); ((HttpServletResponse) Antwort) .setheader ("pragma", "no-cache"); ((HttpServletResponse) Antwort) .setDateHeader ("abläuft", -1); filterchain.dofilter (Anfrage, Antwort); } public void destroy () {} public void init (filterconfig filterconfig) löst servletException {}} aus2. Filter, um festzustellen, ob der Benutzer angemeldet ist
öffentliche Klasse Checkloginfilter implementiert Filter {Protected FilterConfig FilterConfig = NULL; private String recirecturl = null; private Liste NotCheckUrllist = new ArrayList (); private String SessionKey = null; public void dofilter (servletRequest servletRequest, servletresponse servletresponse, filterchain filterchain) löst ioException, servletException {httpServletRequest Request = (httpServletRequest) servletRequest aus; HttpServletResponse response = (httpServletResponse) servletResponse; HttpSession Session = Request.GetSession (); if (SessionKey == null) {filterchain.dofilter (Anfrage, Antwort); zurückkehren; } if ((! checkRequesturiIntnotFilterList (Anfrage)) && Session.getAttribute (SessionKey) == NULL) {response.sendRectrect (request.getContextPath () + redirecturl); zurückkehren; } filterchain.dofilter (ServletRequest, ServletResponse); } public void destroy () {NotCheckUrllist.Clear (); } private boolean checkRequesturiitnotFilterList (httpServletRequest -Anforderung) {String uri = request.getServletPath () + (request.getPathinfo () == null? "": request.getPathinfo ()); return NotCheckurllist.Contains (URI); } public void init (filterconfig filterconfig) löst servletException aus {this.filterconfig = filterConfig; redirecturl = filterconfig.getInitParameter ("redirecturl"); SessionKey = filterConfig.getInitParameter ("puckseSessionkey"); String NotCheckUrllliststr = filterconfig.getInitParameter ("NotCheckurllist"); if (NotCheckUrllliststr! NotCheckurllist.Clear (); while (St.Hasmoretokens ()) {NotCheckurllist.Add (St.NextToken ()); }}}}}}3. Charakter -Codierungsfilter
Javax.servlet importieren. ""; Public Void Dofilter (ServletRequest ServletRequest, ServletResponse ServletResponse, Filterchain Filterchain) löst ioException, servletException (if (codieren! {filterConfig = null; coding = null;} public void init (filterconfig filterconfig) löst ServletException {this.FilterConfig = filterConfig; this.encoding = filterconfig.getInitParameter ("codieren");}}4. Notieren Sie den Zugriffsbetreiber des Benutzers
Paket com.qwserv.itm.pfl.log.svr; import Java.io.ioException; import Javax.servlet.filter; import Javax.servlet.filterchain; import Javax.servlet.filterconfig; Import Javax.Servlet.ServletExcept; javax.servlet.servletResponse; import Java.text.SimpledateFormat; import Javax.servlet.http.httpserquest; import com.qwserv.itm.api.pfl.sm.vo.person; com.qwserv.itm.util.toolkit.DebugUtil;public class ObserveFilter implements Filter {protected static DebugUtil log = DebugUtil.getInstances("pfl-log", ObserveFilter.class);public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServleTException {// Benutzerzugriffsvorgänge httpServletRequest Request1 = (httpServletRequest) Request; StringBuffer url = Request1.GetRequesturl (); // filtern Sie die URL, wenn es JS/CSS/Image ist, wird nicht verarbeitet, wenn (Richter (Richter) (Richter) (url.tostring (). SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"). format (new java.util.date ()); String hostip = request.getRemoteaddr (); String SessionID = request1.getRequestedSessionID (); String userId = "" person person = (person) request1.getSession (). getattribute ("userObj"); if (null! person.getUser (). getId ();} String queryString = request1.getQueryString (); if (null! = queryString) {url.append ('?'); url.append (queryString);} // Savetodb (userId, hostip, sacl. filterchain.dofilter (Anfrage, Antwort);} public void init (filterconfig filterconfig) löst servletException {} public boolean JudgeFile (String url) {if (url.endswith (". gif") || url.endswith (". url.endswith (". Bmp") ||. Die Datenbankverbindung conn = null; Anweisung st = null; try {// SQL -Expression konstruieren und Daten in die Datenbank conn = serviceAccess.getSystemsupportService einfügen. values ('" + userID +"', '" + url +"', '" + desc +"', '" + sessionID +"', '" + hostip +"', '" + operatortime +") "; wenn (ServiceAccess.getSystemsupportService (). GetConnectionType (conn) == serviceAccess.getSystemsupportService (). Werte (log_observe_seq.nextval, '" + userId +"', '" + url +"', '" + Desc +' ','" + sessionID + "','" + Hostip + "', to_date ('" + operatime + "',' Yyyyy-mm-dd Hh24: mi: mi: mi: ss '). (Ausnahme e) {e.printstacktrace (); log.Error ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ {try {St.CLOSE ();} catch (Ausnahme E) {e.printstacktrace ();} st = null;} if (conn!<Filter> <filter-name> BeobachtungFilter </filter-name> <filterklasse> com.qwserv.itm.pfl.log.svr.observeFilter </filterklasse> </Filter> <Filtermapping> <Filter-name> obserservilter </filter-name> <url-herkname>/*/*</*</*/*</*/*</*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*</Ull-Polen>/*
5.Filter verhindert, dass Benutzer auf einige nicht autorisierte Ressourcen zugreifen
Paket com.drp.util.filter; import java.io.ioxception; import Javax.servlet.filter; import Javax.servlet.filterchain; import Javax.servlet.filterconfig; Import Javax.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet.Servlet - javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class AuthFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest servletRequest, ServletResponse ServletResponse, Filterchain Filterchain) löst IOException aus, ServletException {// 1, 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, mit dem ein Servlet oder eine JSP -Seite aufgerufen wird. HttpServletRequest Request = (httpServletRequest) servletRequest; //; // Wenn Sie HTTP -Anforderungen verarbeiten und auf Methoden wie Getheader oder GetCookies zugreifen müssen, die nicht in der servletRequest -Reaktion konstruieren müssen. String currenturl = request.getRequesturi (); // den absoluten Pfad, der dem Root -Verzeichnis entspricht: String targeturl = currenturl.substring (currenturl.indexof ("/", 1), currentUrl.Length ()); // Seave Der aktuelle Dateiname, um httpSession Session zu vergleichen. if (! "/login.jsp" .Equals (targeturl)) {// Beurteilen Sie, ob die aktuelle Seite nach der Umleitung eine Anmeldeseite ist. Wenn ja, machen Sie kein Sitzungsurteil, um eine tote Schleife zu verhindern, wenn (Session == NULL || Session.getAttribute ("Benutzer") == NULL) {//*Nach dem Einmeldung des Benutzers müssen Sie manuell das Sitzungssystem hinzufügen. "/login.jsp")//if Die Sitzung ist leer. Dies bedeutet, dass der Benutzer nicht angemeldet ist, um die Login.jsp -Seite zurückzuleiten;}} // Schließen Sie die Filterkette bei und führen Sie filterchain.dofilter (Anfrage, Antwort); // weiter aus. Rufen Sie die Dofilter -Methode des Filterchain -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. } public void init (filterconfig filterconfig) löst servletException {}} aushtml
<Filter> <filter-name> authfilter </filter-name> <Filterklasse> com.drp.util.filter.AUTHFILTER </filterklasse> </filter> <filter-mapping> <filter-name> Authfilter </filter-name> <urlpatter> filter </urlpattern </urlpattern> //
Zusammenfassen
Das obige Code -Beispiel für diesen Artikel über die Verwendung von Filter in Java. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!