Résumé: Plusieurs fois, nous modifierons des bugs d'autres collègues, ou même des bugs de collègues qui sont déjà partis. Parfois, nous cliquons sur la page et ne pouvons pas aller à quel contrôleur correspond à l'arrière-plan. En réponse à ce problème, nous pouvons réellement utiliser l'intercepteur SPRNGMVC pour bloquer les demandes de l'utilisateur pour savoir quelle classe demande la page. Bien sûr, ces informations sur le journal imprimées peuvent ne pas convenir au placement dans l'environnement de production, ou cet intercepteur n'est pas non plus nécessaire. . . .
1. Utilisation de HandlerInterceptor
Étape 1: Enregistrez l'intercepteur
<! - Enregistrer les intercepteurs -> <MVC: Interceptors> <Bean /> </ MVC: Interceptors>
Étape 2: Hériter du gestionnaire de l'interception et implémentez l'intercepteur
Package com.iflashbuy.limanman; import java.util.iterator; import java.util.map; import javax.servlet.http.httservletRequest; import javax.servlet.http.httpservletReSponse; import org.slf4j.logger; import org.slf4j.logger org.springframework.web.servlet.handlerInterceptor; import org.springframework.web.servlet.modelandView; public class ControlInterceptor implémente le gestionnaire de gestion AfterCompletion (HttpServletRequest Request, HttpServletResponse Response, objet arg2, exception arg3) lève exception {} @OverridePublic void Posthandle (httpservletRequest arg0, httpservletResponse arg1 Boolean Prehandle (demande httpservletRequest, httpservletResponse arg1, objet arg2) lève une exception {int i = 1; try {@suppresswarnings ("non cochée") map <string> parmmap = request.getParameTermap (); iterator <string> iter = Parmmap.KeySet (). (iter.hasnext ()) {objet key = iter.next (); objet valeur = parmmap.get (key); logger.info ("th" + i + "param ----> {} - {}", key, value); i = i + 1;}} catch (exception e) {i = 1;} i = 1; return true;}}}2. L'effet des informations d'impression d'arrière-plan
3. Développez l'utilisation des intercepteurs pour obtenir l'authentification HTTP de base
/ ** * appelé après avoir exécuté le contrôleur, c'est-à-dire en quittant * / @ OverRidepublic void AfterCompletion (HttpServletRequest Request, httpservletResponse Response, objet arg2, exception arg3) lève exception {logger.info ("classname --->" + arg2); Logger.info ("request --->" + remercie);} Posthandle (demande httpservletRequest, réponse httpservletResponse, objet arg2, modelandview arg3) lève une exception {} @OverRidePublic Boolean Prehledle (objet arg2) lance la demande de session (stringa). (SessionAuth! = null) {System.out.println ("Ceci est la prochaine étape"); nextStep (request, réponse);} else {if (! checkHelemerAuth (request, réponse)) {réponse.setStatus (401); réponse.setheader ("cache-control", "no-store"); Response.setDateheader ("expirees", 0 " request.getheader ("Authorization"); System.out.println ("AUTH codé dans la base64 est" + getFrombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = Auth.SubString (6, Auth.length ()); String DecodEdAuth = GetFrombase64 (Auth); décodé à partir de la base64 est "+ decodedAuth); request.getSession (). setAttribute (" auth ", decodedAuth); return true;} else {return false;}} private string getFrombase64 (String s) {if (s == null) return null; try {byte [] encodebase64 = Base64.EncodeBase64 (s.GetBytes ("UTF-8")); retourner la nouvelle chaîne (EncodeBase64);} Catch (UnsupportEdenCoDingException e) {return null;}} public void NextStep (httpservletRequest request, httpservletResponse Response) Throws ioException {System.out.Printl (yo contrôleur ");}Résumer
Ce qui précède est l'intégralité du contenu de cet article sur l'exemple de code du code d'utilisation de SpringMVC Interceptor HandlerInterceptor, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
Spring Interceptor HandlerInterceptor Interceptor Interface Code Analyse
Partage de code d'interceptor de connexion implémenté par Spring MVC
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!