このあたりで、servletを使ったアプリケーションを作ってみて、これまでの復習を行ってみようと考えています。題材としては、ごく簡単な掲示板の予定です。
まず、入力されたデータを、保存するところから始めます。保存先として、データベースなども考えられますが、ここではファイルにします。
ユーザが入力するのは、名前、サブジェクト、内容の3つで、保存するときに、それに日付の情報を追加します。今回は、入力されたデータを、決めうちの名前のファイルに、上書きで保存します(これでは保存とは言えませんが)。
技術的には見るべき点はないと思いますが、私としては、これでファイルに保存できるのか、という点に興味があります。
public void doGet( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.print("<html><head><title>SaveFormData Servlet</title></head>"); out.print("<body><form method=post>"); out.print("name:<input type=text name=\"uName\">"); out.print("subject:<input type=text name=\"uSubject\"><br>"); out.print("content:<textarea name=\"uContent\"rows=5 cols=40></textarea><br>"); out.print("<input type=submit value=\"Post\"></form></body></html>"); } public void doPost( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { PrintWriter pwFile = new PrintWriter(new FileOutputStream("c:/saveFormData.txt")); pwFile.println(DateFormat.getDateTimeInstance().format(new Date())); pwFile.println(req.getParameter("uName")); pwFile.println(req.getParameter("uSubject")); pwFile.println(req.getParameter("uContent")); pwFile.close(); res.setContentType("text/plain"); PrintWriter out = res.getWriter(); out.print("ok"); } |
実行してみると、ちゃんとファイルに保存でき、こんなプログラムですが感激です。しかし、日本語を入力すると、文字化けしてしまいます。その対策は、また今度調べてみましょ。
単純にファイルに書いたのでは、日本語が文字化けしてしまうようです。 |