错误404-在java中将XML转换为HTML时找不到

错误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

我在jsp页面中选择xml文件,然后在servlet的post方法中转换这些文件并在html页面上显示数据。但是它不起作用,当我选择一个xml文件并进行验证时,我得到了下面的错误

"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。