2013-07-03 38 views
0

我想通過的servlet 這裏創建一個XML文件是我的代碼寫我在Servlet程序邏輯

 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。這是正確的方式嗎?

+1

'f'是什麼?你在哪裏申報?你已經定義了'f1'! – NINCOMPOOP

+0

你是什麼意思,「你沒有得到這個」?你的預期結果是什麼?你取而代之的是什麼? – Uooo

+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); 
0

這不是有效的XML,這是格式不正確的HTML。
Java具有出色的內置工具,用於創建XML並將其解析爲Stream,並使用這些工具創建XML並將其發送給客戶端。不需要使用String連接,文件和類似的東西。
類似下面的工作更可靠。

 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在您的服務方法中被稱爲「響應」。
這當然不是完整的代碼,你需要自己處理管道。

+0

感謝您的回覆,我已經以正常的方式完成了這部分工作,但是我會對這一部分感到困惑,你能否幫助我如何使用servlet創建/編寫xml文件 –

+0

@Durgaprasad我只是做了,創建xml並將其發送給客戶端...我不會爲您編寫整個應用程序。 – jwenting