• ベストアンサー

パラメータの渡し方

いつも参考にさせて頂いています。 初心者ですが宜しくお願いします。 現在WEB開発中です。 hoge.do?parameter=… というような感じでgetでパラメータを渡す場合(リンクでパラメータを渡そうとしています。)、parameter=…というところが丸見えになっている状態です。 1.隠すことってできないんでしょうか?(みなさんはどういう対応をなされているんでしょうか?(もしかして暗号化とか…)) 2.「.do」の箇所はweb.xmlのところでなんとかなるような気がしたのですが…みなさんは.doのところはどんな設定にされているのでしょうか?(普通はどういう設定にしてるもんなんでしょうか?) yahooとか見てみるとそんな所(?=…)ってあんまりないような気がしたので質問してみました。 上記2点について回答頂けるととてもうれしいです。 以上宜しくお願いします。 ●開発環境 eclipse 3.1 struts 1.2 tomcat 5.0 jdk 1.4.2

質問者が選んだベストアンサー

  • ベストアンサー
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.5

><html:link>タグ以外を使用してなら可能でしょうか? >javascriptの使用はクライアント依存なので、できるだけ避けていたので>すがもし可能であれば検討したいと思っています。 >どうかご教授宜しくお願いします。 かなりの大改造になるので、あまりお勧めしませんが、 以下のような方法はどうでしょうか?? (1)隠しフレーム(表示上見えないフレームhtml)を用意します。 (2)作成した隠しフレームに、次のURL遷移に必要なパラメータをhiddeenにて設定しておきます。 (4)作成した隠しフレームのonLoad時に仮想的にsubmit()します。 (3)<html:link>にて隠しフレームをコールします。 サンプルソース fream.jsp(freamセットするJSP) hoge.jsp(<html:link>があるJSP(本題JSP)) hidden.jsp(隠しフレーム) ====================== fream.jsp ======================= html> <head> <title>フレームテスト</title> </head> <frameset rows="100%,0%"> <frame src="hoge.jsp" name="main"> <frame src="hidden.jsp" name="dummy"> </frameset> <noframes> このページはフレーム対応のブラウザでご覧ください。 </noframes> </html> ================== hoge.jsp ============================ <html:link href="hidden.jsp" target="hidden.jsp"> ================== hidden.jsp ============================= <body onLoad="document.test.submit()"> <form name="test" action="hoge.do" targe="main" method="POST"> <INPUT type="hidden" name="parametar1" value="val1"> <INPUT type="hidden" name="parametar1" value="val1"> <INPUT type="hidden" name="parametar1" value="val1"> </form> <body> かなり、省略しているのでわかりにい点があると思うますので、補足をお願いします。 あと  初めての質問の2番目の回答がわかりました。 .doの変更 アクションへのマッピングを変更可能です。これはweb.xmlの変更で行います。 .do(デフォルト) hoge.do→hoge <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> .ctrl hoge.ctrl→hoge <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.ctrl</url-pattern> </servlet-mapping> わかりましたか??

その他の回答 (5)

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.6

Ano.5にて訂正がありました。すみませんでした。 以下のように修正をお願いします。 ================== hoge.jsp ============================ <html:link href="hidden.jsp" target="hidden.jsp"> ↓に変更 <html:link href="hidden.jsp" target="dummy">

pgBeginImo
質問者

お礼

ありがとうございました。 フレームでページを隠してhiddenで渡すっていうのはとても勉強になりました。 これからも何か機会があれば宜しくお願いします。

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.4

>今は<html:link>タグを使って動的にURLを作成しています。 >(具体的にはアクションフォームから受け取った値をMapオブジェクト>に入れ、<html:link>を使ってURLを動的に生成しています) うまく文字で伝えるのは難しいのですが、これをhiddenオブジェクトに>格納することって可能でしょうか? >submitで送信するわけではないので >個人的には難しいと思っています。 >submitで送信せずにhiddenオブジェクトでパラメータを >渡す方法ってありますでしょうか? 質問から推測すると、 html:linkを使用して、getでparameterを アクションに受け渡して、アクションにて遷移先のURLを構築していると仮定しますと、仮想してsubmitする方法をJavaScriptで試行してみましたが、無理でした。 よって、 html:linkを使用してhiddenオブジェクトでパラメータを 渡す方法ってなさそうです。 すみませんでした。参考なら無くて・・・・・

pgBeginImo
質問者

お礼

>html:linkを使用して、getでparameterを >アクションに受け渡して、アクションにて遷移先のURLを構築してい>ると仮定しますと その通りです。代弁して頂いてありがとうございます。 >html:linkを使用してhiddenオブジェクトでパラメータを >渡す方法ってなさそうです <html:link>タグ以外を使用してなら可能でしょうか? javascriptの使用はクライアント依存なので、できるだけ避けていたのですがもし可能であれば検討したいと思っています。 どうかご教授宜しくお願いします。 >すみませんでした。参考なら無くて・・・・・ いえいえ、とても参考になります。こちらこそ色々質問しちゃって申し訳ないです。

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.3

>現状の仕様ではDBからの取得値をパラメータで渡すことになります。 >POSTを使うとなると入力フィールドがないのでhiddenで渡すことにな >ると思ってますが、hiddenを使う上で何か懸念すべき事項はあります >でしょうか? hiddenに格納する情報の管理をしっかりやっていれば、問題は無いと思います。具体的に言うと、 画面上表示されない項目なので、設計書やソースのコメントにhiddenオブジェクトを使用する意味をを明記すること。 なぜなら、hidden項目は、見えない部分なので、次のフェーズで参入してきた方が困惑するかもしれないので・・・・・・ >質問に答えて頂いたのに質問で返すのは >失礼かもしれませんが宜しくお願いします。 >hiddenを使うのはあまりセキュリティ面で >よくないというのを耳にしたことがあります。 >getで渡すよりはhiddenで渡したほうがいいのでしょうか? hiddenを頻繁に使用すると管理上、慎重なる傾向がありますが、 セキュリティ面でよくないというの私の認識不足で初耳でした。 補足しますと、インターネットを使用するWeb開発ならば、getで渡す場合ブラウザのステータスバーに表示されるので、直接、URLにステータスバーに表示された文字列を加工して、データ登録やデータの照会が、 可能になり、データの改ざんが発生します。こういったケース場合、セキュリティ面に不安が残ります。 なので、getは文字数制限もあるし、getで渡すよりhiddenで渡すほうを推奨します。 以上、宜しくお願い致します。

pgBeginImo
質問者

お礼

>getで渡すよりhiddenで渡すほうを推奨します。 とても参考になります。ありがとうございます。 今は<html:link>タグを使って動的にURLを作成しています。 (具体的にはアクションフォームから受け取った値をMapオブジェクトに入れ、<html:link>を使ってURLを動的に生成しています) うまく文字で伝えるのは難しいのですが、これをhiddenオブジェクトに格納することって可能でしょうか? submitで送信するわけではないので個人的には難しいと思っています。 submitで送信せずにhiddenオブジェクトでパラメータを渡す方法ってありますでしょうか?

  • davosuke
  • ベストアンサー率61% (34/55)
回答No.2

1、getの場合、文字数も制限されます。たしか256byteしか送信できません。制約もあるので、出来るだけPOST送信がよろしいと思います。POSTとは、フォームオブジェクト(テキストエリア、テキストフィールド、チェックボックス、ラジオボタン、hiddenオブジェクト等)のname=value形式でサーバ側へ送信方法です。 2、 .doを使用するれば、ActionクラスのdoPost()又はdoGet()を呼び出されます。

pgBeginImo
質問者

お礼

返事ありがとうございます。 現状の仕様ではDBからの取得値をパラメータで渡すことになります。 POSTを使うとなると入力フィールドがないのでhiddenで渡すことになると思ってますが、hiddenを使う上で何か懸念すべき事項はありますでしょうか?質問に答えて頂いたのに質問で返すのは失礼かもしれませんが宜しくお願いします。 hiddenを使うのはあまりセキュリティ面でよくないというのを耳にしたことがあります。 getで渡すよりはhiddenで渡したほうがいいのでしょうか?

  • liwet
  • ベストアンサー率72% (18/25)
回答No.1

1. についてですが、GETでは、URLに必ずパラメータがつきます。 つけないようにするには、POSTで送るようにしてください。 2. についてですが、.do は struts で使っているものです。 struts については詳しくないのですが、struts の設定に何かあると思います。

関連するQ&A