Wenn Sie nicht angemeldet sind, dürfen Sie nicht auf die Seiten im Hintergrundordner zugreifen. Wie kann ich bestimmen, ob Sie sich anmelden? Hintergrund ist ein Schlüsselverzeichnis. Jeder, der dieses Verzeichnis betreibt, muss es in die Protokolltabelle schreiben. Wie implementiere ich es? Interceptor ist eine der Implementierungslösungen.
(1) Fügen Sie den Systeminterceptor im Com.geloin.spring.Interceptor -Paket hinzu und machen
/ ** * * @Author Geoin */ Package com.geloin.spring.Interceptor; Import Java.io.printwriter; Import Java.util.iterator; import Java.util.map; import Javax.annotation.Resource; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import org.springframework.stereotype.repository; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.embest.ruisystem.form.SystemLoggerForm; import com.embest.ruisystem.form.SystemSerform; import com.embest.ruisystem.service.SystemLoggerservice; import com.embest.ruisystem.util.constants; import com.embest.ruisystem.util.datautil; / ** * * @Author Geoin */ @repository public class SystemInterceptor erweitert HandlerInterceptorAdapter {@resource (name = "systemLoggerservice") Private SystemLoggerservice SystemLoggerservice; / * * (nicht javadoc) * * @see * org.springframework.web.servlet.handler.HandlerInterceptoradapter#Prehandle * (javax.servlet.http.httpletRetRetReque, * javax.Servlet.http.httpletretResponse, javax.Servlet.http.httpletretresponse, javax.objekt. @Suppresswarnings ({"rawttypes", "Deaktiviert"}) @Override public boolean prehandle (httpServletRequest Request, httpServletResponse-Antwort, Objekthandler) löst Ausnahme {Request.Setcharactercoding ("utf-8"); response.setcharactercoding ("utf-8"); Antwort.SetContentType ("text/html; charSet = utf-8"); // Hintergrundsitzungssteuerungsstring [] nofilters = new String [] {"login.html", "vericode.html", "index.html", "logout.html"}; String uri = request.getRequesturi (); if (uri.indexof ("Hintergrund")! = -1) {boolean BeFilter = true; für (string s: nofilter) {if (uri.indexof (s)! = -1) {befilter = false; brechen; }} if (BeFilter) {Object obj = request.getSession (). getAtTribute (constants.Logined); if (null == obj) {// nicht in Printwriter out = response.getWriter () angemeldet; StringBuilder Builder = new StringBuilder (); Builder.Append ("<script type =/" text/javaScript/"charset =/" utf-8/">"); Builder.Append ("Alarm (/" Seite abläuft, bitte melden Sie sich erneut an/");"); Builder.Append ("window.top.location.href =/" "); builder.Append (Constants.basepath); builder.Append ("/Hintergrund/index.html/"; </script>"); out.print (builder.tostring ()); out.close (); false zurückgeben; } else {// log String orateContent = constants.operateContent (URI) hinzufügen; if (null! String ip = request.getRemoteaddr (); Integer userID = ((SystemUserForm) obj) .getId (); SystemLoggerForm Form = new SystemLoggerForm (); Form.SetUerID (userId); Form.Setip (IP); Form.SetOperateContent (OperateContent); Form.Seturl (URL); this.SystemLoggerservice.edit (Form); }}}} Map paramsmap = request.getParametermap (); für (iterator <map.Entry> it = paramsmap.EntrySet (). iterator (); it .hasnext ();) {map.entry -Eintrag = it.Next (); Object [] values = (Object []) Eintrag.getValue (); für (Objekt obj: Werte) {if (! datautil.isValuesuccessed (obj)) {neue runTimeexception werfen ("Es gibt illegale Zeichen:" + obj); }}} return Super.pehandle (Anfrage, Antwort, Handler); }}(2) Ändern Sie den Context-Dispatcher.xml, um die Feder-Interceptors verwalten zu lassen
<MVC: Interceptors> <bean /> < /mvc: interceptors>
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.