package com.jrails.modules.webapp.filter; import com.jrails.modules.regex.OroRegex; import com.jrails.commons.utils.StringUtils; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.FilterConfig; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletRequest; import java.util.Enumeration; /** * Created by arden * User: <a href="mailto:arden.emily@gmail.com">arden</a> * Date: 2009-5-27 18:01:59 */ public class UrlRewriteFilter extends ReplaceFilter { /** * 重写网页里的链接给其加上我们想要的参数 * @param responseString * @param servletRequest * @param servletResponse * @return */ protected String doReplace(String responseString, ServletRequest servletRequest, ServletResponse servletResponse) { HttpServletRequest request = (HttpServletRequest)servletRequest; String params = ""; FilterConfig config = this.getFilterConfig(); Enumeration keys = config.getInitParameterNames(); for (; keys.hasMoreElements() ;) { String key = (String)keys.nextElement(); String value = config.getInitParameter(key); if (StringUtils.isEmpty(value)) { value = request.getParameter(key.trim()); } if (!StringUtils.isEmpty(value)) { if (!StringUtils.isEmpty(params)) { params += "&" + key + "=" + value; } else { params += key + "=" + value; } } } if (!StringUtils.isEmpty(params)) { return OroRegex.parseWapContent(responseString, params); } return responseString; } public String getTargetString() { return null; } public String getReplacementString() { return null; } }