
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も見ています
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
Java
-
-
4
リクエストに応じたselectedの初期値設定方法
Java
-
5
Java-jspの画面入力値保持について
Java
-
6
[JAVA]try 内の変数を外で!?
Java
-
7
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
8
servletからjspへオブジェクトの配列情報を送る方法
Java
-
9
配列のメソッド
Java
-
10
JSPからJSPへ情報を渡せる?
Java
-
11
ラジオボタンの選択肢をサーブレットで取得するには?
Java
-
12
べき乗
Java
-
13
Javaプログラムからポップアップを表示する方法
Java
-
14
ExcelVBAからAccessMDB内のテーブル存在チェックをしたい
Visual Basic(VBA)
-
15
TomcatでのHTMLの表示
Java
-
16
JSPやサーブレットでSystem.out.println()などでコンソールに出力できますでしょうか?
Java
-
17
テーブルの最後(最新)のレコードを抽出したい
MySQL
-
18
正しいURL指定しているにもかかわらずJSPファイルにアクセスできず「404エラー」が発生
Java
-
19
『列名 '担当者CD' があいまいです。』
Microsoft ASP
-
20
JSP+Servletでのページングの常識
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
ブラウザのIDの調べ方が解りません
-
ページ遷移せずにjava部品を実...
-
ポップアップでウィンドウを表...
-
VBS/HTA:画面のサイズを取得す...
-
"+"文字が" (スペース)"に文字...
-
ブラウザ画面で、変更した値が...
-
Ctrl+F4を無効にしたい
-
Tomcatのセットアップ
-
JSPで画面を更新するには
-
ログインについて
-
親子画面での値の受け渡し方法
-
javascriptでセッションの削除...
-
このadidasの腕時計の時刻の設...
-
Formのデータが欠落することがある
-
JSPでsession変数が勝手に書き...
-
javascriptでセッションを取得
-
グローバルIPアドレスの変更タ...
-
フォーム上で押されたボタンに...
-
DVD鑑賞時、字幕を消すには??...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
画面遷移を行わずに同一ページ...
-
ASP.NET 画面遷移前の状態を保...
-
MFCプログラミング
-
ボタンを押したあとに画像を表...
-
アドレスバーに引数を表示させ...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
Strutsのデータ受け渡しについて
-
ServletからServletへの値渡し
-
登録後、呼び出し元ページに戻...
-
検索画面→結果画面→検索画面と...
-
Strutsで画面遷移させない。
-
JSPから出力されたHTML画面のcl...
-
Beautiful Soupのインストール...
-
JAVAのセッション変数の上書き...
-
strutsで、JSP→アクションクラ...
-
ブラウザアドレスバーからのURL...
おすすめ情報