我想通过 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 中编写逻辑。这是正确的方法吗?
答案 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在您的服务方法中被称为“响应” 这当然不是完整的代码,你需要自己处理管道。