2 回答
TA贡献1765条经验 获得超5个赞
在提到它可以在 Web 应用程序中的什么地方使用之前,我想提一下关于拦截器的 2 个事实 -
在 spring 中,拦截器位于 DispatecherServlet 和 Controller 之间(你已经知道了)
拦截器界面就像 -
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 或在转到控制器之前或之后对其进行验证。
添加回答
举报