您的位置:首页 > Web前端 > JavaScript

servlet filter实现接口json请求的日志记录

2017-03-08 11:21 260 查看
之前做后台管理系统的操作日志记录很简单,就是用spring mvc的interceptor做拦截器,对配置的URL进行判断拦截,最后记录到数据库或者日志

但是最近做APP的接口请求拦截,发现不那么简单

1 接口使用application/json请求,那么获取参数的时候,就不能用httpServletRequest.getParameterMap(),需要使用httpServletRequest.getInputStream()

2 如果在interceptor里面用httpServletRequest.getInputStream()会产生新的问题,request的流只能读取一次,如果是在preHandle里面读取stream请求的内容,会导致controller获取不到数据了,如果在afterHandle里面读取stream,或读取为空,因为controller已经读取过了

3 百思不得姐,search了一下,还是用Filter来实现,servlet提供了一个wrapper模式的类:HttpServletRequestWrapper,通过他,可以获取到包装后的httpServletRequest

4 具体实现,我上传到oschina的代码里面:

HttpServletRequestReplacedFilter

BodyReaderHttpServletRequestWrapper
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet filter
相关文章推荐