這是我在Servlet方法doGet(...)中的解決方案。它不會將RSS保存在文件系統中,它會在每次(有請求時)時創建。我把它寫成HTTP響應。
response.setContentType("application/rss+xml");
response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // prevents caching at the proxy server
PrintWriter out = response.getWriter();
out.print("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n");
[...]
out.print("</xml>");
out.flush();
out.close();
// set header information
當它需要把它寫在文件系統中,這裏是一個解決方案,我用它來在一個servlet方法其再次保存的圖像在服務器上,:
String absoluteFilesystemPath = getServletContext().getRealPath("/");
System.out.println(absoluteFilesystemPath);
File f = new File(absoluteFilesystemPath+"file.xml")
感謝您的答覆Bozho。這是事情,當我只是給文件名如[FileOutputStream(「filename.xml」)]它不會引發任何異常。在這種情況下,文件是否存儲在某個地方? – Ritesh
是的,在默認的用戶目錄下。如果該文件是臨時文件,則可以使用'File.createTempFile(..)' – Bozho
實際上我正在使用XMLEventWriter使用XMLOutputFactory寫入文件。所以我想我不能使用File.createTempFile。我可以在存儲在默認用戶目錄中時使用URL訪問該文件嗎? – Ritesh