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.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/GuestBook") public class GuestBook extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException ,IOException { response.sendRedirect("GuestBook.html"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); File tmp = new File(getServletContext().getRealPath("/WEB-INF/tmp.html")); PrintWriter tmpOut = new PrintWriter(new OutputStreamWriter(new FileOutputStream(tmp), "UTF-8")); File guests = new File(getServletContext().getRealPath("/WEB-INF/Guests.html")); BufferedReader guestsIn = null; String line; try { guestsIn = new BufferedReader(new InputStreamReader(new FileInputStream(guests), "UTF-8")); while (true) { line = guestsIn.readLine(); if (line == null) { line = String.format("%n"); break; } if (line.contains("")) break; tmpOut.println(line); } } catch (FileNotFoundException e) { // /WEB-INF/Guests.html が存在しない tmpOut.println("ゲストブック"); tmpOut.println("

ゲストブック

御記帳有難うございました。
戻る
"); line = String.format("%n"); } tmpOut.println(""); tmpOut.printf("%n", request.getParameter("名前").replace("&", "&").replace("<", "<").replace(">", ">")); tmpOut.printf("%n", request.getParameter("メールアドレス").replace("&", "&").replace("<", "<").replace(">", ">")); tmpOut.printf("%n", request.getParameter("ホームページ").replace("&", "&").replace("<", "<").replace(">", ">")); tmpOut.printf("%n", request.getParameter("ひとこと").replace("&", "&").replace("<", "<").replace(">", ">")); tmpOut.println("
名前%s
メールアドレス%s
ホームページ%s
ひとこと%s
"); tmpOut.println("
"); tmpOut.println(line); if (guestsIn != null) { while (true) { line = guestsIn.readLine(); if (line == null) break; tmpOut.println(line); } guestsIn.close(); } tmpOut.close(); guests.delete(); // rm WEB-INF/Guests.html tmp.renameTo(guests); // mv WEB-INF/tmp.html WEB-INF/Guests.html response.sendRedirect("GuestBookCat"); } }