JavaEE使ってウェブアプリケーションつくろうよ

これはJava Advent Calendarの17日目。
記事としては、 @irof さんの JUnitの知識を棚卸し #JJUG のあと、@Nagise さんの ProxyパターンとProxyクラスと黒魔術 の前となります。

JavaEEって何かよく判らない、なんか難しそうというお話を聞いたので自分なりにお話をしてみたいと思います。

JavaEEって何?

JavaEEはWebアプリケーションを作るためのJavaの仕組みです。

最近のJavaEEの資料を読むと、クラウド対応が〜とか、JPAが〜とかEJBが〜とかJSFが〜とかよく判らない説明がたくさん出てきて意味不明なのですが、そこら辺は忘れちゃってもいいです。よく判らない用語は作りやすくするためのおまじないです。
その用語の説明の通りに作れば保守しやすく、安全なものを作りやすいだけというだけなので知らなくても大丈夫です。

もう一度言うと、JavaEEはWebアプリケーションを作るためのJavaの仕組みです。*1

JavaEEを使うと何がいいの?(1)

安全なWebアプリケーションを作りやすいです。(キリッ

だとアレなのですが、Webアプリケーションを作ろうとすると色々な事に気を付けないといけません。
例えばSQLインジェクションというものがあります。
通常、ユーザーから入力された情報を保存するためにデータベースを利用します。
その時にSQLを使用しますが、その時に気を付けないとデータを保存するつもりがいつの間にか削除されていた等、不思議な現象が起こることがあります。
JavaEEを利用しているとそういった現象を回避しやすいです。

なぜならばJavaEEは長い間多くの人に使われてきています。
その間に多くの脆弱性が見つかり、多くの解決策が検討されてきました。
それらのノウハウが仕様として吸収されており、安全なアプリケーションが作りやすくなっています。

もう一度言うと、JavaEEを使うと安全なWebアプリケーションを作りやすいです。*2

JavaEEを使うと何がいいの?(2)

簡単にリッチなアプリケーションが作れます。

JavaEEは非常に多くの人に使われています。その間に非常に多くのライブラリが開発されてきました。
例えば、PrimeFacesというのがあります。こちらを使うとMacOSXみたいなUIが作れたりします。
リッチなUIを作る必要がある場合、JavaPHPのようなサーバーサイドの言語の他にJavaScriptFlashの知識が必要になる場合が多いです。
JavaEEのライブラリにはそういったクライアントサイドまで勝手にやってくれるものもあり、簡単に作れるようになっています。
その他にも沢山あるので探してみてください。

もう一度言うと、JavaEEを使うと簡単にリッチなアプリケーションが作れます。*3

実際に作るのはどうすればいいの?

実際に作りたくなった場合、NetBeansをインストールすれば作れます。
サポートテクノロジーJava EEと書かれたリンクのものをダウンロードすれば、一緒に動作環境までついてきます。
とりあえず動かしてみたいという場合は、最初から色々なサンプルが入っていますので、そちらを動かしてみるのがおすすめです。
ファイル→新規プロジェクトからサンプルを開くことができます。
初心者としては、JSPExampleから始めるのがおすすめです。次は、ServletExamples、Web JPAと、(JSTL Examplesを除いて)上から順番に見ていけばいいと思います。
ある程度動いているものが見たければ、scrum toysをインストールすれば複数画面構成で動いているものを試すことができます。


判らなくなったら

メーリングリストで聞いちゃいましょう。日本Glassfishユーザ会メーリングリストあたりで。
最近再始動したばかりのようですが、きっとだれかが教えてくれるはずだと思っています。

もしくは、本でも。
少し古い本ですが、おすすめの本はこちらです。

マスタリングJavaEE5 第2版 (DVD付) (Programmer’s SELECTION)

マスタリングJavaEE5 第2版 (DVD付) (Programmer’s SELECTION)

ただし、こちらの本は機能の紹介はされているのですが、1からつくろうとすると辛い内容になっています。
なので、ある程度作れるようになってからよく判らない機能について追加で参照するぐらいがおすすめです。

この本以外にも紹介したいと思っていたのですが、紹介しようと思っていた本が出版が遅れており紹介できず(/_;)

最近、初心者向けのJavaEEの本をめっきり読んでいなかったので、おすすめのある人は紹介してくださるとありがたいです。


この記事を読んでちょっとでもJavaEEに興味を持ってくれる人が増えてくれると嬉しいなと思いつつ。
締めさせていただきたいと思います。

*1:もちろん他のことも出来ます

*2:もちろんある程度気をつける必要はある

*3:ライブラリが用意されてないと難しいし、用意されていたとしても英語が多いというのは辛いかもしれない