// Prepare a Digester to scan the web application deployment descriptor Digester digester = new Digester(); digester.push(this); digester.setNamespaceAware(true); digester.setValidating(false);
//....... 省略 ................. // Register our local copy of the DTDs that we can find for (int i = 0; i < registrations.length; i += 2) { URL url = this.getClass().getResource(registrations[i+1]); if (url != null) digester.register(registrations[i], url.toString()); }
// Configure the processing rules that we need // 设置相关的元素和执行规则(rules)的对应 digester.addCallMethod("web-app/servlet-mapping","addServletMapping", 2); digester.addCallParam("web-app/servlet-mapping/servlet-name", 0); digester.addCallParam("web-app/servlet-mapping/url-pattern", 1);
/** * Remember a servlet mapping from our web application deployment * descriptor, if it is for this servlet. * * @param servletName The name of the servlet being mapped * @param urlPattern The URL pattern to which this servlet is mapped */ //当 Digester 在 parse 时将执行 addServletMapping 这个 method public void addServletMapping(String servletName, String urlPattern) {
if (log.isDebugEnabled()) { log.debug("Process servletName=" + servletName + ", urlPattern=" + urlPattern); } if (servletName == null) { return; } if (servletName.equals(this.servletName)) { this.servletMapping = urlPattern; }
} }
相关书目或相关文章 *Jakarta Commons: http://jakarta.apache.org/commons/index.Html *Jakarta Commons Digester: http://jakarta.apache.org/commons/digester.html *Simplify XML file processing with the Jakarta Commons Digester : http://jakarta.apache.org/commons/digester/api/index.html 假如你的英文还可以,可以看看这篇文章: http://www.javaworld.com/javaworld/jw-10-2002/jw-1025-opensourceprofile.html