読者です 読者をやめる 読者になる 読者になる

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

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

サーブレットでリクエストパラメータを受け取ったり、文字コードのフィルタをかけたりのまとめ。

JavaEE
<スポンサーリンク>

「作ればわかる!Google App Engine」という本を写経している。
「基礎からのサーブレット/JSP」などでひと通り基礎の基礎を身につけた後にやるべき素敵な本だ。

今はまだサンプルを真似しているだけなので、コード全体を載せることなんてできないけれど、
「作ればわかる!」の2章を読んで覚えておきたい書き方について、まとめておく。
実際に動かして勉強できるから、すぅっと頭に入ってくる。

SuppressWarningアノテーション

サーブレットクラスの宣言の部分につけるアノテーション

@SuppressWarnings("serial")
public class IndexServlet extends HttpServlet {

このアノテーションを書くことによって、「シリアライズ可能クラス〜Servletはlong型のstatic final serialVersionUIDフィールドを宣言していません」という警告を無視することができる。

サーブレットへのリクエストを転送する構文

RequestDispatcher rd = getServletContext().getRequestDispatcher("/WEB-INF/forward.jsp");
rd.forward(req,res);

上記のように書くと、飛んできたリクエストを別のJSPに飛ばすことができる。
WEB-INFの下にjspを置くと、使う側からはJSPが見えない。
最初にリクエストをサーブレットで受けて、そこからJSPに転送することで、ユーザーからは見えないところに置いたJSPにリクエストを飛ばすことができる。

サーブレットで送られてきたパラメータを受け取る

リクエストを投げる側がこんな感じで。。。

<form action="/index" method="post">
<div class="box">
<dl>
	<dt>When</dt>
	<dd><input type="text" name="hoge" /></dd>
	<dt>Where</dt>
	<dd><input type="text" name="fuga" /></dd>
</dl>
<p><input type="submit" value="make new document" /></p>
</div>
</form>

このように、formで囲まれた「name="hoge"」というところの「hoge」の部分に引っ掛ける。

サーブレット側は、

protected void doGet(HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException {
	String hoge = req.getParameter("hoge");
	String fuga = req.getParameter("fuga");

みたいな感じで、リクエストで飛んできたパラメータをStringで受け取ることができる!

web.xmlで設定した初期パラメータを取得する

web.xmlにこんな感じで書かれているパラメータをサーブレット側で取得する。

<filter>
	<filter-name>Encoding</filter-name>
	<filter-class>sample.EncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>Encoding</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
public class EncodingFilter implements Filter {
	private String encoding = null;
	public void init(FilterConfig config) throws ServletException {
		encoding = config.getInitParameter("encoding");
	}

勉強した本

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

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


Google App Engineの勉強ができればいいやと思って買ったけど、JavaサーブレットJSPの勉強にもなってとてもお買い得な本だった。

感謝のプログラミング

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