感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JSPでユーザーが入力した値をサーブレット側で受け取る。

スポンサーリンク

Google App Engineのこと

Google App Engineとは、Googleのインフラ上で自作のWebアプリケーションを実行するための仕組みのこと。
Webアプリケーションの実行環境ではJavaPythonで作られたアプリケーションを動かすことができる。
すなわち、JavaPythonの実行環境が用意されている。
アプリケーション環境は24時間365日常に稼働していて、システムが使えなくなることは無い。

リソースの制限については、アプリケーションのリクエスト回数は一日当たり4千万回、データストアに保存できる容量は1Gバイトと決まっている。
課金量を増やせば性能は上がるが、このレベルのリクエストを飛ばされるアプリってそんなに作れないんじゃないかな。

ユーザーが入力した値をサーブレット側で取得する方法

まずは入力側のJSPの書き方。名前や年齢を取得したい場合。

<!--actionでリクエストをどこに飛ばすか指定する -->
<form action="/index" method="post">
<dt>名前:</dt>
<dd><input type="text" name="name" /></dd>
<br>
<dt>年齢</dt>
<dd><input type="text" name="age" /></dd>
<p><input type="submit" value="送信" /></p>
</form>

テキストボックスに名前や年齢を入力。
actionで向けた先にPOSTリクエストを飛ばす。

で、受ける側のサーブレットの処理。

protected void doPost(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
	/* 入力項目を取得 */
	String name = req.getParameter("name");
	String age = req.getParameter("age");
}

HttpServletRequestのgetParameterで、パラメータとして渡された値を取得することができる。

サーブレットでリクエストを転送する

サーブレットで、受けたリクエストを別のJSPなどに転送する方法は以下のとおり。

protected void doPost(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {

	/* 別のJSPに処理を飛ばす */
	RequestDispatcher rd = getServletContext().getRequestDispatcher("/WEB-INF/hoge.jsp");
	rd.forward(req,res);
}

RequestDispatcherクラスのforwardメソッドで処理を転送する。
ちなみに、forwardメソッドで呼び出すJSPに情報を渡すには、HttpServletRequestインターフェースのsetAttributeでリクエスト属性に保存する必要がある。

勉強した本

作ればわかる!Google App Engine for Javaプログラミング

作ればわかる!Google App Engine for Javaプログラミング


この本は予想以上の良書!説明も丁寧で手抜きなしの本。
色んな本を量産している人よりも本当に丁寧に書かれていて、僕はすごく好きです。
重版かかっていないみたいなので、そんなに知名度は無いかもですが、こういう隠れた良書はもっと売れてほしいな。

感謝のプログラミング

今回で感謝のプログラミングは【547時間目】
10000時間まで、あと【9453時間】