requesthandler.java
来自「weblogic应用全实例」· Java 代码 · 共 98 行
JAVA
98 行
package examples.xml.http;
import java.util.*;
import java.net.*;
import org.xml.sax.*;
import java.io.*;
import org.xml.sax.helpers.ParserFactory;
import javax.servlet.http.*;
/**
* 这个类继承了 HandlerBase 用来处理XML文档解析时产生的事件
* 解析文档后,getData() 方法可以用来获取代表XML数据的Hashtable。
*
* @author Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved.
*/
public class RequestHandler extends HandlerBase {
/** 股票交易文档模型 */
private Hashtable trade;
/** 缺省构造器 */
public RequestHandler() {}
//
// 文档处理方法
//
/** 文档开始 */
public void startDocument() throws SAXException {
trade = new Hashtable();
}
/** 元素开始 */
public void startElement(String name, AttributeList attrs) throws SAXException {
if (attrs != null) {
int len = attrs.getLength();
// 增加属性值
for (int i = 0; i < len; i++) {
trade.put(attrs.getName(i), attrs.getValue(i));
}
}
}
//
// 错误处理方法
//
/** 警告 */
public void warning(SAXParseException ex) {
System.err.println("[Warning] "+
getLocationString(ex)+": "+
ex.getMessage());
}
/** 错误 */
public void error(SAXParseException ex) {
System.err.println("[Error] "+
getLocationString(ex)+": "+
ex.getMessage());
}
/** 严重错误 */
public void fatalError(SAXParseException ex) throws SAXException {
System.err.println("[Fatal Error] "+
getLocationString(ex)+": "+
ex.getMessage());
throw ex;
}
private String getLocationString(SAXParseException ex) {
StringBuffer str = new StringBuffer();
String systemId = ex.getSystemId();
if (systemId != null) {
int index = systemId.lastIndexOf('/');
if (index != -1)
systemId = systemId.substring(index + 1);
str.append(systemId);
}
str.append(':');
str.append(ex.getLineNumber());
str.append(':');
str.append(ex.getColumnNumber());
return str.toString();
}
/** 返回解析的数据,以 hashtable 的形式 */
public Hashtable getData() {
return trade;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?