错误404-在java中将XML转换为HTML时找不到
我在jsp页面中选择xml文件,然后在servlet的post方法中转换这些文件并在html页面上显示数据。但是它不起作用,当我选择一个xml文件并进行验证时,我得到了下面的错误错误404-在java中将XML转换为HTML时找不到,java,xml,jsp,jakarta-ee,xslt,Java,Xml,Jsp,Jakarta Ee,Xslt,我在jsp页面中选择xml文件,然后在servlet的post方法中转换这些文件并在html页面上显示数据。但是它不起作用,当我选择一个xml文件并进行验证时,我得到了下面的错误 "Error 404 - Not Found". 下面是java代码: @WebServlet(name = "Validation", urlPatterns = { "/validation" }) public class Validation extends HttpServlet { private
"Error 404 - Not Found".
下面是java
代码:
@WebServlet(name = "Validation", urlPatterns = { "/validation" })
public class Validation extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
static Document document;
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
String xmlfile=request.getParameter("fichier");
String xsltfile="C:\\Documents and Settings\\Administrateur\\Bureau\\test\\EDI3\\EDI";
File stylesheet = new File(xmlfile);
File datafile = new File(xsltfile);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
// Use a Transformer for output
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
} catch (TransformerConfigurationException tce) {
// Error generated by the parser
System.out.println("\n** Transformer Factory error");
System.out.println(" " + tce.getMessage());
// Use the contained exception, if any
Throwable x = tce;
if (tce.getException() != null) {
x = tce.getException();
}
x.printStackTrace();
} catch (TransformerException te) {
// Error generated by the parser
System.out.println("\n** Transformation error");
System.out.println(" " + te.getMessage());
// Use the contained exception, if any
Throwable x = te;
if (te.getException() != null) {
x = te.getException();
}
x.printStackTrace();
} catch (SAXException sxe) {
// Error generated by this application
// (or a parser-initialization error)
Exception x = sxe;
if (sxe.getException() != null) {
x = sxe.getException();
}
x.printStackTrace();
} catch (ParserConfigurationException pce) {
// Parser with specified options can't be built
pce.printStackTrace();
} catch (IOException ioe) {
// I/O error
ioe.printStackTrace();
}
}
}
非常感谢任何能让我了解我哪里出了问题的指导或教程
response.setContentType(CONTENT_TYPE);
StreamResult result = new StreamResult(response.getWriter());
transformer.transform(source, result);
内容类型已设置编码。响应可以使用
getOutputStream()
写入二进制数据,也可以像上面那样对文本进行编码。我没有开发servlet,但我希望输出以某种方式写入附加到HttpServletResponse响应的流中,而不是写入System.out
。因此请尝试StreamResult=newstreamresult(response.getOutputStream())代码>。XSLT通常在具有名称空间的XML上工作,因此您可能希望使用具有名称空间意识的DocumentBuilderFactory。另一方面,XSLT处理器的执行者通常会说他们的原生树模型比W3C DOM更好,而不是使用一个源代码来考虑使用SAXObjor或StreamSource。