⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filterfactory.java

📁 更不用说了,我培训期间的资料,包括每天老师的例子.文件主要包括,HIBERNATE的配置,一对多,多对多.别的就是些平时的自己作业.XML方面也有.我感觉很适合,想学习这方面的却没有适合练习的人,毕竟
💻 JAVA
字号:
package server.business.filter;
import javax.xml.parsers.*;

import org.w3c.dom.*;

import java.util.*;
public class FilterFactory {
	private static FilterFactory instance=new FilterFactory();
	private FilterFactory(){}
	public static FilterFactory newInstance(){
		return instance;
	}
	//根据配置文件,生成过滤器链,返回头节点
	public Filter getFilter(){
		try {
			List<Filter> filters=new ArrayList<Filter>();
			
			List<String> names=this.getFilterNames();
			
			for(String s:names){
				Class c=Class.forName(s);
				Object o=c.newInstance();
				filters.add((Filter)o);
			}
			
			for(int i=0;i<filters.size()-1;i++){
				Filter f1=filters.get(i);
				Filter f2=filters.get(i+1);
				f1.setNext(f2);
			}
			return filters.get(0);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		
	}
	private List<String> getFilterNames() throws Exception{
		List<String> names=new ArrayList<String>();
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		DocumentBuilder builder=factory.newDocumentBuilder();
		Document doc=builder.parse("config/filter.xml");
		
		NodeList filters=doc.getElementsByTagName("Filter");
		for(int i=0;i<filters.getLength();i++){
			Element e=(Element)(filters.item(i));
			String name=e.getTextContent().trim();
			names.add(name);
		}
		
		return names;
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -