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
但是最近做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
相关文章推荐
- JavaWeb学习记录总结(二十九)--Servlet\Session\Cookie\Filter实现自动登录和记住密码
- android利用httpclient实现post、get请求restful接口进行json和form表单数据提交等公共方法类
- wcf利用IDispatchMessageInspector实现接口监控日志记录和并发限流
- Servlet、Tomcat访问(access)日志配置、记录Post请求参数
- 接口日志记录AOP实现-LogAspect
- SpringMVC4.0实现rest风格接口,json格式请求和返回
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- java中javax.servlet.Filter这个接口实现登陆验证之类得说明
- servlet 的filter,日志文件记录执行时间
- spring aop实现拦截接口请求打印日志
- ionic3+Angular4实现接口请求及本地json文件读取示例
- Java实现app接口和Socket消息传递(6)servlet映射并返回Json数据
- Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(json web token) 用户发送按照约定,向服务端发送 Header、Payload 和 Signature,
- 记录程序日志(日志实现和统一接口)
- WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)
- Spring Security调研记录【二】--实现异步Json请求的基本认证与Url权限控制
- Java Servlet Filter实现Web路径和用户日志过滤器
- 使用json实现ajax请求servlet
- 全Sql语句实现SBO事务日志记录与查询
- 请教.Net平台大型业务系统中“日志记录” 的较好解决办法,类似Java下用AOP方式实现的最好