import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GuestBook extends HttpServlet { @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { request.setCharacterEncoding("Windows-31J"); File tmp = new File(getServletContext().getRealPath("/WEB-INF/tmp.html")); PrintWriter fout = new PrintWriter(new OutputStreamWriter(new FileOutputStream(tmp), "Windows-31J")); File f = new File(getServletContext().getRealPath("/WEB-INF/Guests.html")); BufferedReader fin = null; String line; try { fin = new BufferedReader(new InputStreamReader(new FileInputStream(f), "Windows-31J")); while (true) { line = fin.readLine(); if (line==null) { line = ""; break; } if (line.contains("")) break; fout.println(line); } } catch (FileNotFoundException e) { // /WEB-INF/Guests.html が存在しない fout.println("ゲストブック"); fout.println("

ゲストブック

御記帳有難うございました。
戻る
"); line = ""; } fout.println(""); fout.printf("%n", request.getParameter("名前").replace("&", "&").replace("<", "<").replace(">", ">")); fout.printf("%n", request.getParameter("メールアドレス").replace("&", "&").replace("<", "<").replace(">", ">")); fout.printf("%n", request.getParameter("ホームページ").replace("&", "&").replace("<", "<").replace(">", ">")); fout.printf("%n", request.getParameter("ひとこと").replace("&", "&").replace("<", "<").replace(">", ">")); fout.println("
名前%s
メールアドレス%s
ホームページ%s
ひとこと%s
"); fout.println("
"); fout.println(line); if (fin != null) { while (true) { line = fin.readLine(); if (line==null) break; fout.println(line); } fin.close(); } fout.close(); f.delete(); // rm WEB-INF/Guests.html tmp.renameTo(f); // mv WEB-INF/tmp.html WEB-INF/Guests.html try { request.getRequestDispatcher("/WEB-INF/Guests.html").forward(request, response); } catch (ServletException e) { // エラーを出力する response.setContentType("text/html; charset=Windows-31J"); PrintWriter out = response.getWriter(); out.println("
");
      e.printStackTrace(out);
      out.println("
"); return; } } }