CacheFilter.java Source code

Java tutorial

Introduction

Here is the source code for CacheFilter.java

Source

/*
 ************************************************************************************
 * Copyright (C) 2001-2006 Openbravo S.L.
 * Licensed under the Apache Software License version 2.0
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to  in writing,  software  distributed
 * under the License is distributed  on  an  "AS IS"  BASIS,  WITHOUT  WARRANTIES  OR
 * CONDITIONS OF ANY KIND, either  express  or  implied.  See  the  License  for  the
 * specific language governing permissions and limitations under the License.
 ************************************************************************************
 */

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

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class CacheFilter implements Filter {
    private String[][] replyHeaders = { {} };

    public void init(FilterConfig config) {
        Enumeration<?> names = config.getInitParameterNames();
        ArrayList<String[]> tmp = new ArrayList<String[]>();
        while (names.hasMoreElements()) {
            String name = (String) names.nextElement();
            String value = config.getInitParameter(name);
            String[] pair = { name, value };
            tmp.add(pair);
        }
        replyHeaders = new String[tmp.size()][2];
        tmp.toArray(replyHeaders);
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        for (int n = 0; n < replyHeaders.length; n++) {
            String name = replyHeaders[n][0];
            String value = replyHeaders[n][1];
            httpResponse.addHeader(name, value);
        }
        chain.doFilter(request, response);
    }

    public void destroy() {
    }

}