Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

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);

    }
}
 

3

回答

80269

閲覧

3件の回答

評価

0

ゲッパラとか、きたねー業界ためぐち知ってるわりには、pageパラメータをゲッパラもセッパラもまったくしてないじゃん、現状のあなたのコードでは。

評価

0

これ、書籍かサイトの練習課題とスレ主の泣き言が混在してるだけじゃね?w

例題のコードからどこを変えればいいかを知りたいのだろうけど・・・

この掲示板は、ヘタレに代わって課題を解いてくれる場所じゃない。出直せ。

評価

0

質問が全く明確になっていないようです。
回答者も何をどう答えれば、な感じです。
分からないところをピンポイントで質問するようにしましょう。
何が何だか分からないなら、課題を出した方に質問されるとよいでしょう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。