urlrewrite-3.2.0.jar


最近urlrewrite 3.2.0を使って、普通の需要はすべて満たすことができると感じて、しかしディレクトリ級のURLをする時、いくつかimgのピクチャーを見てすべてrulesを歩きます.とても性能がかかるような気がします.拡張クラスを書くのを手伝って、みんながもっと良い方法があるかどうか分からないで、交流することができます.
---web.xml
//次は正規表現を設定できるような気がします.しかし、以下のような構成で十分なので、まず以下のように使いましょう.

UrlRewriteFilter
com.netxapp.web.common.util.UrlRewriteExcludeSpecFilter

logLevel
debug


excludeURL
/style/,/img/,/images/,/script/



UrlRewriteFilter
/*

----UrlRewriteExcludeSpecFilter

package com.netxapp.web.common.util;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter;

public class UrlRewriteExcludeSpecFilter extends UrlRewriteFilter {
	private FilterConfig config = null;

	private final Log log = LogFactory.getLog(UrlRewriteExcludeSpecFilter.class);

	public void init(FilterConfig filterConfig) throws ServletException {
		this.config = filterConfig;
		log.debug("~~~~~~~~~~~~~~~~~~" + config.getInitParameter("excludeURL"));
		super.init(filterConfig);
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
			ServletException {
		String excludeURLStr = config.getInitParameter("excludeURL");
		boolean isExclude = false;
		if (excludeURLStr != null) {
			String requestURL = ((HttpServletRequest) request).getRequestURI();
			log.debug("~~~~~~~~~~~~~~~~~excludeURL~" + excludeURLStr + "|requestURL=" + requestURL);
			String[] excludeURLs = excludeURLStr.split(",");
			for (int i = 0; excludeURLs != null && i < excludeURLs.length; i++) {
				if (requestURL.startsWith(excludeURLs[i])) {
					isExclude = true;
					break;
				}
			}
		} 
		if (isExclude) {
			chain.doFilter(request, response);
		} else {
			super.doFilter(request, response, chain);
		}

	}
}