0

サーブレットを介して 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 :.....にロジックを書きたい場合。これは適切な方法ですか?

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を作成してストリームに解析するための優れた組み込みツールがあり、それらを使用して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 がサービス メソッドで「response」と呼ばれていると仮定します。
もちろん、これは完全なコードではありません。配管を自分で処理する必要があります。

于 2013-07-03T10:33:31.433 に答える