HandlerInterceptor如何在springMVC中使用

  介绍

HandlerInterceptor如何在springMVC中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>一、HandlerInterceptor用法

<强>第一步:注册拦截器

& lt; !——,注册拦截器,——比;   & lt; mvc: interceptors>   & lt; bean 类=癱om.project.base.interceptor.ControlInterceptor",/比;   & lt;/mvc: interceptors>

<强>第二步:继承HandlerInterceptor,实现拦截器

package  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  org.slf4j.LoggerFactory;   import  org.springframework.web.servlet.HandlerInterceptor;   import  org.springframework.web.servlet.ModelAndView;   public  class  ControlInterceptor  implements  HandlerInterceptor {   时间=private  Logger  Logger  LoggerFactory.getLogger (getClass ());/* *   ,*执行完控制器后调用,即离开时   ,*/@Override   public  void  afterCompletion (HttpServletRequest 请求,   HttpServletResponse 响应,Object 最长,Exception 长度)   throws  Exception  {   }   @Override   public  void  postHandle (HttpServletRequest  arg0, HttpServletResponse  __arg1、, Object 最长,,ModelAndView 长度)   throws  Exception  {//,TODO  Auto-generated  method 存根   }   @Override   public  Boolean  preHandle (HttpServletRequest 请求,,HttpServletResponse  __arg1、, Object 最长),throws  Exception  {   int 小姐:=,1;   try  {   @SuppressWarnings (“unchecked")   字符串,Map, parmMap =, request.getParameterMap ();   Iterator

<强>二,后台打印信息效果

 HandlerInterceptor如何在springMVC中使用“> </p> <p> <强>三、拓展使用拦截器实现http基本认证</强> </p> <pre类=/* *   ,*执行完控制器后调用,即离开时   ,*/@Override   public  void  afterCompletion (HttpServletRequest 请求,   HttpServletResponse 响应,Object 最长,Exception 长度)   throws  Exception  {   logger.info(“类名——→“,+,最长);   logger.info(“请求——→“,+,请求);   }   @Override   public  void  postHandle (HttpServletRequest 请求,   HttpServletResponse 响应,Object 最长,ModelAndView 长度)   throws  Exception  {   }   @Override   public  Boolean  preHandle (HttpServletRequest 请求,   HttpServletResponse 响应,Object 最长),throws  Exception  {   String  sessionAuth =,(字符串),request.getSession () .getAttribute (“auth");   if  (sessionAuth  !=, null), {   System.out.println(“却;能够is  next  step");   nextStep(请求,响应);   },{else    if  (! checkHeaderAuth(请求,响应),{   response.setStatus (401);   response.setHeader (“Cache-Control",,“no-store");   response.setDateHeader (“Expires",, 0);   response.setHeader (“WWW-authenticate",,“Basic 领域=\“请输入管理员账号密码\““);   return 假;   }   }   return 真实;   }   private  Boolean  checkHeaderAuth (HttpServletRequest 请求,   HttpServletResponse 响应),throws  IOException  {   String  auth =, request.getHeader (“Authorization");   System.out.println (“auth  encoded 拷贝base64  is “, +, getFromBASE64(身份验证);   if  ((auth  !=, null),,,, (auth.length(),祝辞,6)),{   时间=auth  auth.substring (6, auth.length ());   String  decodedAuth =, getFromBASE64(身份验证);   System.out.println (“auth  decoded 得到base64  is “, +, decodedAuth);   request.getSession () .setAttribute (“auth",, decodedAuth);   return 真实;   },{else    return 假;   }   }   private  String  getFromBASE64 (String  s), {   if  (s ==, null)   return 零;   try  {   时间=byte [], encodeBase64  Base64.encodeBase64 (s.getBytes (“UTF-8"));   return  new 字符串(encodeBase64);   }   catch  (UnsupportedEncodingException  e), {   return 零;   }   }   public  void  nextStep (HttpServletRequest 请求,   null   null   null

HandlerInterceptor如何在springMVC中使用

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5