![](/img/trans.png)
[英]jersey 2.2: ContainerResponseFilter and ContainerRequestFilter never get executed
[英]Migrating from jersey to spring-mvc/rest: ContainerRequestFilter, ContainerResponseFilter
出於業務需求,我需要從針織衫遷移到spring-mvc / rest ......
我在spring-mvc中搜索的東西相當於jersey的ContainerRequestFilter
, ContainerResponseFilter
。
有任何想法嗎?
我認為你要找的是HandlerInterceptor
。 您不會在兩類請求/響應風格中找到它,但兩個過濾器方法都以preHandle
和postHandle
的形式包含在同一個類中,它們分別等同於postHandle
filter
和response- filter
。 攔截器包裝處理程序調用。 這是一個例子:
攔截器:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class LogginHandlerInterceptor implements HandlerInterceptor{
@Override
public boolean preHandle(HttpServletRequest hsr,
HttpServletResponse hsr1, Object handler) throws Exception {
System.out.println("preHandle - " + handler);
return true;
}
@Override
public void postHandle(HttpServletRequest hsr, HttpServletResponse hsr1,
Object handler, ModelAndView mav) throws Exception {
System.out.println("postHandle - " + handler);
}
@Override
public void afterCompletion(HttpServletRequest hsr, HttpServletResponse hsr1,
Object handler, Exception excptn) throws Exception {
System.out.println("afterCompletion - " + handler);
}
}
配置:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"..."})
public class WebAppConfiguration extends WebMvcConfigurerAdapter {
...
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogginHandlerInterceptor());
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.