【发布时间】:2020-03-19 19:29:26
【问题描述】:
我正在开发一个SpringBoot项目,其中有@RestController和FilterRegistrationBean。我添加的过滤器可以工作,但是@RestController和@RequestMapping中配置的url不起作用。当我请求url时,响应码是200,但没有显示内容。当我删除过滤器时,RequestMapping 工作正常。为什么? (我访问的网址是http://localhost:8080/simple) 这是我的代码。 SessionTokenFilter:
public class SessionTokenFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
Map<String, String[]> param_map = servletRequest.getParameterMap();
for(String param_key: param_map.keySet()){
System.out.println("Parameter name: "+param_key);
}
System.out.println("Get a request from the browser!");
}
}
AppConfiguration.java
@Configuration
public class AppConfiguration {
@Bean
public FilterRegistrationBean<SessionTokenFilter> registerFilter(){
FilterRegistrationBean filterBean = new FilterRegistrationBean();
filterBean.setFilter(new SessionTokenFilter());
filterBean.setUrlPatterns(Arrays.asList("/*"));
return filterBean;
}
}
ApiRouters.java
@RestController
public class ApiRouters {
@RequestMapping(value="/simple", method= RequestMethod.GET)
public ResponseEntity simple(){
System.out.println("Simple url matched!");
return ResponseEntity.ok().body("Ok");
}
}
和主入口类:
@SpringBootApplication
public class ApiApplication {
public static void main(String[] args){
SpringApplication.run(ApiApplication.class);
}
}
【问题讨论】:
标签: spring-boot