在servlet程序中编写我的逻辑

时间:2013-07-03 10:13:39

标签: java xml jsp servlets

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

2 个答案:

答案 0 :(得分: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);

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