
サーブレットの基本になりますが、一応まとめておきます。
そもそも、GET、POSTとは?
ブラウザからのサーブレットへのリクエストの種類のことです。GETとPOSTでは、全く仕組みが異なりますが、サーブレットがそれを隠してくれているので、コーディングではその違いを気にする必要はありません。
doGet、doPostについて
javax.servlet.http.HttpServletクラスのメソッド
doGet、doPostメソッドは、「javax.servlet.http.HttpServletクラスのメソッド」になります。
サーブレットを作る際は、このクラスを継承して作ることになります。
doGet
・GETリクエストで呼ばれます。
・下記のように、サーブレットを直接URLで呼び出した場合は、まずは「doGetメソッド」が呼び出されるので、仮にdoPostしか使わなくても記述は必須となります。
http://localhost:8080/example/Sevlet
・パラメータの受け渡し方が、URLにパラメータで付加する形式になります。
例:carというパラメータに、「セダン」という文字列を渡す場合
http://localhost:8080/example/Sevlet?car=%e3%82%bb%e3%83%80%e3%83%b3
%b3は、URLエンコーディングといって、日本語は、基本的にはURLには使えない文字なので、こういった文字に変換されるのです。
・書き方の例
public class XssServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException{ … } }
doPost
・POSTリクエストで呼ばれます。
・パラメータの受け渡しは、HTTPのBODY部を使うので、URLには付加されません。
セキュリティ的にPOSTの方が安心と思われがちですが、HTTPでは、BODY部に平文で入っているので簡単に見られてしまうので、プロトコルにはHTTPSを使い暗号化するのが通常となっています。
・書き方の例
public class XssServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException{ … } }
doGetと、doPostの共通部分は、共通メソッドを作ろう。
doGetとdoPostで共通している処理があれば、下記のようにして共通化しましょう。
public class XssServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException{ doCommon(req,resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException{ doCommon(req,resp); } protected void doCommon(HttpServletRequest req, HttpServletResponse resp) throws ServletException{ System.out.println("共通処理"); } }
この記事へのコメントはありません。