ControllMappings.dml设置了一个过滤器,过滤器的Java实现代码如下。

代码路径:src\main\java\org\xworker\web\LogFilter.java。其中create(ActionContext actionContext)静态方法是模型调用的,用于创建Java对象实例。

package org.xworker.web;

import org.xmeta.ActionContext;
import xworker.lang.executor.Executor;
import xworker.lang.util.path.PathResult;
import xworker.web.servlet.*;

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

public class LogFilter implements Filter {
    private static final String TAG = LogFilter.class.getName();

    @Override
    public void doFilter(PathResult<?> pathResult, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws IOException, ServletException {
        Executor.info(TAG, "Request: " + httpServletRequest.getRequestURI());
        Executor.info(TAG, "Content-Type: " + httpServletRequest.getContentType());
        Enumeration<String> headerNames = httpServletRequest.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement();
            Executor.info(TAG, "Header:" + name + "=" + httpServletRequest.getHeader(name));
        }

        filterChain.doFilter(pathResult, httpServletRequest, httpServletResponse);

        Executor.info(TAG, "Response: Content-Type: " + httpServletResponse.getContentType());
    }

    //org.xworker.ControllMappings/@LogFilter/@actions/@createFilter
    public static LogFilter create(ActionContext actionContext) {
        return new LogFilter();
    }
}

 

Copyright ©  2007-2019 XWorker.org  版权所有  沪ICP备08000575号