インスタンスはメモリ上のポインタうんぬんの話で、「通常時じゃファイルとかに書き出しができないからこの直列化という機能を使ってちゃんと整えてね」っていうことらしい。今回、ファイル保存に絡んでHTTPセッションに保存するオブジェクトもjava.io.Serializableインタフェースを実装して、直列化可能なオブジェクトにせなアカンと。次にEclipseが勝手に生成してくれたメソッドについてみてみる。コンストラクタについては飛ばすとして、他はdoGetメソッドとdoPostメソッド。この子たちは、各HTTPリクエストと対応したメソッドになっている。resp)実はこの他にPUTとかDELETEとかリクエストの種類はあるんだけども、ここでは省略。作られたdoGetメソッドはGETリクエスト時に呼び出し、doPostメソッドはPOSTリクエスト時に呼び出しということ。HttpServletクラスを継承したサーブレット用クラスは少なくとも1つはHTTPリクエストに対応したメソッドを作っておかないといけないということだね。はい、コーディング前の予習はここまで。実際にコーディングしていくここからは、実際に階乗計算ページをコーディングしていきます。階乗計算メソッド階乗ってなんだっけとかは省略。階乗の処理自体は下のメソッドを使います。さっき生成したHelloServletクラス内に記述します。factorial(v-1);}}再帰的アルゴリズムの模範回答。笑int型だとすぐオーバーフローしてしまうので、気休め程度にlongにしました。(これでも20!くらいしか計算できません)コンストラクタになにか書いてみる正しくコンストラクタの内容も実行されているかチェックするため、コンストラクタに適当になにか書いておきます。(実験だからね)ここでは、ページタイトルの内容を引数に渡すようにコーディングしました。}doGetメソッドのコーディングページにアクセスした際に行われるリクエストはGETなので、最初に表示する内容をdoGetメソッドに書いていきます。java.io.PrintWriter;しました。Styleの部分やめんどくさくてタグを続けて書いてある部分があるので、少し見づらいですがご了承を。HTMLでは""がよく出てくるけども、Javaでの記述では\"\"とエスケープシーケンスなので、少し面倒。いうか、普通はHTML出力はサーブレットに書かないよね。実際にブラウザでみるとこんな感じ。method=\"post\">");の部分。actionにボタンが押された際に実行するサーブレット名、methodに使用するリクエストの種類を指定する。クライアントからのデータの送信は通常POSTなのでPOSTを指定。ボタンが押された時点でPOSTリクエストが発生し、doPostメソッドが呼び出される。doPostメソッドのコーディング先のdoGetメソッド内のボタンが押された時にPOSTリクエストが発生するので、ボタンが押された後の処理をこのメソッドに書いてやればOK。階乗計算オーバーフロー時の処理HTML出力って感じです。request.getParameter("val");で"val"フィールドから値を取得(このときはまだStringオブジェクト)。-1;}}では、未入力時や数値以外のものが入力された際に変数valへ-1を代入。値が入力されていればlong型へキャストした入力値をvalへ。"</h3></td></tr></table>";}}では、valの値が-1の時(未入力or型が違う)にエラーを出力し、その後さっき作成した階乗メソッドを呼び出して、結果が正しく1以上の値が返ってくれば、そのままoutputに結果を、1未満であればオーバーフローしているので、オーバーフロー通知を出力する。あとは、doGetメソッドと同じようにHTMLを吐いているだけ。実際に5を入力してボタンを押した結果がこちらソースコード最終形はいじゃあ、結局のソースコードでございます。factorial(v-1);}}}雑感まあ地味な感じですけれども、一応、動的なwebサイトがこれで作成できたことになります。基本構造はこんな感じなので、これをベースにいろいろいじればネットショップとかがつくれる、と。(1)はてなブログをはじめよう!sheemaaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。