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

📄 webappconfigxml.java

📁 通讯计费系统
💻 JAVA
字号:
package cfq.fare.config;

import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;

public class WebAppConfigXML {
	//org/apache/commons/collections/ArrayStack
	 WebApp webApp=null;
	private final static String filePath=System.getProperty("user.dir")+
										File.separator+
										"WEB-INF"+
										File.separator+
										"web.xml";
	
	private WebAppConfigXML() throws IOException, SAXException{
		parseWebAppXml();
	}
	
	private static WebAppConfigXML webAppConfXml;
	
	public static WebAppConfigXML getWebAppConfXmlInstance() throws IOException, SAXException{
		if(webAppConfXml==null){
			return new WebAppConfigXML();
		}else{
			return webAppConfXml;
		}
	}
	
	public WebApp getWebApp(){
		return webApp;
	}
	
	public static void main(String[] args)throws Exception{
		WebAppConfigXML wcm=new WebAppConfigXML();
		wcm.parseWebAppXml();
		CfqDataSource cfqdb=wcm.webApp.getDataSource("test");
		System.out.println("**********8"+cfqdb.toString());
		
	}
	
	
	public void parseWebAppXml() throws IOException, SAXException{
		
		Digester digester=new Digester();
		digester.setValidating(false);
		//封装<web-app>
		digester.addObjectCreate("web-app", WebApp.class);
		digester.addBeanPropertySetter("web-app/description", "description");
		
		//封装<servlet>
		digester.addObjectCreate("web-app/servlet", Servlet.class);
		digester.addBeanPropertySetter("web-app/servlet/servlet-name", "servletName");
		digester.addBeanPropertySetter("web-app/servlet/servlet-class", "servletClass");
		
		digester.addObjectCreate("web-app/servlet/init-param", InitParam.class);
		digester.addBeanPropertySetter("web-app/servlet/init-param/param-name", "paramName");
		digester.addBeanPropertySetter("web-app/servlet/init-param/param-value", "paramValue");
		digester.addSetNext("web-app/servlet/init-param", "setParamMap");
		digester.addSetNext("web-app/servlet", "setServletMap");
		
		//封装<servlet-mapping>
		digester.addObjectCreate("web-app/servlet-mapping", ServletMapping.class);
		digester.addBeanPropertySetter("web-app/servlet-mapping/servlet-name", "servletName");
		digester.addBeanPropertySetter("web-app/servlet-mapping/url-pattern", "urlPattern");
		digester.addSetNext("web-app/servlet-mapping", "setServletMapingMap");
		
		//封装<Resource />
		digester.addObjectCreate("web-app/Resource" , CfqDataSource.class);
		digester.addSetProperties("web-app/Resource" , "name", "name");
		digester.addSetProperties("web-app/Resource" , "maxActive", "maxActive");
		digester.addSetProperties("web-app/Resource" , "maxIdle", "maxIdle");
		digester.addSetProperties("web-app/Resource" , "maxWait", "maxWait");
		digester.addSetProperties("web-app/Resource" , "userName", "userName");
		digester.addSetProperties("web-app/Resource" , "password", "password");
		digester.addSetProperties("web-app/Resource" , "driverClassName", "driverClassName");
		digester.addSetProperties("web-app/Resource" , "url", "url");
		digester.addSetNext("web-app/Resource", "setCfqDataSourceMap");
		
		
		File file=new File(filePath);
		
	    webApp=(WebApp)digester.parse(file);
	  //  System.out.println(webApp.toString());
		
		
	}

}

⌨️ 快捷键说明

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