转载自:https://blog.csdn.net/qq_30121245/article/details/52861935

1) 在项目中加入相应的包和类,加载那里无所谓,只要web.xml配置正确即可

package filters;

import java.io.IOException
import java.util.Enumeration;

import javax.servlet.*;

public final class PostDataDumperFilter implements Filter {

private FilterConfig filterConfig = null;

public void destroy() { 
this.filterConfig = null; 
}

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOExceptionServletException { 
if (filterConfig == null) 
return;

Enumeration names = request.getParameterNames(); 
StringBuffer output=new StringBuffer(); 
while (names.hasMoreElements()) { 
String name = (String) names.nextElement(); 
output.append(name+"="); 
String values[] = request.getParameterValues(name); 
for (int i = 0; i < values.length; i++) { 
if (i > 0) output.append("' "); 
output.append(values[i]); 

if(names.hasMoreElements()) output.append("&"); 

request.setAttribute("post", output); 
chain.doFilter(request, response); 
}

public void init(FilterConfig filterConfig) throws ServletException { 
this.filterConfig = filterConfig; 

}

2) 配置web.xm,一般在路径 main/webapps/WEB-INF/web.xml: 
<filter> 
<filter-name>post-data-dumper-filter</filter-name> 
<filter-class>filters.PostDataDumperFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>post-data-dumper-filter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>

3) now you have the attribute postdata for each request and you can easily log it in access valve, for example:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
                prefix="localhost_access_log." suffix=".txt" 
                pattern='%h %p %H %l %u %t "%r" params={%{post}r} %s %bbytes %Dms' resolveHosts="false"/>

最新文章

  1. div内容滚动,无缝滚动
  2. sql优化建议
  3. iOS中集成ijkplayer视频直播框架
  4. 《K&amp;R》中引用的几个排序算法(shellsort、)以及一个自己乱写的排序
  5. [Reship]如何回复审稿人意见
  6. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
  7. php中类的声明与使用
  8. delphi xe5 android 开发实现手机打电话和发短信
  9. php 获取域名的whois 信息
  10. Scala开启之旅
  11. 使用Qt设计师文件的3种方式
  12. template.helper()方法
  13. Cocos2d-x 实战
  14. oracle学习笔记(二) 基本数据类型
  15. selenium&#160;win7+selenium2.0+python环境搭建
  16. OO Summary Ⅲ
  17. 样条之Akima光滑插值函数
  18. android ImageView加圆角
  19. python的select服务端的代码和客户端的代码
  20. java IO流之——File类知识总结和面试

热门文章

  1. WebRTC 学习之 Conference 实现混音混屏
  2. TI 开发板安装USB转串口驱动
  3. Spring Boot 1.5.10 发布:修复重要安全漏洞!!!
  4. javaweb目录结构简介
  5. Alienware 15 R3 装Ubuntu 和 win10 双系统
  6. HTML页面自动跳转,windows操作
  7. 全网最详细的Eclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)
  8. spring-boot-2.0.3源码篇 - 国际化
  9. Java提高篇之理解java的三大特性——继承
  10. Jmeter获取接口返回数组的长度