まるさん サーブレットとJSP 3:)

 

今回は

スッキリわかるサーブレット&JSP入門(国本大悟著)

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つある

 

作成したサーブレットクラスを実行するためコンパイルプログラミング言語で記述されたソースコードを、コンピューターが解釈できる機械語としてのオブジェクトコードに変換する)とインスタンス化(実体化)が必要になる

コンパイルEclipseだと上書き保存で自動でしてくれる

サーブレットクラスをリクエストするとアプリケーションサーバが自動でインスタンス化をしてくれるし開発者は手動でやらずに済む

 

サーブレットクラスを実行するとき実際に動くのはアプリケーションサーバが生成したサーブレットクラスのインスタンスである

 

サーブレットクラスを実行するにはURLを指定するんだけど

サーブレットクラスはファイル名じゃなくURLパターンというものをURL中に指定する

これは自分で自由につけていいらしいけどこれがないとリクエストして実行することはできない

 

実行方法はブラウザを起動してURLを入力したりEclipseの実行機能も使える

 

サーブレットが実行するメソッドリクエストメソッドによって決まる

GETリクエストされたらdoGet()メソッドだし、POSTリクエストされたらdoPost()メソッドを実行する

 

サーブレットではソースコードを変更しても実行結果に反映されないことがある

この場合しばらく待ってみたりサーバを再起動するといいみたい

 

大体こんな感じだけど

 ちょっとイメージがしにくいところがある

 

QA

・doGet()メソッドサーブレットクラスがリクエストされると実行されるメソッド

要はサーブレットクラスのメインメソッドである

javax.servlet.http.HttpServletクラスからかきかえたいところをオーバーライドして書き換える

・ブラウザからリクエストが届くとアプリケーションサーバサーブレットクラスのdoGet()メソッドを呼び出す。このとき引数として渡されるHttpServletRequestはブラウザから届いたリクエスト、HttpServletResponseはサーバから送り出すレスポンスに関系する情報と機能を持つインスタンスである"

 

次は4章JSPだ〜