0
点赞
收藏
分享

微信扫一扫

从request中只能获取一次post方式提交的参数


  一.问题描述:

  在给app做token验证的时候,要先在拦截器中获取到提交的参数并进行判断,如果携带的token不为空并且验证成功就放行,否则提示token验证失败。但是在interceptor中获取了参数之后,在controller中就获取不到参数了,因为在request中获取post方式提交的参数是从流中获取的,并且只能获取一次。

  二.解决办法。

  1.将参数存放到本地线程中(threadlocal)中。

  2.是用servlet中的HttpServletRequestWrapper对request进行包装。

  三.具体实现

  @1将参数存放到本地线程(开发环境为jfinal)

  1.新建一个类实现interceptor接口重写intercept方法

  2.配置拦截器

  jfinal拦截器的配置方式

  3.threadlocal工具类

  将参数存放到本地线程(开发环境为springmvcl)

  1.新建一个拦截器实现HandlerInterceptor接口重写preHandle(),postHandle(),afterCompletion()。

  preHandle()在进入方法之前进行拦截。

  postHandle()在进入方法之后,视图渲染之前拦截。

  afterCompletion()在请求方法之后进行拦截。

  将参数存放到本地线程的方式,controller中获取参数的方式为:

  @2使用HttpServletRequestWrapper对request进行包装

  1.创建拦截器实现HandlerInterceptor 接口

  2.拦截器的配置和上面的方式一样,根据框架选择相应的配置。

  3.croller中接受参数的方式

举报

相关推荐

0 条评论