import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; 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 { response.setContentType("text/html; charset=Windows-31J"); request.setCharacterEncoding("Windows-31J"); PrintWriter out = response.getWriter(); out.println(""); try { File f = new File(getServletContext().getRealPath("/Guests.html")); BufferedReader fin = new BufferedReader (new InputStreamReader(new FileInputStream(f), "Windows-31J")); File tmp = new File(getServletContext().getRealPath("/tmp.html")); PrintWriter fout = new PrintWriter (new OutputStreamWriter(new FileOutputStream(tmp), "Windows-31J")); String line; while (true) { line = fin.readLine(); if (line==null) { out.println("

内部エラー: Guests.htmlが壊れています。

"); line=""; break; } if (line.contains("")) break; fout.println(line); } fout.println(""); fout.printf("%n", request.getParameter("名前")); fout.printf("%n", request.getParameter("メールアドレス")); fout.printf("%n", request.getParameter("ホームページ")); fout.printf("%n", request.getParameter("ひとこと")); fout.println("
名前%s
メールアドレス%s
ホームページ%s
ひとこと%s
"); fout.println("
"); fout.println(line); while (true) { line = fin.readLine(); if (line==null) break; fout.println(line); } fin.close(); fout.close(); f.delete(); tmp.renameTo(f); out.println("御記帳有難うございました。
"); out.println("ゲストブックはこちらです。"); } catch (Exception e) { e.printStackTrace(out); } out.println(""); out.close(); } }