
・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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
Java-jspの画面入力値保持について
Java
-
リクエストに応じたselectedの初期値設定方法
Java
-
-
4
JSPからServletへの遷移
Java
-
5
JSPやサーブレットでSystem.out.println()などでコンソールに出力できますでしょうか?
Java
-
6
正しいURL指定しているにもかかわらずJSPファイルにアクセスできず「404エラー」が発生
Java
-
7
getParameterで値が取得できず、困ってます
HTML・CSS
-
8
レコード件数の表示
Java
-
9
JSPからJSPへ情報を渡せる?
Java
-
10
Javascriptの値をJava(JSP)へ渡す方法
Java
-
11
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
12
javaのstrutsを使った画面遷移で戻るボタンを押した時、値を残すには
Java
-
13
サーブレットコンテキストの意味がわからなくて困っています。
Java
-
14
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
15
servletからjspへオブジェクトの配列情報を送る方法
Java
-
16
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
17
JSP内でString型からint型に変換する方法(SAStruts使用)
Java
-
18
遷移元を判定したい!
Java
-
19
ServletからHTMLページへの遷移について
Java
-
20
JSPでImportエラーになります
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
webアプリを作ってます。エラー...
-
JSPからJSPへ情報を渡せる?
-
jspでbeanを使いたいのです...
-
eclipseで新規Tomcatプロジェク...
-
javascriptでformの送信後、値...
-
jspのクラスのコンパイルエラー
-
session,requestはjspで未定義...
-
servletからjspへの遷移時に文...
-
Servlet-JSP間のhidden要素での...
-
リクエストに応じたselectedの...
-
「<c:forEach タグが終了し...
-
ボタンが活性化の場合とは、ボ...
-
フォーム上で押されたボタンに...
-
JSPでのリストボックス表示
-
三菱GOTの画面切り替えについて
-
Formatでmmが月と分を意味する理由
-
jspファイルで注文フォームの合...
-
ServletからServletへの値渡し
-
setAttribute getAttribute 配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからServletを呼び、元のjsp...
-
JSPからJSPへ情報を渡せる?
-
webアプリを作ってます。エラー...
-
JSPの値により遷移先を変更する
-
jspでbeanを使いたいのです...
-
Tomcatの仮想ディレクトリ配置...
-
Servlet-JSP間のhidden要素での...
-
検索後のページ再表示初期化
-
Struts2のgetterの挙動、仕様に...
-
JSPが表示されません
-
jspでの表示の仕方
-
jspのクラスのコンパイルエラー
-
WEB-INF直下のフォルダ
-
AjaxとMVCについて
-
JSPのエラー画面(error.jsp)に...
-
eclipseで新規Tomcatプロジェク...
-
ログアウト後、リフレッシュしたい
-
JSPのアクセス制御を行いたい
-
JSPが表示できない
-
ヤフーオークションの「詳細な...
おすすめ情報