dポイントプレゼントキャンペーン実施中!

それぞれブラウザからのリクエストの種類に対応する
メソッドがdoGet,doPost。
doGetはブラウザからGETでそのサーブレットに
リクエストがあった時に、処理が始まるメソッド、
doPostは同じようにPOSTを受け取った時に動き出す

・・・・・ということなのですが、
doGetもdoPostも、中身のコーディングの仕方としては
同様でいいのでしょうか?
いま、doGetでリクエストに対応する処理をうけつけて
いるのですが、255バイトまでなのでdoPostのほうが
いいということがかかれていました。

これは、ブラウザ:Servletのメソッドで対応してれば
いいだけで、結局は送信量の違いだけですか?
そのへんがよくわかってないので教えてください。

ちなみに、doGetでやってる処理は、

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

//Bean(workBean)のインスタンス作成
wk = new work_Bean();
//Bean処理実行
wk.Work();





//BeanをJSPに渡すためにHttpServletRequestオブジェクトにセット
request.setAttribute("wk",wk) ;

//ViewであるJSPを呼び出す
RequestDispatcher rDispatcher =
request.getRequestDispatcher("/kanri_JSP.jsp");
rDispatcher.forward(request,response);

こんなかんじでしてます。
あとは、ネットで、人のサンプルとかみると
doGetメソッドに処理をかいており、doPostでは
doGet(request,response);として
doGetをよんでたりするんですが、
これは、PostでもGetと同様の処理ができると
いうことですか?
基本的な質問過ぎるかとおもいますがおしえてください。

A 回答 (2件)

GET と POST では、パラメータをプログラムに渡す仕組みが全く違います。


仕組みが違うので渡せるパラメータの大きさが違う、等の違いが出てきます。

ですが、Servlet では、その違いを request オブジェクトが全部隠してくれて
いるので、気にしなくて良いです。つまり、同じことができて、呼出され方が
違う、と。

普通は、html や JSP の方も、Servlet を意識して書くでしょうから、
どちらかだけの実装で良いのですが、汎用的(呼ぶ人を特定しない)な Servlet
を書こうと思ったら、両方を実装しておく、と理解しておけば良いです。


ちなみに、GET で渡せるパラメータの大きさは 255 バイトと決っているわけでは
ないし、POST で渡せるパラメータの大きさに制限が無い、というわけでもあり
ません。

GET の制限は、どちらかというとブラウザ側の実装によって決ってくることで、
POST に制限があるとしたらサーバ側(例えば、Servlet コンテナ)の実装に
よってきます。

この回答への補足

解答ありがとうございます。
別にコーディング上は意識しなくてもいいのですね。
今やってみたらそのとおり、でした。

>普通は、html や JSP の方も、Servlet を意識して書く
>でしょうから、
>どちらかだけの実装で良いのですが、汎用的(呼ぶ人を特
>定しない)な Servlet
>を書こうと思ったら、両方を実装しておく、と理解してお
>けば良いです。

なぜ、両方を実装するのでしょうか?
呼ぶ人を想定しない、・・・からなのでしょうが、
いまいち、具体的になぜ、なのかわかりません。
HTMLやJSPがGetやPostの両方を使う場合があるから??

うーん、勉強不足ですみません。。


>GET の制限は、どちらかというとブラウザ側の実装によっ
>て決ってくることで、
>POST に制限があるとしたらサーバ側(例えば、Servlet
>コンテナ)の実装に
>よってきます。

ああ、そうなんですか。勉強になりました。。
ありがとうございます。

補足日時:2001/08/10 10:41
    • good
    • 1

> なぜ、両方を実装するのでしょうか?


> 呼ぶ人を想定しない、・・・からなのでしょうが、
> いまいち、具体的になぜ、なのかわかりません。

例えば、Perl なんかで書かれたフリーの掲示板の CGI とかってありますよね。
それとか、ソフト屋さんが車内で配布している共通プログラムとか。

そういったレベルで、Servlet を書こうとしたら、「POST でも GET でも
使えます」って両方を実装することになりますよ。

もちろん、「POST にしか対応してません」と取扱説明に書いておいても
良いのだけれど。

この回答への補足

ありがとうございます。

理解できました。

補足日時:2001/08/10 18:44
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!