・jspページにあるボタンを押すとServletに値を渡す。
・Servletで処理をする。
・処理の結果を元のjspページに表示する。
というプログラムを作りたいと考えています。
jspページ→Servletで処理をする、という所までは出来たのですが
その後元のページに戻すというところで困っています。
jspページは複数(十数ページ)あり、Servletは1つです。
a.jsp→Servlet→a.jsp
b.jsp→Servlet→b.jsp
このように、どのjspページから呼ばれても、元のjspページに
戻したいのですが、どのようにすれば実現できるでしょうか?
No.2ベストアンサー
- 回答日時:
doGetメソッドなら
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class サーブレット名 extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
res.sendRedirect(new URI(req.getHeader("referer")).getPath());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
(JDKやサーバーなどの環境、eclipse等を使用しているかなど、詳しく書いたほうがいいですよ^^!ロジック自体はもっといいものがあるかどうか検討してみてください。sendRedirectメソッドはリクエスト属性を保持しないので、必要な場合はRequestDispatcher#forwardメソッドの使用も考えられます。その場合はパスの記述が/アプリ名/ファイル名ではなく/ファイル名 になりますが(余談))
この回答への補足
詳しい回答ありがとうございます。
環境は、JDK 6、MySql 5.0、eclipseを使用しています。
import文が足りなかったようで、URIのエラーはなくなりました。
みなさんに教えていただいたものを参考に、
無事、元のjspページに戻ることも出来たのですが・・・
「a.jsp」→「Servlet」→「a.jsp」というページ遷移は上手くいくのですが、
「a.jsp?引数」→「Servlet」→「a.jsp?引数」という引数を持つjspページ間での遷移が出来ません。
元のページに戻るときに、?の後の引数の部分が取れていないようなのですが、
引数つきのページに戻ることは出来ないのでしょうか?
sendRedirectではなく、forwordを使うと出来るのでしょうか?
質問ばかりで申し訳ありませんが、よろしくお願いいたします。
No.4
- 回答日時:
すみません、先ほど「そのパラメーターをServletにも渡さないとだめでしょう。
」と書きましたが、今回はサーブレットの処理はすんでいるということですので、必要ないですね。失礼。No.3
- 回答日時:
kingyo0c0さんのやりたいことを把握できているかわかりませんが、
「a.jsp?引数」→「Servlet」→「a.jsp?引数」
ということは a.jspを呼んだときにクエリ情報(?引数というのはたとえば?id=1見たいな感じですよね?)をセットしているのですよね?これはスコープがリクエストですから、そのパラメーターをServletにも渡さないとだめでしょう。例)<a href=サーブレットのURL?引数>あいうえお</a>
そうするとサーブレット側では、先ほどのgetPath()をtoString()にするとa.jsp?引数にリダイレクトしてくれます。PS:困ったときはまずjavadocを見るといいですよ^^!
お礼が遅れてしまってすみません。
丁寧なご回答ありがとうございます。
Liveinjapaさんに教えていただいた内容で
無事、解決することができました。
何度も質問を重ねてしまってすみませんでした。
本当にありがとうございました。
No.1
- 回答日時:
sendRedirectをつかうなら
res.sendRedirect(new URI(req.getHeader("referer")).getPath());
見たいになると思います(試してませんのでわかりませんが)。
この回答への補足
回答ありがとうございます。
教えていただいたコードで試してみたのですが、
res.sendRedirect(new URI(req.getHeader("referer")).getPath());の
URIの部分でエラーが出てしまいます。
コードをそのまま書いたのでは出来ないのでしょうか?
大変初歩的な質問で申し訳ありませんが、
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- バックアップ ファイル履歴を使用してバックアップよりハードディスクドライブに保存した方良いですか? 3 2022/09/29 22:31
- Windows 10 ビデオカードが変更されたPCの復元 1 2022/11/29 02:01
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- SEO 検索エンジン反映遅い 1 2022/06/04 07:35
- Chrome(クローム) スマホのChromeはなぜ、進むボタンが無いのですか? 3 2023/02/07 23:36
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHP MySql ページング 2 2022/09/20 06:38
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
Java-jspの画面入力値保持について
Java
-
リクエストに応じたselectedの初期値設定方法
Java
-
-
4
ServletからServletへの値渡し
Java
-
5
JSPやサーブレットでSystem.out.println()などでコンソールに出力できますでしょうか?
Java
-
6
JSPのクラスをコンパイルできない問題
Java
-
7
JSPのNULLレコード表示について教えて下さい。
Java
-
8
servletからjspへオブジェクトの配列情報を送る方法
Java
-
9
正しいURL指定しているにもかかわらずJSPファイルにアクセスできず「404エラー」が発生
Java
-
10
JSPからJSPへ情報を渡せる?
Java
-
11
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
12
Javascriptの値をJava(JSP)へ渡す方法
Java
-
13
HTMLで前の画面に戻る時、入力していた値が消えてしまいます。
PHP
-
14
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
15
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
16
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
17
Eclipseで、プロジェクト名のところに赤いバッテンのエラーマークが
Java
-
18
検索画面→結果画面→検索画面と戻る時のPOST
Java
-
19
ラジオボタンの選択肢をサーブレットで取得するには?
Java
-
20
JSPからServletへの遷移
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Struts:フレーム内JSPからcssフ...
-
webアプリを作ってます。エラー...
-
jspからServletを呼び、元のjsp...
-
JSPからJSPへ情報を渡せる?
-
JSPの変数受け渡しについて教え...
-
jsp:paramアクションタグで配列...
-
jspでbeanを使いたいのです...
-
JSPが表示できない
-
TOMCATで\\webapps\\ROOTフォル...
-
Tomcatの仮想ディレクトリ配置...
-
ボタンが活性化の場合とは、ボ...
-
三菱GOTの画面切り替えについて
-
指定地点(緯度・経度)から指定...
-
グローバルIPアドレスの変更タ...
-
"+"文字が" (スペース)"に文字...
-
Java-jspの画面入力値保持について
-
漏電遮断器の黄色ボタンと白色...
-
VB6 開発環境のエディタに行...
-
Javaプログラミングの質問にな...
-
フォルダ改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
webアプリを作ってます。エラー...
-
jspでbeanを使いたいのです...
-
JSPからJSPへ情報を渡せる?
-
Struts:フレーム内JSPからcssフ...
-
JSPのエラー画面(error.jsp)に...
-
Servlet-JSP間のhidden要素での...
-
javaでカレンダー作成
-
TOMCATで\\webapps\\ROOTフォル...
-
eclipseで新規Tomcatプロジェク...
-
strutsで、任意の画面からの任...
-
servletからjspへの遷移時に文...
-
JSPとは凄いのか?SEO的には?
-
JSPが表示できない
-
1つのフォーム内容を1つのsubmi...
-
redirectについて
-
Tomcatの仮想ディレクトリ配置...
-
Strutsでフレーム使用時のerror...
-
検索後のページ再表示初期化
-
異なるwarのJSPにフォワードす...
おすすめ情報