拦截器中获取restful风格参数
Posted youngyajun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拦截器中获取restful风格参数相关的知识,希望对你有一定的参考价值。
controller层:
@GetMapping(value = "/api/users/{device}")
public ResultDO get(@PathVariable("device") String device){
***
}
拦截器中:
public class ParameterInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//传统方式获取
String device = request.getParameter("device");
System.out.println("传统方式获取device: " + device);
//map方式
Map map = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
System.out.println("map封装格式: " + map);
return true;
}
***
}
配置拦截器:
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
@Autowired
private ParameterInterceptor parameterInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(parameterInterceptor).addPathPatterns("/api/users/**");
}
@Bean
public ParameterInterceptor parameterInterceptor(){
return new ParameterInterceptor();
}
}
运行sprinboot项目访问访问 URL: http://127.0.0.1:8080/api/users/andriod 测试,查看控制台输出:
传统方式获取device: null
map封装格式: {device=andriod}
说明request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE)这种方式能获取到restful风格的参数
以上是关于拦截器中获取restful风格参数的主要内容,如果未能解决你的问题,请参考以下文章
Springday05 SpringMVC访问静态资源操作请求域控制器方法返回值JSON数据交互RESTful风格文件上传异常处理拦截器