Springmvc配置后缀.action后,怎么才能不拦截某些无后缀请求
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在 Spring MVC 中,拦截器(Interceptor)是用于拦截 HTTP 请求的。可以通过配置拦截器来对请求进行统一的处理,例如鉴权、日志记录等。而拦截器可以通过配置来指定需要拦截的请求路径或 URL 模式,不需要拦截的请求则可以通过配置来排除。
假设你的 Spring MVC 配置文件中配置了后缀 .action,你可以通过配置拦截器来排除某些无后缀请求。例如,下面是一个配置拦截器的示例:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/test" />
<bean class="com.example.interceptor.MyInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
在编写拦截器时,可以实现 HandlerInterceptor 接口,并重写 preHandle 方法。在该方法中,你可以通过 HttpServletRequest.getRequestURI() 方法获取当前请求的 URI,根据 URI 的后缀判断是否需要拦截。
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String uri = request.getRequestURI();
if (uri.endsWith(".action")) {
// 需要拦截
return false;
} else {
// 不需要拦截
return true;
}
}
}
上面的示例中,如果请求的 URI 后缀为 .action,则返回 false,表示需要拦截;否则返回 true,表示不需要拦截。