Spring拦截器的实时使用情况是什么?
What are the Real time Usage of Spring Interceptor?
我正在研究 Spring 拦截器,我知道它作为前端控制器工作,它可以服务于一些请求和一些响应或全部,并且在执行流程中,请求首先进入拦截器调用控制器。
但我想了解更多,例如,它的实时场景或用途是什么。例如,我们可以用它来进行会话管理,但我想了解更多。
在提及拦截器在 Web 应用程序中的使用位置之前,我想先提及 2 个关于拦截器的事实 -
在 spring 中拦截器是位于 DispatecherServlet 和控制器之间的东西(你已经知道了)
拦截器界面就像 -
public interface HandlerInterceptor {
boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler);
void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav);
void afterCompletion(HttpServletRequest request, HttpServeletResponse response, Object handler, Exception ex);
}
基于以上事实,您可以在以下情况下使用拦截器 -
您可以在渲染视图之前做额外的工作。例如,当全局导航栏 (GNB) 要求根据其权限以不同方式显示项目时,可以处理网页。
可以模仿AOP。 @RequestMappingIf
声明为请求指定了一个请求,然后它的 HandlerMethod(@Controller
) 将被调用一个处理程序 HandlerMethod。 HandlerMethod 通过识别附加信息,例如方法签名,您可以确定是否要 运行 逻辑。这样您就可以使用拦截器作为登录(拦截 HttpServletRequest
),修改 JSON 或在进入控制器之前或之后对其进行验证。
拦截器的一些实时用法:
- 维护会话/会话管理。
- 电子邮件拍摄和数据库 Check/logging。
- 身份验证和授权验证。
- 请求时间计算。 / 性能调整。
等等
我正在研究 Spring 拦截器,我知道它作为前端控制器工作,它可以服务于一些请求和一些响应或全部,并且在执行流程中,请求首先进入拦截器调用控制器。
但我想了解更多,例如,它的实时场景或用途是什么。例如,我们可以用它来进行会话管理,但我想了解更多。
在提及拦截器在 Web 应用程序中的使用位置之前,我想先提及 2 个关于拦截器的事实 -
在 spring 中拦截器是位于 DispatecherServlet 和控制器之间的东西(你已经知道了)
拦截器界面就像 -
public interface HandlerInterceptor { boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler); void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav); void afterCompletion(HttpServletRequest request, HttpServeletResponse response, Object handler, Exception ex); }
基于以上事实,您可以在以下情况下使用拦截器 -
您可以在渲染视图之前做额外的工作。例如,当全局导航栏 (GNB) 要求根据其权限以不同方式显示项目时,可以处理网页。
可以模仿AOP。
@RequestMappingIf
声明为请求指定了一个请求,然后它的 HandlerMethod(@Controller
) 将被调用一个处理程序 HandlerMethod。 HandlerMethod 通过识别附加信息,例如方法签名,您可以确定是否要 运行 逻辑。这样您就可以使用拦截器作为登录(拦截HttpServletRequest
),修改 JSON 或在进入控制器之前或之后对其进行验证。
拦截器的一些实时用法:
- 维护会话/会话管理。
- 电子邮件拍摄和数据库 Check/logging。
- 身份验证和授权验证。
- 请求时间计算。 / 性能调整。 等等