ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュの掲示板 jsp

  • mixiチェック
  • このエントリーをはてなブックマークに追加
 投稿されたメッセージをListに記録しているだけで、一度サーブレットが止まると、メッセージは消えてえてしまうweb掲示板のプログラムが手元にあります。

メッセージが消えないようにするためには、メッセージをファイルやデータベースに保存する必要があります。ここではファイルに保存し、サーブレットを起動するときに、読み込むことにします。次のようにして、これを実現しましょう。

・適当なファイルに、WebForumのメッセージの入っているListの内容を保存することにします。
・WebForumオブジェクトのコンストラクタで、ファイルの内容をmessagesに読み込みます。
・WebForumオブジェクトのaddMessageでメッセージが追加された時に、messageの内容をファイルに書き込みます。
・可能であれば、新たに追加されたメッセージだけをファイルに追加するように作ってください。無理なら、効率は悪いですが、毎回、全部のメッセージをファイルに書くようにします。

というものです。


手元のプログラム です。

----------------------------
WebForum.jsp
----------------------------
<%@ page import="jp.XXXX.*"
contentType="text/html; charset=Shift_JIS" %>
<jsp:useBean id="forum"
class="jp.XXXX.Forum"
scope="application">
</jsp:useBean>
<%
request.setCharacterEncoding("Shift_JIS");
if (request.getMethod().equals("POST")) {
String name = request.getParameter("name");
String words = request.getParameter("words");
forum.addMessage(new ForumMessage(name,words));
}
%>
<html>
<head>
<title>Web Forum</title>
</head>
<body bgcolor="white">
<form method="post" action="WebForum.jsp">
名前<br>
<input type="text" name="name"><p>
メッセージ<br>
<textarea name="words" rows=10 cols=50></textarea><p>
<input type="submit" value="送る">
<input type="reset" value="クリア"><p>
</form>
<%
ForumMessage[] messages = forum.getMessages();
for (int i = 0; i < messages.length; i++) {
ForumMessage m = messages[i];
%>
<hr>
日時:<%= m.getDate() %><br>
名前:<%= m.getName() %><p>
<pre><%= m.getWords() %></pre>
<%
}
%>
</body>
</html>
----------------------------

----------------------------
ForumMessage.java
----------------------------
package jp.XXXX;
import java.text.*;
import java.util.*;

public class ForumMessage {
private Date date;
private String name;
private String words;
public ForumMessage(String name,String wrods) {
date = new Date();
this.name = name;
this.words = wrods;
}
public Date getDate() {
return date;
}
public String getName() {
return name;
}
public String getWords() {
return words;
}
}
----------------------------


----------------------------
Forum.java
----------------------------

package jp.XXXX;
import java.io.*;
import java.util.*;
public class Forum {
private List<ForumMessage> messages = new ArrayList<ForumMessage>();
public Forum() {
private List messages = new ArrayList();
public synchronized void addMessage(ForumMessage m) {
messages.add(m);
}
public synchronized ForumMessage[] getMessages() {
ForumMessage[] msg = new ForumMessage[messages.size()];
for (int i = 0; i < messages.size(); i++) {
msg[i] = (ForumMessage)messages.get(i);
}
return msg;
}
}


Forum.java を直すのだとは思うのですが、
FileReaderとFileWriterを入れるのか、
BufferedReader r;
r = new BufferedReader(new InputStreamReader(in));

BufferedWriter w;
w = new BufferedWriter(new OutputStreamWriter(out));
を入れるのか、などを考えてはみたものの、どこに入れたら良いのか・・・

全然違っていたらすいません。

初心者で申し訳ありませんが、よろしくお願いします!

コメント(2)

http://mixi.jp/view_bbs.pl?id=20575386&comm_id=1017129&page=all

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング