0

我想通过servlet创建一个 XML 文件 这是我的代码

        out.println("<html>") out.println("<head>");
        out.println("<title>Servlet contactReq</title>");            
        out.println("</head>");
        out.println("<body>");
        //PrintWriter out = response.getWriter();
        //System.out.println("Hello you are in get method");
        String fName = request.getParameter("firstName");
        String lName = request.getParameter("lastName");
        String email = request.getParameter("email");
        int phNo = Integer.parseInt(request.getParameter("phoneNo"));
        add(fName,lName,email,phNo,response);
        out.println("<h1>Successssssssss :"+fName+"</h1>");
        out.println("</body>");
        out.println("</html>");`

add()我用这个

File f = new File("src"+File.separator+"xmlparse");
f.createNewFile();//create the file
out.println("<h2>Root:"+f.getAbsolutePath()+"</h2>");

但我没有得到这个root :.....,我的文件没有创建,如果我想在servlet中编写逻辑。这是正确的方法吗?

4

2 回答 2

0

看起来您正在尝试创建要显示给浏览器的 HTML 页面。我建议您将请求转发到 .jsp 文件。它会让你的生活更轻松。

request.setAttribute("attributeName", someValue); //someValue can be String, int, or any other serializable object.
RequestDispatcher requestDispatcher = request.getRequestDispatcher("somepage.jsp");  
requestDispatcher.forward(request, response);
于 2013-07-03T10:24:27.547 回答
0

那不是有效的 XML,那是格式不正确的 HTML。
Java 具有出色的内置工具,可用于创建 XML 并将其解析为 Stream,使用这些工具创建 XML 并将其发送到客户端。无需过多处理字符串连接、文件和类似的东西。
像下面这样的东西更可靠。

        DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = df.newDocumentBuilder();
    Document doc = documentBuilder.newDocument();
    Element root = doc.createElement("RootElement");
    doc.appendChild(root);
    Element child = doc.createElement("ChildElement");
    child.setNodeValue("Hello World");
    root.appendChild(child);

    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer transformer = tf.newTransformer();

    StreamResult resultStream = new StreamResult(response.getOutputStream());
    transformer.transform(new DOMSource(doc), resultStream);

假设 ServletResponse 在您的服务方法中称为“响应”。
这当然不是完整的代码,您需要自己处理管道。

于 2013-07-03T10:33:31.433 回答