まるさん サーブレットとJSP 3:)
今回は
3章〜
サーブレットについて
Javaを使ってサーバサイドプログラムを作れるのがサーブレット
サーブレットの文法に従いサーブレットクラス(ブラウザからのリクエストによって実行され実行結果をHTMLで出力)というクラスを開発するとアプリケーションサーバ上でそれらを実行できるようになる
出力されたHTMLはアプリケーションサーバがブラウザにレスポンスしてくれる
サーブレットには3つのお約束がある
これに従ってクラスを定義する
るーる①javax.servlet.http.HttpServletクラスを継承する
・これはサーブレットクラスのもととなるクラス
るーる②doGet()メソッドをオーバーライドする
・doGet()メソッドはサーブレットクラスがリクエストされると実行されるメソッド
るーる③サーブレット関係のクラスをインポートする
サーブレット関係のクラスは主に「javax.servlet」と「javax.servlet.http」の両パッケージに入っている
HTMLの出力のはなし
doGetメソッド内にはリクエストによって実行する処理をかく
HTMLを出力する処理は常に必要になる
処理には
・Content-Typeヘッダの設定
・HTMLを出力する(Content-Typeヘッダの設定後にする)
の2つある
作成したサーブレットクラスを実行するためコンパイル(プログラミング言語で記述されたソースコードを、コンピューターが解釈できる機械語としてのオブジェクトコードに変換する)とインスタンス化(実体化)が必要になる
サーブレットクラスをリクエストするとアプリケーションサーバが自動でインスタンス化をしてくれるし開発者は手動でやらずに済む
サーブレットクラスを実行するとき実際に動くのはアプリケーションサーバが生成したサーブレットクラスのインスタンスである
サーブレットクラスを実行するにはURLを指定するんだけど
サーブレットクラスはファイル名じゃなくURLパターンというものをURL中に指定する
これは自分で自由につけていいらしいけどこれがないとリクエストして実行することはできない
実行方法はブラウザを起動してURLを入力したりEclipseの実行機能も使える
サーブレットが実行するメソッドはリクエストメソッドによって決まる
GETリクエストされたらdoGet()メソッドだし、POSTリクエストされたらdoPost()メソッドを実行する
サーブレットではソースコードを変更しても実行結果に反映されないことがある
この場合しばらく待ってみたりサーバを再起動するといいみたい
大体こんな感じだけど
ちょっとイメージがしにくいところがある
QA
・doGet()メソッドはサーブレットクラスがリクエストされると実行されるメソッド
→javax.servlet.http.HttpServletクラスからかきかえたいところをオーバーライドして書き換える
・ブラウザからリクエストが届くとアプリケーションサーバがサーブレットクラスのdoGet()メソッドを呼び出す。このとき引数として渡されるHttpServletRequestはブラウザから届いたリクエスト、HttpServletResponseはサーバから送り出すレスポンスに関系する情報と機能を持つインスタンスである"
次は4章JSPだ〜