サーブレットとは、PerlやPHPと同じように、サーバサイドでHTMLドキュメントを動的に生成する仕組みのことを言います。Webブラウザから入力されたデータを受け取ってデータベースを参照したり、何らかの処理を行う場合には、サーバサイドプログラムが必要になります。Javaで作られたサーバサイドプログラムをサーブレットと言います。
サーブレットは、Perlなどに比べマルチスレッドが利用でき高速化ができることと、プラットフォームに依存しないプログラミングができるので、広く普及しています。また、最近では業務系システムなど大規模なWebシステムのほとんどは、サーブレットで開発されています。
サーブレットもHTMLを動的に生成する仕組みですが、簡単な画面表示の変更などをしてもリコンパイルが必要になり、プログラマとデザイナなどが混在するような開発体制では非常に複雑で工数がかかる仕組みでした。そこで、PHPのようなスクリプト型言語に近いものとして誕生したのが、JSP(Java Server Pages)という仕組みです。
JSPは、ほぼPHPのJava版と考えて良いでしょう。システムの複雑な処理などは、サーブレットで作り、処理結果を画面表示する部分だけをJSPで記述します。JSPはサーブレットと共に使われる技術であり、実際の処理は、JSPファイルの中身をサーブレットが解釈して実行されます。
最近のシステム開発では、コンポーネント化が進んでいます。コンポーネントとは、プログラムの処理をひとかたまりとして独立し、分離することで、他のシステムに使いまわすことができるようにする仕組みのことを言います。コンポーネントを組み合わせて開発することで、同じような処理を再開発する必要がなくなり、開発工数の削減が期待できます。
EJB(Enterprise JavaBeans)は、主に企業向けの基幹システムの開発に主眼を置き、使用頻度が高いロジックやDBアクセス処理などをコンポーネント化したものです。もちろん、サーブレットやJSPでも同じ処理をすることはできますが、最初からトランザクションの管理やセッション管理などの機能が内蔵されているため、バグの少なく安全にシステム開発を行うことができるというメリットがあります。
現在、Sun Microsystems社では、サーブレット、JSP、EJBなどの企業向けシステム開発の総合環境として、Java 2 Platform Enterprise Edition(J2EE)を提供しています。