0
我創建了一個servlet,其中包含10個隨機值,並對此值進行排序和打印。該值正在添加到LinkedList。當應用程序關閉時,如何將LinkedList的數據保存到file.txt中。我嘗試在servlet中創建文件並寫入一些內容,但是我的代碼沒有創建文件。如何從servlet寫入列表到.txt
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here. You may use following sample code. */
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet NewServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");
List<Integer> lista=(List<Integer>) this.getServletContext().getAttribute("lista");
out.println("<ul>");
for(Integer l:lista){
out.println("<li>"+l+"</li>");
}
out.println("</ul>");
out.println("<form action=\"NewServlet1\">");
out.println("<input type=\"text\" name=\"liczba\">");
out.println("<input type=\"submit\" value=\"ADD\">");
out.println("</form>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
PrintWriter zapis = null;
zapis = new PrintWriter("test.txt");
zapis.println("type type type ");
zapis.close();
}
public class NewServletListener implements ServletContextListener {
static final public String defFileName = "file.txt";
String fileName;
@Override
public void contextInitialized(ServletContextEvent sce) {
List<Integer> lista=new LinkedList<Integer>();
Random rand=new Random();
int rozmiar=Integer.parseInt(sce.getServletContext().getInitParameter("rozmiar"));
for(int i=0;i<rozmiar;i++){
lista.add(rand.nextInt(100));
}
sce.getServletContext().setAttribute("lista", lista);
fileName = sce.getServletContext().getInitParameter("SAVE_FILE");
if (fileName == null) {
fileName = defFileName;
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// throw new UnsupportedOperationException("Not supported yet.");
List<Integer> lista=(List<Integer>) sce.getServletContext().getAttribute("lista");
File file = new File(fileName);
try (PrintWriter printWriter = new PrintWriter(file)) {
for (Integer l:lista) {
printWriter.println(l);
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
很奇怪,但文件不會創建。我應該添加到web.xml SAVE_FILE嗎?或者我做了其他錯誤。 文件應創建時,我關閉重疊?
有輕微你說什麼* servlet哪10個隨機值排序並打印這個值*和你顯示的代碼:*從一個'ServletContext'屬性獲取一個列表並顯示它*你想在每次請求後保存,或者當應用程序停止(假設你想保存'lista')? – 2014-10-28 17:47:55
當應用程序停止時 – user3763588 2014-10-28 17:54:13