カキツバタ


5月6日、自然教育園にて。

「基礎からのサーブレット/JSP」
入力をチェックし、try/catchでエラーを処理する。リクエスト処理の前にフィルタdofilterでリクエストを受ける。web.xmlのfilter/filter-mappingで登録する。初期化パラメータを指定することも可。リクエストのディスパッチはgetRequestDispatcherで指定する。forward/includeが可能。JSPにフォワードすることも可。レスポンスにsendRedirectでリダイレクトを指示することも可。
オブジェクトのスコープは、ページ、リクエスト、セッション、アプリケーションがある。各インタフェースのattributeをセット・ゲットするのが基本。サーブレット間にデータを渡すだけならリクエストのオブジェクトを使えば足りる。サーブレット・JSP間も同じ。同じクライアントからの一連の処理を通じて使うオブジェクトはセッションオブジェクト。同じサービスで共通に使う場合はアプリケーションオブジェクト。サーブレット/JSPはシングルインスタンス・マルチスレッド動作なので注意が必要。ローカル変数・リクエスト属性・ページ属性はスレッドセーフ。インスタンス変数・スタティック変数・セッション属性・アプリケーション属性はスレッドセーフではないので要注意。スレッドセーフなオブジェクトもアプリケーションサーバによっては保障されない可能性がある。
サーブレットの初期化パラメータはweb.xmlのinit-paramに記述したものをServletConfig()で取得できる。アプリケーションの初期化パラメータはweb.xmlのcontext-paramに記述したものをgetInitParameter()で取得できる。
ファイルからの入力はgetRealPath()でパスを得、FileInputStream()で読む。クラスパスのファイルからの場合は、class.getResource()でurlを得、openStream()で読む。
HTTPリクエストとレスポンスのヘッダ、メッセージボディを扱う関数もある。
クッキーの利用はリクエストからgetCockies()で取得、レスポンスにaddCockieで保存する。
URLリライティングの説明は意味不明。

広告