为什么不能创建document?
jafan 2003-04-25 04:11:34 在Jbuilder6环境下,将html表单提交的数据通过servlet创建为html文档显示,但是失败了:
编译通过,但是运行时提示下面语句中的方法不存在错误:
Document doc=dom.createDocument("","html",null);
在IDE环境中已经包含jdom-0.8b中的Xerces.jar包,在其中的DOMImplementationImpl类中确实存在方法:
public Document createDocument(String p0, String p1, DocumentType p2) throws DOMException { }
不知为什么还有上述错误?
下面是servlet的部分代码:
----------------------------------
//////DomToHtmlservlet.java:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import org.apache.xerces.dom.*;
import org.apache.xml.serialize.*;
public class DomToHtmlservlet extends HttpServlet {
static final private String CONTENT_TYPE = "text/html; charset=GBK";
private static DOMImplementation dom=new DOMImplementationImpl();
private static OutputFormat of=new OutputFormat("html","utf-8",false);
private HTMLSerializer serializer=new HTMLSerializer();
//////////Initialize global variables
public void init() throws ServletException {
}
///////////Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//create the document
Document doc=dom.createDocument("","html",null); //////////错误处
Node html=doc.getFirstChild();
//create the document skeleton
Node head=html.appendChild(doc.createElement("head"));
Node title=head.appendChild(doc.createElement("title"));
title.appendChild(doc.createTextNode("Simple DOM servlet"));
Node body=html.appendChild(doc.createElement("body"));
//create a table
Node table=body.appendChild(doc.createElement("body"));
Node tr=table.appendChild(doc.createElement("tr"));
Node th=tr.appendChild(doc.createElement("th"));
th.appendChild(doc.createTextNode("Parameter Name"));
th=tr.appendChild(doc.createElement("th"));
th.appendChild(doc.createTextNode("Parameter Value"));
//populate the table
Enumeration parameterNames=request.getParameterNames();
while(parameterNames.hasMoreElements()){
String parameterName=parameterNames.nextElement().toString();
tr=table.appendChild(doc.createElement("tr"));
Node td=tr.appendChild(doc.createElement("td"));
td.appendChild(doc.createTextNode(parameterName));
td=tr.appendChild(doc.createElement("td"));
td.appendChild(doc.createTextNode(request.getParameter(parameterName)));
}
//write the document to the servlet's response
serializer.setOutputFormat(of);
serializer.setOutputCharStream(response.getWriter());
serializer.serialize(doc);
}
////////////Clean up resources
public void destroy() {
}
}