HTTPのMETHOD | HttpServletのメソッド | 説明 |
---|---|---|
GET | doGet(...) | URIを取得する |
POST | doPost(...) | URIに情報を送信する |
PUT | doPut(...) | URIを作成、更新する |
HEAD | doHead(...)/doGet(...) | URIのヘッダ部分を取得する |
DELETE | doDelete(...) | URIを消去する |
OPTIONS | doOptions(...) | URIに対して使用可能なオプションの一覧を返す |
TRACE | doTrace(...) | ループバックを起動する(?) |
ほとんどの場合、GETかPOSTが使われます。
もともとの使いわけとしては、 GETがファイルの取得、POSTは(サーバーへ)データの送信するときに使われます。
通常の<a href="hoge.jsp">のリンクはGETリクエストになります。
GETでも、URLの後ろに、"hoge.jsp?aaa=bbb"とつけることで、サーバー側で文字列を解析することで、データ送信を行うことが可能です。
Javaでサーブレット、JSPを使う場合は、
コンテナがPOSTやGETの違いを吸収して、HttpServletRequestを作成してくれるので、
プログラマが、その違いをあまり意識する必要はありません。
ただし、呼び出されるメソッドが、上記1.1の表のように異なります。
HTMLのFORMでリクエストを出すとき、
ACTION="GET"にしたときは、
ブラウザのアドレスバーにフォーム情報が付加されたアドレスがわたされ、
ACTION="POST"にしたときは、
ブラウザのアドレスバーにフォーム情報は付加されないことを
確認してください。
ACTIONを省略したときはデフォルトのGETになります。
やりたいこと | メソッド |
---|---|
リクエストからHTML form情報を取得 | HttpServletRequest#getParameter(String name) |
サーブレット初期化パラメータを取得 | ServletConfig#getInitParameter(String name) |
HTTPリクエストヘッダ情報を取得 | HttpServletRequest#getHeader(String name)など |
レスポンスヘッダーを設定し、
そのレスポンスのコンテンツタイプを設定するための名称 | ServletResponse#setContentType(String type) |
レスポンスオブジェクトに対しテキストストリームを取得 | ServletResponse#getWriter() |
レスポンスオブジェクトに対しバイナリストリームを取得 | ServletResponse#getOutputStream() |
他のURLへHTTPリクエストをするリダイレクト | HttpServletResponse#sendRedirect(String url) |
スコープ | 説明とメソッド |
---|---|
page
ページ | JSPでのページスコープ。サーブレットのローカル変数に同じ。
PageContext#setAttribute(key, obj) PageContext#getAttribute(key) |
request
リクエスト | クライアントへレスポンスを返すまで。
dispatchしたサーブレットやJSPの範囲
ServletRequest#setAttribute(key, obj) ServletRequest#getAttribute(key) |
session
セッション | 同じセッションIDを割り振られたセッションに対して 例としてはショッピングカート HttpSession#setAttribute(key, obj) HttpSession#getAttribute(key) |
application
アプリケーション (サーブレットコンテキスト) | 同じwebapp内のサーブレット、JSP 例としては、日替わり特売品など ServletContext#setAttribute(key, obj) ServletContext#getAttribute(key) |
スコープの範囲の広さは
page < request < session < application
となります。
メソッド | 説明 |
---|---|
init | サーブレットがインスタンス化されたとき。 初期化処理(があれば)書く。 |
service | リクエストの度 |
destory | サーブレットの終了処理時 終了処理を書く。 |