Servlet日記(1999/03/06)

本日の成果

 このあたりで、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");
}

 実行してみると、ちゃんとファイルに保存でき、こんなプログラムですが感激です。しかし、日本語を入力すると、文字化けしてしまいます。その対策は、また今度調べてみましょ。

本日の教訓

 単純にファイルに書いたのでは、日本語が文字化けしてしまうようです。

Servlet日記(1999/03/03) Servlet日記の目次 Servlet日記(1999/03/07)