Resumen: Muchas veces modificaremos errores de otros colegas, o incluso errores de colegas que ya se han ido. A veces hacemos clic en la página y no podemos ir a qué controlador corresponde al fondo. En respuesta a este problema, podemos usar el interceptor SPRNGMVC para bloquear las solicitudes de los usuarios para saber qué clase solicita la página. Por supuesto, esta información de registro impreso puede no ser adecuada para la colocación en el entorno de producción, o este interceptor también es innecesario. . . .
1. Uso de Handlerinterceptor
Paso 1: Registre el interceptor
<!-Registrar interceptores-> <MVC: Interceptores> <Bean /> < /MVC: Interceptores>
Paso 2: Heredar HandlerInterceptor e implementar el Interceptor
paquete com.iflashbuy.limanman; import java.util.iterator; import java.util.map; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import org.slf4j.logger; import og.slf4j.logyor org.springframework.web.servlet.handlerInterceptor; import org.springframework.web.servlet.modelandView; public class Controlinterceptory implementa HandlerInterceptor {private logger logger = loggerFactory.getLogger (getClass ());/** * Después de ejecutar el controlador, cuando deja */@@overnegro AfterCompletion (HttpServletRequest Solicitud, HttpServletResponse Respuesta, Object Arg2, Exception Arg3) lanza la excepción {} @OverridePublic Void Posthandle (httpservletRequest, httpServletResponse arg1, object arg2, modelandview arg3) lanza excepción {// ado auto-gen-generated method stub} stub} Boolean PreHandle (httpservletRequest solicitud, httpServletResponse arg1, objeto arg2) lanza la excepción {int i = 1; try {@SupplesSWarnings ("Unchecked") map <String, object> parmmap = request.getParamEtermap (); iterator <tring> iter = parmmap.keSet (). Iterator (););); (iter.hasnext ()) {objeto clave = iter.next (); objeto value = parmmap.get (key); logger.info ("th" + i + "param ----> {}-{}", key, valor); i = i + 1;}} capt (excepción e) {i = 1;} i = 1; regreso true;}}}2. El efecto de la información de impresión de fondo
3. Expanda el uso de interceptores para lograr la autenticación HTTP básica
/** * llamó después de ejecutar el controlador, es decir, al dejar */@overridePublic void AfterCompletion (httpservletRequest solicitud, httpServletReSponse respuesta, objeto arg2, excepción arg3) lanza la excepción {logger.info ("className --->" + arg2); logger.info ("solicitud --->" + solicitud);} Posthandle (httpservletRequest solicitud, respuesta httpServletResponse, object arg2, modelandView arg3) lanza la excepción {} @OverridePublic Boolean prehandle (httpservletRequest solicitud, httpServletResse respuesta, objeto arg2) lanza excepción {string sessionAuth = (string) request.getSession (). (SessionAuth! = Null) {System.out.println ("Este es el siguiente paso"); nextstep (request, respuesta);} else {if (! checkheaderauth (request, respuesta)) {Response.setStatus (401); Response.Sheader ("Cache-Control", "No-store"); Response.SetEdateHeader ("Expires", "," Expires ",", ",", "Expires", 0); Response.Setheader ("www-autenticate", "Basic Realm =/" Ingrese la contraseña de la cuenta de administrador/""); return false;}} return true;} private boolean checkheaderauth (httpservletRequest solicitud, httpServletResponse respuesta) lanza ioxception {cadena auth = auth = auth = auth = request.getheader ("autorización"); system.out.println ("auth codificada en base64 es" + getFrombase64 (auth)); if ((auth! = null) && (aut.length ()> 6)) {auth = auth.substring (6, auth.length ()); string decodedAuth = getFrombase64 ( decodificado desde base64 es " + decodeDauth); request.getSession (). setAttribute (" auth ", decodauth); return true;} else {return false;}} private strombase64 (string s) {if (s == null) return null; intente {byte [] encodebase64 = Base64.encodeBase64 (s.getBytes ("utf-8")); return new String (encodeBase64);} catch (UnsupportedEncodeNingException e) {return null;}} public void nextStep (httpServletRequest, httpServletResponse Response) lanza IOException {System.out.out.Println ("puede ir a la solicitud a (" puede ir a la respuesta) que puede ir a ("puede ir (", lo que puede ir (",", lo que puede ir ("," puede ir (",", lo que puede ir (",", ",", lo puede hacer (". controlador ");}Resumir
Lo anterior es todo el contenido de este artículo sobre el ejemplo del código del código de uso del HandlerRinterceptor de Interceptor SpringMVC, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a este sitio:
Spring Interceptor Handlerinterceptor Interceptor Interface Code Analysis
Iniciar sesión compartir el código del interceptor implementado por Spring MVC
Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!