*[Java][チュートリアル]はじめに JavaによるWebアプリケーション開発のチュートリアルを書こうと思います。100%思いつき。以下のチュートリアルを書くことを予定しています。 -簡単な掲示板を、Servletオンリーで作成。永続化は無し。 -簡単な掲示板を、JSP + Servlet。永続化は無し。 -簡単な掲示板、大きめの掲示板を、JSP + Servlet + DB。 -大きめの掲示板、BTSを、Webフレームワーク + DBフレームワーク + DB。 -大きめの掲示板、BTSを、Webフレームワーク + EJB。 -大きめの掲示板、BTSを、Ajax + Webフレームワーク + DBフレームワーク + DB。 この過程で、DBMSのチュートリアルも書こうと思います。以下のDBMSについて書く予定です。 -Oracle -Microsoft SQL Server -IBM DB2 -MySQL -PostgreSQL -Apache Derby -HSQLDB -H2 Database -SQLite -Cache アプリケーション・サーバ(以下、APサーバ)、Webフレームワーク、DBフレームワークについてのチュートリアルも書こうと思いますが、まだ具体的には考えていません。とりあえずServletコンテナはApache Tomcat 5.5系を使用していきます。 *[Java][チュートリアル]Servletオンリーで簡単な掲示板を作成 **概要 1画面だけの簡単な掲示板を作成します。イメージはこんな感じ。 TODO 001.JPG TODO 002.JPG **動作環境 -Java 5 -Apache Tomcat 5.5 **開発環境 -Windows XP Professional SP 2 -テキスト・エディタ -JDK 5 -Apache Tomcat 5.5 -Apache Ant 1.7 **大雑把な機能仕様 画面イメージは2ちゃんねるみたいな感じ。 投稿すると、その順番に1からの連番が割り当てられます。 投稿内容は、以下の通り。 -名前。省略可能。省略すると「名無しさん」。 -メールアドレス。省略可能。 -内容。必須。 2ちゃんねるとは違い、以下のことはできません。 -特定の記事だけを表示することはできません(130だけ表示とか、130-200表示とか)。 -URLの自動リンク機能はありません。 -スレッドの概念はありません。1スレッドのみ。 -IDはありません。トリップもありません。 -デザインがしょぼいのは気にしない。 -1000では終わりません。上限はありません(機能仕様上。技術的にはint型の上限が限界で、それを超えると異常終了します)。 **大雑把な技術仕様 Servletだけで作成します。JSPは使用しません。Webフレームワークも使用しません。 永続化はしません。APサーバをシャットダウンしたら、投稿内容は消えます。 投稿の排他制御は行いません。DBも使わないしね。 HTMLエスケープくらいはします。 配布形態、インストール方法などは考えません。作って動かしておしまい。 Javaソースコードのコーディング規約検証(Checkstyle)、潜在的不具合検知(FindBugs)はしません。ざざっと作っておしまい。 **参照情報 http://ant.apache.org/ Apache AntのWebサイト http://archive.apache.org/dist/ant/binaries/ Apache Antのダウンロード元。 http://ant.apache.org/manual/ Apache Antのマニュアル。 http://tomcat.apache.org/ Apache TomcatのWebサイト http://archive.apache.org/dist/tomcat/tomcat-5/ Apache Tomcatのダウンロード元。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/ JSEのAPI仕様。 http://java.sun.com/javaee/5/docs/api/ JEEのAPI仕様。 ServletのAPI仕様は、javax.servlet、javax.servlet.httpパッケージを参照。 API仕様のバージョンに注意。 http://www.sk-jp.com/java/servlet/webxml.html http://www.hellohiro.com/servletwebxml.htm web.xmlについてはここ。 http://www.tohoho-web.com/ HTMLについてはここ。 http://htmllint.itc.keio.ac.jp/htmllint/htmllint.html HTMLの文法検証。 **作ったもの http://svn.sourceforge.jp/svnroot/u6kcommons/trunk/bbs1/ **動作確認方法 build.xmlがあるフォルダでantを実行すると、「target/bbs1.war」が生成されます。これをApache Tomcatに配備して、「http://localhost:8080/bbs1/bbs」にアクセスしてください。 **メモ リクエストのパラメータはHttpServletRequest#getParameter()で取得。ブラウザから入力された場合は文字列が取得できます。未入力でも項目があれば、空文字列が取得できます。パラメータが存在しない場合はnullが取得できます。 HttpServletRequest#setCharacterEncoding()でPOSTリクエスト・パラメータの文字コードを変換できます。GETのクエリ・ストリングは変換できないので注意。 コンテキスト・パスはHttpServletRequest#getContextPath()。Servlet v2.5ではServletContext#getContextPath()も可能みたい。 アプリケーション全体で値を保持したい場合はServletContext#setAttribute()。 HTMLエスケープは次の文字。変換の順番に注意(アンパサンドの)。 >|| & -> & < -> < > -> > " -> " ->   \r\n ->
||<