【问题标题】:write my logic in servlet programme在 servlet 程序中编写我的逻辑
【发布时间】:2013-07-03 10:13:38
【问题描述】:

我想通过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 中编写逻辑。这是正确的方法吗?

【问题讨论】:

  • f 是什么?你在哪里申报的?你已经定义了f1!
  • “你没有得到这个”是什么意思?你的预期结果是什么?而你得到了什么?
  • 我已经在我的代码中声明了 f
  • f 和 f1 指的是不同的对象!!!
  • w4rumy : 我想在浏览器中显示给定的值

标签: java xml jsp servlets


【解决方案1】:

您似乎正在尝试创建一个要显示给浏览器的 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);

【讨论】:

    【解决方案2】:

    这不是有效的 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 在您的服务方法中称为“响应”。
    这当然不是完整的代码,你需要自己处理管道。

    【讨论】:

    • 感谢您的回复,我已经以正常方式完成了这部分,但是我对此感到困惑,请您帮我如何使用 servlet 创建/写入 xml 文件跨度>
    • @Durgaprasad 我刚刚做了,这将创建 xml 并将其发送给客户端...我不会为您编写整个应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2021-07-21
    • 2018-01-17
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多