我有一个用 Groovy 编写并作为 groovlet 部署在 Tomcat 6.0 上的小项目。 我现在的问题是我需要监控所有传入的请求并对每个请求执行自定义日志记录。
首先我想在每个类中包含一个短代码来输出我需要的内容,但后来我想可能 Tomcat 可以将每个传入的 http 请求发送/复制到我的自定义日志记录类,该类将根据我的喜好解析它并执行一些更多的东西。
有可能吗?如果是怎么办?
P.S: Tomcat 必须是原创的——没有修改/自定义编译。
谢谢。
最佳答案
您可以添加自定义 filter这将进行日志记录。
这是一个示例过滤器实现:
public class YourFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
// do your initialization here
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
// do your custom logging here
}
public void destroy() {
// do whats necessary on end of life
}
}
在 web.xml 中配置/激活过滤器。
...
<filter>
<filter-name>yourFilter</filter-name>
<filter-class>org.example.YourFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>yourFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
关于Tomcat 记录 http 请求并调用 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388893/