我下面有两个URL,都有diff HTTP方法。
1. /v1/user/email (POST)
2. /v1/user/email (PUT)
我只需要从拦截器中排除一个URL。但下面将排除两者。
<mvc:interceptor>
<mvc:exclude-mapping path = "/v1/user/email"/>
</mvc:interceptor>
有没有办法,我们只允许一个URL绕过这个,基于HTTP方法。
答案 0 :(得分:1)
你可以做的最好的方法是编写一个实现Handler Interceptor接口的抽象类,并实现所有3个
的实现afterCompletion执
的postHandle
preHandle(所有3将通过检查请求类型在内部调用抽象方法)
并拥有将由Interceptor类实现的相应抽象方法。
抽象类中的默认方法必须检查请求类型并相应地继续。
public abstract class AbstractHandler implements HandlerInterceptor
{
@Override
public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object handOb, Exception ex) throws Exception
{
if (//check the req type)
{
afterCompletionMethod(req, res, handler, ex);
}
}
public abstract void afterCompletionMethod(HttpServletRequest req, HttpServletResponse res, Object handOb, Exception ex) throws Exception;
}