今天接触到项目中统一记录后台操作日志的方法,记录一下以备后用,步骤很简单:
- 创建XXXFilter(一个过滤器)
- 解析request中的url和对应的参数并且存储
首先因为所有的请求,造作都应该通过过滤器。所以我们需要创建一个,并在web.xml中声明
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.gss.manage.common.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/manage/*</url-pattern>
</filter-mapping>
然后就是处理请求:
//这边是主要代码
doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2)//实现方法
HttpServletRequest request = (HttpServletRequest) arg0;
Map<String, String[]> map = request.getParameterMap();
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, String[]> entry : map.entrySet()) {
if (StringUtils.isNotBlank(entry.getKey())
&& StringUtils.isNotBlank(entry.getValue()[0])) {
sb.append(entry.getKey()).append("=");
for (String value : entry.getValue()) {
sb.append(value).append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append("&");
}
}
if (sb.length() > 0) {
sb = sb.deleteCharAt(sb.length() - 1);
}
//其中的sb就是参数列表
//url则是请求到的接口名
=-= 现在想到以前刚出来的同事几乎把项目中每个接口自己多写调用日志service,就像找个墙角笑笑 o(*≧▽≦)ツ┏━┓ ,真是“辛苦了”。