No.7ベストアンサー
- 回答日時:
こんにちは。
world99です。 sin-da4のご認識の通りでした。doGet()で呼び出されたサーブレットから次のサーブレットに遷移する時は、doGet()が実行されます。同じように、doPost()で呼び出されたサーブレットは、doPost()で次のサーブレットを呼び出します。
実は、私が試したサンプルは、doGet()とdoPost()のどちらが呼び出されても、doProcess()というメソッドを実行するように、実装しています。文章を短くするための、それを端折っていました。という訳で、この事に気がつきませんでした。
教えているつもりだった私が逆に、教えて頂きましたねありがとうございます。orz
あるServletから別のServeltに遷移する時に、値を引き渡すという本題の質問は、これで解決ですね♪
いえいえ、こちらこそありがとうございました!
問題も解決しましたので助かりました♪
またなにかありましたらよろしくお願いします。
No.6
- 回答日時:
こんにちは。
world99です。私の環境で、先に紹介した「(1) ServletContext.getRequestDispatcher()」と、
「(2) HttpResponse.sendRedirect()」を実行してみて、パスの設定の違いを確認してみました。
sv1、sv2という名前でマッピングしたサーブレットを用意し、sv1からsv2へ遷移させました。
(1)の方法だと、"/sv2"になります。
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
{
ServletContext sc = getServletContext();
RequestDispatcher dispatcher = sc.getRequestDispatcher("/sv2");
dispatcher.forward(req, res);
}
(2)ですと、"sv2"で、画面遷移できました。
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
{
res.sendRedirect("sv2");
}
sin-da4さんは、「"/パス名","./パス名","パス名"」でエラーになったとおっしゃっていますが、その状態で、画面遷移に成功していたsendRedirect()を利用した(2)の方法で、画面名は遷移していますでしょうか?もし遷移しないのならば、先ずはTomcatを起動し忘れていないか確認してみて下さい。
この回答への補足
回答ありがとうございます。
Tomcatは必ず再起動していますので大丈夫です。
今気づいたのですが私の場合、送信元メソッドはdoPostで受信元はdoGetです。
もしかしてdoGet同士、doPost同士じゃないとダメなんでしょうか。
No.5
- 回答日時:
こんにちは。
world99です。1つ目ですが、Sessionスコープの方法は、別に実装する必要はありません。RequestとSessionの2通りの渡し方があるので、例としてあげさせて頂きました。
2つ目は、パスの設定が間違っているためにエラーが発生しています。
"/servlets-examples/パス名"のように"/"から入力するとServletコンテナのルートパスからの絶対パスで参照になります。"パス名"ですと参照中のパスからの相対パスからの参照になります。
この回答への補足
回答ありがとうございます。
パス設定が解決できません。。。
「"/パス名","./パス名","パス名"」,「"/servlet/パス名","./servlet/パス名"」,「"/servlets-examples/パス名","./servlets-examples/パス名"」
以上のやり方はすべてエラーになります。
パス設定は関係ないような気がしてきたのですが違うのでしょうか。。。
No.4
- 回答日時:
こんにちは。
サンプルを記述しましたので、参考にして下さい。
public class TestServlet1 extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
// Requestスコープ
req.setAttribute("param1", "abc");
req.setAttribute("param2", new Integer(1));
// Sessionスコープ
HttpSession session = req.getSession();
session.setAttribute("param3", "あいうえお");
session.setAttribute("param4", new Integer(2));
// 次のServletに遷移させる
ServletContext sc = getServletContext();
RequestDispatcher dispatcher = sc.getRequestDispatcher("/sv2");
dispatcher.forward(req, res);
}
}
public class TestServlet2 extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
// Requestスコープの値を取得
Object obj1 = req.getAttribute("param1");
Object obj2 = req.getAttribute("param2");
// Sessionスコープの値を取得
HttpSession session = req.getSession();
Object obj3 = session.getAttribute("param3");
Object obj4 = session.getAttribute("param4");
}
}
この回答への補足
サンプルありがとうございます。
2点程質問させてください。
・一つ目
値を渡すのはひとつだけでいいのですが、必ずSessionスコープを使用しなければいけないのでしょうか??
・二つ目
このサンプルを元に組みなおしたら、
----------------------------------------------------------------
HTTPステータス 404 - /servlets-examples/パス名
type ステータスレポート
メッセージ /servlets-examples/パス名
説明 The requested resource (/servlets-examples/パス名) is not available.
----------------------------------------------------------------
というのが出ました。
response.sendRedirect("パス名");
で、値を渡さず遷移させていたときはちゃんと動いていたのですがなぜでしょう。。。
以上よろしくお願いします。
No.2
- 回答日時:
sessionならば
void session.setAttribute(String name,Object object);
でsessionオブジェクトにsetして
Object session.getAttribute(String name);
でsessionオブジェクトからgetする。
requestでも場合によりOKでしょう。
Session impossible!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
Java
-
servletからjspへオブジェクトの配列情報を送る方法
Java
-
-
4
Javascriptの値をJava(JSP)へ渡す方法
Java
-
5
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
6
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
7
JSPやサーブレットでSystem.out.println()などでコンソールに出力できますでしょうか?
Java
-
8
サーブレットからパラメータをPOST形式で送信するには。
Java
-
9
JSPからJSPへ情報を渡せる?
Java
-
10
JSPのNULLレコード表示について教えて下さい。
Java
-
11
サーブレットコンテキストの意味がわからなくて困っています。
Java
-
12
Java-jspの画面入力値保持について
Java
-
13
リクエストに応じたselectedの初期値設定方法
Java
-
14
レコード件数の表示
Java
-
15
フォームで同じ複数のnameで違うvalueの送信
Java
-
16
JSPファイルで生じるエラーをどのように修正するか分かりません
Java
-
17
tableタグとformタグの組み合わせ
HTML・CSS
-
18
JSPからServletに、テーブルに格納された値を渡したい
Java
-
19
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
20
JSPからServletへの遷移
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C# ログイン画面からメイン画面...
-
MFCプログラミング
-
Javascriptのhistory.back()が...
-
SessionとViewStateについて
-
アドレスバーに引数を表示させ...
-
Excel VBA のdebug(F8キー) が...
-
データソース、データセットの作成
-
ブラウザアドレスバーからのURL...
-
プログラムの素朴な疑問
-
ASP.NET 画面遷移前の状態を保...
-
テキストボックスから勝手に画...
-
前画面の値を引き継ぎたい。
-
system("cls")について
-
画面を隠す・消す方法を教えて...
-
遷移元を判定したい!
-
window.openした孫画面でSessio...
-
Java-jspの画面入力値保持について
-
"+"文字が" (スペース)"に文字...
-
親ウィンドウの画面遷移
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ASP.NET 画面遷移前の状態を保...
-
遷移元を判定したい!
-
Strutsの情報保持の仕方について
-
C# ログイン画面からメイン画面...
-
画面を隠す・消す方法を教えて...
-
Java-jspの画面入力値保持について
-
Wi-Fiのパスワードが指定なしと...
-
Javaプログラミングの質問にな...
-
FormのsubmitでFormの内容がnull
-
登録後、呼び出し元ページに戻...
-
ServletからServletへの値渡し
-
アドレスバーに引数を表示させ...
-
セッション切れでのリクエスト...
-
javaのstrutsを使った画面遷移...
-
JAVAのセッション変数の上書き...
-
Javascriptのhistory.back()が...
-
strutsで、JSP→アクションクラ...
-
Sessionがnullになりません。
おすすめ情報