配置文件中使用正则表达式要注意转义字符格式

Java里直接用正则表达式要这样定义

String pattern = "\\w";

因为java里面 \ 本身就是转义字符。

而把表达式放到配置文件里时就要用"\w"了。就因为这个疏忽,多用了两个小时才结束这个Filter。

写个记录,让自己以后少犯这样的错误。

 web.xml里的filter配置


	evaluationContextFilter
	
		com.gxoa.util.EvaluationContextFilter
	
	
		
		switch
		on
	
	
		
		exceptUrls
		
			project!toCreateProject.do$;(function|role)!\w*.do$
		
		


	evaluationContextFilter
	*.do

  com.gxoa.util.EvaluationContextFilter

public class EvaluationContextFilter implements Filter{
	
	Logger logger = Logger.getLogger(this.getClass());
    
	private boolean isSwitchOn = false;
    
	private Pattern[] exceptUrlArr;

	public void init(FilterConfig config) throws ServletException{
        		isSwitchOn = "on".equalsIgnoreCase(config.getInitParameter("switch"));
        		String regs = config.getInitParameter("exceptUrls");
        		String [] urls = regs.replace("\n", "").replace("\t","").split(";");
        		exceptUrlArr = new Pattern[urls.length];
        		for(int i=0;i

你可能感兴趣的:(core,java)