
JavaでWebアプリケーションを作成しています。
環境は以下の通りです。
java1.5
eclipse3.3
tomcat5.5
フレームワークは使用しておらず、ServletとJspです。
ブラウザはIE7です。
他の人が担当しているAシステムの画面A1のリンクを押すと、
私が担当しているBシステムの画面B1が別ウィンドウで起動します。
(リンクには引数としてユーザIDがついており、
左記のようなURLになります。http://hostpc:8080/Test/Index?userId=u0001)
ユーザIDを元にBシステムで初期表示する内容が異なるため、
利用者にはアドレスを知られたくないのですが、
引数つきのURLを受け取ると画面Bのアドレスバーに上記のURLが表示された状態になります。
Aシステム側にJavaScriptを埋め込み、
doPostで実行すれば引数部分は見えませんが、
AシステムはJavaScriptを埋め込むことができない前提になっています。
(BシステムはJavaScriptを埋め込むことが可能です。)
そのため、画面B1表示直後にJavaScriptを実行し、
さらに別画面で画面B2を起動しています。
(画面B2はアドレスバーを非表示にしています。
また、画面B1は自動的に閉じるようにしています。)
画面B1は一瞬だけ見えるのですが、
目を凝らすとアドレスバーのURLが読み取れてしまいます。
他に良い方法はないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
AシステムでもJSPを使っているのであれば、ユーザIDをURIではなくセッションに保持することができます。
AシステムからBシステムへのリンクがアンカー(<A>タグ)ではなくフォームであれば、隠しオブジェクト(<input type="hidden" name="userId">)をAシステムに埋め込むことで対処できます。
上記2つが不可能で、アドレスバーのURIを絶対に読み取られたくないという要件であれば、一度ユーザと話し合うべきでしょう。
ところで、AシステムでJavaScriptが使えないとなると、『右クリック』→『ソースの表示』で簡単にリンク先のURIが見えるはずですが・・・それをユーザが把握しているかどうか気になるところです。
ご回答ありがとうございます。
質問をわかりやすくするつもりで「Aシステムの画面でリンクを押す」
と記述しましたが、
実際にはAシステムはアプレットであり、アプレット上のボタンを押すと
Bシステムが起動する仕組みです。
そのためJSPは使用していません。正確に記述せず申し訳ないです。
NO.1の方から頂いたご回答から
リダイレクトを使用することを考え以下のような方法をとってみました。
Aシステムでボタンを押すとTestServlet1が起動する。
ボタンにはBシステムへのリンクが貼られている。
(http://~TestServlet1?userId=u01)
→TestServlet1の処理
ユーザIDをセッションに保存しておく。
TestServlet2が起動するようにリダイレクトを行う。
(http://~TestServlet2)
TestServlet2が起動する
→TestServlet2の処理
画面B1へフォワードする。
画面B1が通常のウィンドウで開く。
URLにユーザIDはなくリダイレクトしたURLが表示されている.
(http://~TestServlet2)
開くと同時(onload)にJavaScriptが実行される。
(window.openを実行する際、
一つ目の引数であるURLにTestServlet3をユーザIDつきで指定し、
三つ目の引数であるスタイルにツールバー等を表示しないオプションを指定する。
画面B1は強制的に閉じる。)
TestServlet3が起動する
→TestServlet3の処理
ユーザIDを元に初期情報を取得しセッションに保存する。
画面B2へフォワードする。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【JSP】input typeで入力された...
-
三菱GOTの画面切り替えについて
-
ホームページビルダーが遅い!...
-
C# ログイン画面からメイン画面...
-
Java-jspの画面入力値保持について
-
window.open()使用サブウィンド...
-
入力フォーム(JSP)にDB検索条...
-
「画面が閉じられた」という行...
-
javaのstrutsを使った画面遷移...
-
サーブレットによるpostデータ...
-
Wi-Fiのパスワードが指定なしと...
-
[戻る]やhistory.backでの遷移...
-
画面を隠す・消す方法を教えて...
-
検索した内容をフォームに反映...
-
JavaScriptでページが更新され...
-
location.hrefでページ切替時の...
-
フォーム上で押されたボタンに...
-
ボタンが活性化の場合とは、ボ...
-
jspからServletを呼び、元のjsp...
-
EL式 true falseを表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
ServletからServletへの値渡し
-
セッション切れでのリクエスト...
-
C言語で今まで表示していた画面...
-
ServletからHTMLページへの遷移...
-
java初心者です。 画面Aで情報...
-
Javaプログラミングの質問にな...
-
登録後、呼び出し元ページに戻...
-
system("cls")について
-
【swing】ボタンクリックにより...
-
コンボボックスの値が画面移動...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
peek()の機能が使えれば・・・
-
ASP.NET 画面遷移前の状態を保...
-
Sessionがnullになりません。
-
ブラウザアドレスバーからのURL...
-
画面を隠す・消す方法を教えて...
-
検索画面→結果画面→検索画面と...
おすすめ情報