- ベストアンサー
[Servlet]ページ表示に関して
JAVAサーブレットにおきましてページを移動する際に・・・ response.sendRedirect("http://www.goo.ne.jp/"); などとしますが、 新しくウィンドウを開いてこのページを表示するにはどうしたらいいですか? なんかいい方法、ありませんか??
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
サーバに要求がきてから、クライアントのウィンドウを起動するより、 クライアントのJavaScriptで、ウィンドウを開いて、 その引数(URL)にサーブレットを指定すればいいのでは? --- JavaScript例 --- window.open("servlet/HogeHogeServlet","Win", 'width=800, height=600,scrollbars=0,left=0,top=0, dependent=yes');
その他の回答 (3)
- KaZtoYou
- ベストアンサー率73% (11/15)
servletはサーバー側で動いているプログラムコードじゃないですか。 なのにクライアント側のブラウザを勝手に起動して新しいウィンドウを 開けたらあんまりだと思いませんか? なのでservletのAPIでは新しくウィンドウを開くなどということは できないようになっています。というかできません。されたら困ります。 だからクライアント側で動作するJavaScript等を駆使してさもそれっぽい 動作を実現しているのです。方法についてはみなさんが上げている通りです。
- mrt136
- ベストアンサー率35% (33/92)
それじゃぁ、サーブレットから、新しいWindowを開く為のHTMLを出力すればどうですか? もし、元の画面がなくなっちゃうのが嫌だったら、新しいWindowを開いた後に history.back() する様にしてやればいいかも。。。 実際に試した訳ではないので、うまくいくかどうかはわかりません。。。 適当に聞き流してください。。。 おそらく、サーブレットがクライアントの新しいブラウザを開くのは不可能だと思います。。。
- ZIGEN
- ベストアンサー率100% (5/5)
<JavaScriptを使わない方法> フォームのターゲットもしくは、 ハイパーリンクのターゲットを新しいウィンドウを指定する こんなのでどうでしょう?? --- 例 --- <form method="POST" target="_new" action="servlet/HogeHogeServlet"> <p><input type="submit" value="BTN" name="B1"></p> </form> <p><a href="servlet/HogeHogeServlet" target="_new">CLICK!!</a></p>
補足
うぅぅん。 それもありですよねぇ・・・。 JAVAサーブレット内でJAVAだけで実現できないものですかねぇ・・・。 無理なんでしょうか・・・。 もしかして。
お礼
なるほどぉ・・・ しかしこれではベースとなるページにスクリプトを書いておく必要がありますよね? データベースからURLをひらって来て勝手にWindowが開き、 そのDBからのURLが表示されるというBeanを作成しています。 Scriptを使った方法、ちょっと検討してみます! Scriptを使わずに実現する方法・・・ないですか??