私は基本的に、クライアントとサーバー (必ずしも HTTP サーバーではない) を構築することにより、Java ソケット プログラミングを練習しています。簡単に言えば、クライアントはソケットを介してサーバーにリクエストを送信し、サーバーはリクエストをタスクキューに追加します。スレッド プールには最初に特定の数のスレッドがあり、空いている各スレッドはタスク キュー内の 1 つの実行可能なタスクに割り当てられます。私の Web サーバーには、ディスクのファイルからデータを保存および取得する単純なストレージもあります。このプロジェクトでは、いくつかの並行性の問題に対処する必要があります。
基本的に、クライアント、サーバー、スレッド プール、ハンドラー、ストレージを構築する必要があります。ただし、体系的にしっかりとテストしたい(単体テスト、結合テストなど)。テストの経験があまりないので、ポインター、方法論、フレームワーク、またはチュートリアルを探しています。(私は Ant を使用してビルドを自動化し、最初はテスト用に JUnit と EasyMock を検討しています)