Der Blog erzählt die Verwendung von Interceptors in Form einer Demo
Die Projektstruktur ist in der Abbildung dargestellt:
Benötigte Glas: Für die SpringMVC -Konfiguration und die für JSTL benötigten Gläser sind erforderlich
Beschreibung der Funktion des SpringMVC -Pakets:
Aopalliance.jar: Dieses Paket ist ein AOP -Allianz -API -Paket, das Schnittstellen für Facetten enthält. Normalerweise basieren andere Frameworks wie Frühling, die dynamische Webfunktionen haben
Spring-Core.jar: Diese JAR-Datei enthält die grundlegenden Kern-Tool-Klassen des Spring-Frameworks. Alle anderen Komponenten des Frühlings müssen die Klassen in diesem Paket verwenden, was der grundlegende Kern anderer Komponenten ist. Natürlich können Sie diese Werkzeugkurse auch in Ihrem eigenen Anwendungssystem verwenden.
Externe Abhängigkeitskommons -Protokollierung, (log4j).
Spring-Bean.jar: Diese JAR-Datei wird von allen Anwendungen verwendet. Es umfasst den Zugriff auf Konfigurationsdateien, das Erstellen und Verwalten von Bohnen sowie die Durchführung der Inversion der Steuerung /
Abhängigkeitsinjektion (IOC/DI) sind alle Klassen im Zusammenhang mit. Wenn die Anwendung nur eine grundlegende IOC/DI-Unterstützung erfordert, stellen Sie Spring-Core.jar- und Spring-Bean.jar-Dateien ein.
Spring-Aop.jar: Diese JAR-Datei enthält die Metadatenunterstützung der Klasse und Quellenebene, die bei der Verwendung der AOP-Funktion von Spring in Ihrer Anwendung erforderlich ist. Verwenden Sie Spring -Funktionen basierend auf AOP, z. B. deklaratives Transaktionsmanagement, und nehmen Sie dieses JAR -Paket in die Anwendung ein.
Externe Abhängigkeiten Spring-Core (Federbecken, AOP-Allianz, Cglib, Commons Attribute).
Spring-Context.jar: Diese JAR-Datei bietet viele Erweiterungen für den Spring Core. Alle Klassen, die Sie für die Spring ApplicationContext -Funktion verwenden müssen, können gefunden werden, JDNI
Alle erforderlichen Klassen, Instrumentenkomponenten und verwandten Klassen zur Überprüfungvalidierung.
Externe Abhängigkeitsfedern (Spring-AOP).
Spring-Context-Support: Frühjahrskontext-Erweiterungsunterstützung, verwendet für MVC
Spring-Web.jar : Diese JAR-Datei enthält die Kernklassen, die für die Verwendung in Spring Framework während der Entwicklung von Webanwendungen erforderlich sind, einschließlich Klassen, in denen die Webanwendungskontextfunktionen, Strümpfe und JSF-Integrationsklassen automatisch geladen werden, Klassen für Dateien, Filterklassen und eine große Anzahl von Tool-Auxiliary-Klassen.
Externe Abhängigkeit Spring-Kontext, Servlet-API, (JSP API, JSTL, Commons FileUpload, Cos).
Spring-Webmvc.jar: Diese JAR-Datei enthält alle Klassen im Zusammenhang mit dem Spring MVC-Framework. Enthält Servlets, Web -MVC -Framework, Controller und Unterstützung für das Framework. Wenn Ihre Anwendung ein eigenständiges MVC -Framework verwendet, benötigen Sie natürlich keine Klassen in dieser JAR -Datei.
Externe Abhängigkeit Spring-Web (Frühjahrsunterhalt, Fliesen, Itext, Poi).
Spring-asspects.jar: Bietet Aspekte, damit Aspekt-orientierte Funktionen leicht in IDEs wie Eclipse AJDT integriert werden können.
Externe Abhängigkeiten.
Spring-Jdbc.jar: Diese JAR-Datei enthält alle Klassen, die den JDBC-Datenzugriff von Spring zusammenschließen.
Externe Abhängigkeitsfedern, Spring-DAO.
Spring-Test.Jar: Einfache Verkapselung von Test-Frameworks wie Junit
Spring-Tx.Jar: Spring-Glas für die TX-Transaktionsverarbeitung
Spring-Expression.jar: Frühlingsausdrucksprache
Schreiben Sie einen Controller:
Paket com.mvc.action; import Javax.servlet.http.httpSession; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Login Authentifizierter Controller */@controller public class logincontrol {/** * login * @param session * httpSession * @param userername * username * @param password * password * @return */@Requestmapping (value = "/login") öffentliche Streicher -Login (https ", shttps -Sitzung, String -Session, String -Session, String -Session, String -Session, String und String -Passwort) Ausnahme von Saving (https", shttps -sitzung, String -Session, String -Session, String -Session, String -Pass. Session.SetAttribute ("Benutzername", Benutzername); // Umleitung return "Redirect: Hallo.Action"; }/** * Beenden Sie das System * @param Session * Session * @return * @throws Exception */@RequestMapping (value = "/logout") public String logout (httpSession Session) löst die Ausnahme aus {// Session Session.invalidate (); zurück "redirect: hello.action"; }} Schreiben Sie einen Interceptor:
Paket com.mvc.interceptor; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import Javax.servlet.http.httpSession; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelandView; /*** Login -Authentifizierung Interceptor* /public class loginInterceptor implementiert handlerinterceptor { /*** rufen Sie diese Methode auf, nachdem der Handler ausgeführt wurde. ModelAndView gibt*/public void posthandle (httpServletRequest Request, httpServletResponse -Antwort, Objekthandler, ModelAndView ModelAndView) aus Ausnahme {}/***Diese Methode wurde vor der Handlerausführung aufgerufen. URL String url = request.getRequesturi (); //Url:login.jsp ist öffentlich zugänglich; Diese Demo ist abgefangen, außer login.jsp, andere URLs werden abgefangen, wenn (url.indexof ("login.action")> = 0) {return true; } // Session httpSession Session = Request.GetSession () abrufen; String userername = (String) session.getAttribute ("Benutzername"); if (userername! = null) {return true; } // Wenn die Bedingungen die Bedingungen nicht erfüllen, springen Sie zur Anmeldeschnittstellenanforderung. GetRequestDispatcher ("/web-inf/jsp/login.jsp"). Vorwärts (Anfrage, Antwort); false zurückgeben; }} SpringMVC -Konfigurationsdatei:
<? xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.springframework.org/schema/beans//wwwwwwwwwww. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springFramework.org/schema/context/spring-context-4.0.xsd http://wwwwwwwwwwwww./ww./ww.sprungramework http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-Verwenden Sie die Komponenten-Scan-> <!-Scannen Sie die Aktion, registrieren Sie sie im Spring Container und konfigurieren automatisch die Aktion im Spring Container-> <context: component-scan. name = "/hello.action"> </bean>-> <!-processor mapper handlermaping-> <bean/> <bean> <Eigenschaft name = "messageConverters"> <list> <bean> </bean> </list> </Property> </bean> <! value = "org.springFramework.web.servlet.view.jstlview"> </property> <Eigenschaft name = "prefix" value = "/web-inf/jsp/"/> <Eigenschaft name = "suffix" value = ". This tag is to enable annotation--> <mvc:annotation-driven></mvc:annotation-driven> <!-- Interceptor--> <mvc:interceptors> <!-- Multiple interceptors, executed sequentially --> <mvc:interceptor> <mvc:mapping path="/**"/> <bean></bean> </mvc:interceptor> </mvc: Interceptors> </beans>
Login -Schnittstelle:
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> </head> <body> <form action = "$ {pageContext.request.ContextPath} /login.Action" methode "post"> username: <input type "text value = "login"/> </form> </body> </html> Nach erfolgreicher Anmeldung springen Sie zur Schnittstelle
hello.jsp
<%@page Language = "java" import = "java.util. Präfix = "Form" %> < %@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %> < %String path = request.getContextPath (); String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'hello.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type = "text/css" href = "styles.css"> -> </head> <body> aktueller Benutzer: $ {Benutzername} <c: if test = "$ {userername! </body> </html> Hellocontrol.java, ich schreibe es in helloWorld -Form und muss es gemäß dem Projekt ändern.
Paket com.mvc.action; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.RequestMapping; // Diese Klasse als Handler -Prozessor @Controller public class HelloAction {@RequestMapping ("/hello") // Die URL entwickeln, die dieser Kontrollklasse public String Hallo (Modellmodell) {String Message = "SpringMvc" entspricht; // Attribut für das Modellmodell hinzufügen. zurück "Hallo"; } // public modelAndView Handlreequest (httpServletRequest -Anforderung, // httpServletResponse -Antwort) löst eine Ausnahme aus {// //// eine Informationszeile auf der Seite // String message = "Hallo Welt!"; // // // die Informationen auf der Seite über das Anforderungsobjekt // //request.setattribute("Message ", Nachricht); // // modelAndView modelAndView = new modelAndView (); // // äquivalent zu Request.SetAtTribute (), Daten an die Seite übergeben, um // // Modelldaten // modelandView.addObject ("meldung", meldung); // // Ansicht setze // modelandView.setViewName ("Hallo"); // // modelAndView zurückgeben; //}} 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.