- - PR -
getParameterとgetAttributeの違いはなんですか?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2001-11-07 23:32
はじめまして。ワンダーと申します。
getParameterメソッドとgetAttributeメソッドの違いは戻り値だけでしょうか? フロント側をJSPで、バックをサーブレットで作ってるのですが、 サーブレット側ではgetParameterで取り出し、 また、値をsetAttributeでセットして、JSP側でgetAttributeしています。 ですが、サンプルとかを見るとJSP側でもgetParameterを使用しているようです。 getParameterメソッドとgetAttributeメソッドの違いは何なんでしょうか? 初歩的で申しわけございませんが、ご教授お願い致します。 |
|
投稿日時: 2001-11-08 00:50
Parameter は request にユーザが乗せてきたもの。
Attribute は request 生成後に Servlet だか JSP だかがくっつけたもの。 setAttribute はあるけど setParameter はないですよね。 # でもちょっとほしい時があるなぁ(わ > setParameter |
|
投稿日時: 2001-11-08 23:49
しょむさん、ありがとうございます。
ということは、JSP(フロント)側ではサーブレットから getParameterはできないってことと思っていいのでしょうか? もしそうなら、setParameterが欲しいですね。 |
|
投稿日時: 2001-11-09 00:57
> もしそうなら、setParameterが欲しいですね。
いや、それは大変な思い違いですよ。 そもそも、Servlet -> JSP というサーバ内部の過程で、 ServletRequest#setParameter() が実現して、いったい何の意味があるの??? Browserから、Serverへ再接続される上(この時点でサーバ内部の話ではなくなる)、 転送するパラメータは、文字列(String)しか渡せなくなるんだし...。 「Browser」 --(Request)--> 「ServletContainer」 --(Resonse)--> 「Browser」 におけるライフサイクル過程の中で、 ServletContainer内のJSPを含めた複数のサーブレットをChain経由していくために RequestAttributeがあるんじゃないのですか?! |
|
投稿日時: 2001-11-09 02:07
うーんと、「servlet から getParameter する」という感覚がちがうのです。request は基本的には「ユーザからの要求」です。その根本が Parameter。これは捏造されちゃあまりよろしくないわけです。
で、Attribute ってのは、ユーザからの要求を処理したひとが、なんか印を付けたいとかあとから処理するひとのために情報を残したいときに、request にぺたっと張り付けるもの、なんですね。 # ここでの話は request ですが、session や page にも Attribute があります。 ----- 余談 例えば、よるある Servlet で受けて JSP で返すような時、基本的には Servlet がすべてのパラメータを処理しちゃって、JSP は Servlet が作って request に張り付けてくれた情報「だけ」を使って、表示を作るべきです。(私の個人的な考えですが:b) 例外は、Servlet で受けて JSP に返すんだけど、Servlet は「どの JSP を呼び出すか」程度しか仕事しなくて、それ以降はぜんぶ JSP にまかせちゃうというパターン。 この時は Servlet も JSP も Parameter を見ますね。このときも Servlet が勝手にユーザからのリクエストをねじ曲げてしまうとちょっと…。さらにいえば、Servlet が見るパラメータと、JSP がみるパラメータは独立であるべき、ですね。 というわけで、「ユーザのリクエストをねじ曲げたい」とか「リクエストを捏造したい」とかいう目的にしかつかえません(わ > setParameter |
|
投稿日時: 2001-11-09 02:15
ちうわけで、setParameter がほしくなる場面というのは、設計ミスなんだけどなおすのめんどうだなぁ、ってときですね。:)
|
|
投稿日時: 2001-11-13 01:43
謎の白覆面さん、しょむさん ありがとうございます。
返信が遅れてしまってすみません。 とっても大きな思い違いをしていました。 ご指摘ありがとうございます。 |
1