0
掲示板作成の問題を解いています
○1ページに全ての記事を表示していると、記事件数が増えた場合に非常に見にくくなってしまいます。
そこで、1ページの表示件数は5件までにして、それ以上記事が増えた場合はページを切り替えられるようにして下さい。
Hint!{ページの切り替えのときには、リンクのURLに「?page=1」という形式でパラメータを渡すと便利です。
全ての記事情報をJSPにそのまま渡して、JSP側で必要な情報を抽出する}
って感じでヒントされてるんですが、如何せん、メソッドなんかの役割とかもおぼろげな初心者でして(一週間くらいなんですが...)
「?page=1」という形式で渡すってやり方がしっかり分かっていません
import java.awt.Frame;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;
import com.sun.org.apache.bcel.internal.generic.GETSTATIC;
import dto.Article;
public class BBS extends javax.servlet.http.HttpServlet implements Serializable {
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
// 入ってくる文やなんかが、連なってくるというか、たくさんが表示されなければいけないのでリスト化すると効率がいい。
List artlist = new ArrayList();
// セッションを取得
HttpSession session = req.getSession();
getServletCon
// 1回でも投稿があった場合は「artlist」を取得
if (session.getAttribute("artlist") != null) {
artlist = (List) session.getAttribute("artlist");
// ファイルに書き込み、読み込み作業「FileOutputStream」「FileInputStream」などを使いファイリングする
// この処理は一回一回でクローズ終了(.close)をかけてあげる。
FileOutputStream fos = new FileOutputStream("C:/eclipse/workspace/Test/artlist.data");
FileInputStream fis = new FileInputStream("C:/eclipse/workspace/Test/artlist.data");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(artlist);
ObjectInputStream ois = new ObjectInputStream(fis);
ois.read();
ois.close();
oos.close();
// リクエストパラメータを配列で取得
String count = req.getParameter("count");
String countNo = new String(count.getBytes("8859_1"),"Windows-31J");
// 対応するパラメータが存在しなかった場合
if(countNo== null)
{}
// 対応するパラメータが存在した場合
else{
// 配列の要素数に応じてループをまわす
for(int j = 0; j < countNo.length(); j++)
// 最初以外の場合
if(j != 0)
{
req.getParameter(countNo);
}
}
// リクエストのゲッパラで最初の文字が入ってない状態,更新しても文字が入ってない状態で例外にしないように
if (req.getParameter("count") != null
&& req.getParameter("sen") != null) {
// Articleのインスタンス
Article art = new Article();
// 全角文字を扱えるように取得したパラメータを変換
// 文字の扱いコードがjsp上と違う状態であるので、変換してあげりゅ
art.setName(new String(req.getParameter("count").getBytes("8859_1"),
"Windows-31J"));
art.setBun(new String(req.getParameter("sen").getBytes("8859_1"),
"Windows-31J"));
artlist.add(art);
}
session.setAttribute("artlist", artlist);
// リソース(サーブレット、JSPファイル、HTMLファイル)のパスを指定
// フォワードします。
RequestDispatcher rd = req.getRequestDispatcher("/toukou.jsp");
rd.forward(req, res);
}
}