「ここにいます。リクエストに応じて、最初の Web サーバーの作成方法を説明します。」
「Web サーバーはオペレーティング システムのようなものです。それ自体に価値はありません。特別な Web プログラム (サーブレット) を実行できるため、価値があります。」
「ユーザーからのリクエストを処理するのはこれらのサーブレットです。」
「リクエストはどのように処理されるのでしょうか? Web サーバー内でプログラムを実行するにはどうすればよいですか?」
「独自のサーブレットを作成するには、クラスが HttpServlet クラスを継承する必要があります。次に、その doGet() メソッドと doPost() メソッドを実装します。ユーザーからリクエストが来ると、Web サーバーはサーブレット オブジェクトの 1 つを作成し、その doGet() を呼び出します。または、ブラウザからのリクエストの種類に応じて、 doPost() メソッドを呼び出します。
「しかし、私のプログラムはどのようにして Web サーバーに侵入するのでしょうか?」
「それは簡単です。プログラムを作成してコンパイルし、Tomcat をインストールしたディレクトリ内の特別なフォルダーにそれを置きます。」
「サーブレットは大きくて興味深いものですが、別個のトピックです。したがって、今日はそれについては説明しません。別のことについて少し説明します。」
「JSP は、非常に興味深い種類のサーブレットと呼ばれるものです。PHP に似ています。」
「JSP を使用して、可能な限り単純な Web プログラムを作成して実行してみましょう。」
「やってみましょう!準備はできています。」
「それでは始めましょう。」
ステップ 1: 新しい Web プロジェクトを作成する
![単純な Web アプリケーションを実行する - 1](https://cdn.codegym.cc/images/article/d821d0dd-d42d-460c-9e36-4f2e151b97d3/800.jpeg)
"終わり。"
ステップ 2: モジュール タイプを Java モジュールに設定します。アプリケーションの種類を「Web アプリケーション」に設定し、JDK を指定します。
![単純な Web アプリケーションを実行する - 2](https://cdn.codegym.cc/images/article/bde88bd5-6900-4cfe-a8cb-9416b5cfb49d/800.jpeg)
"終わり。"
ステップ 3: project という名前を付けます
![単純な Web アプリケーションを実行する - 3](https://cdn.codegym.cc/images/article/9c98c608-b929-49ad-a324-a6b8d0a008fa/800.jpeg)
"終わり。"
「新しい空のプロジェクトが表示されるはずです。」
「ほとんど空です。index.jsp というファイルが 1 つ含まれています。それを見つけてください。」
ステップ 4: JSP ファイルを見つける
![単純な Web アプリケーションを実行する - 4](https://cdn.codegym.cc/images/article/1ef37da6-a145-46d5-92e6-53a3d6221b22/1024.jpeg)
"それを見つけた。"
「素晴らしいです。ここにサーブレットのコードを記述できます。」
「しかし、最初に IntelliJ IDEA を少し設定しましょう。」
「IntelliJ IDEA から直接 Tomcat でサーブレットを実行できます。また、必要に応じてデバッグもできます。基本的に、これは非常に便利で素晴らしいものです。その時が来たら、きっと感謝するでしょう。」
「私はあなたを信じています。それで、次は何ですか?」
「Tomcat で Web モジュール (アプリケーション) を実行する方法を IntelliJ IDEA に「教えます」。」
ステップ 5: メニューで「設定の編集」を選択します。
![単純な Web アプリケーションを実行する - 5](https://cdn.codegym.cc/images/article/25be1147-adac-489d-b442-3e28deb1053b/1024.jpeg)
"終わり。"
ステップ 6: プラス記号をクリックして新しい構成を作成する
![単純な Web アプリケーションを実行する - 6](https://cdn.codegym.cc/images/article/fd80e95a-f977-4896-871b-f0c44ef1b6d1/1024.jpeg)
"終わり。"
ステップ 7: 何を実行するかを指定します (Tomcat サーバー、ローカル)
![単純な Web アプリケーションを実行する - 7](https://cdn.codegym.cc/images/article/2efb357d-662a-4c14-8adc-e390748560a9/1024.jpeg)
赤でマークされている「名前」フィールドに構成の名前を指定します。
「Tomcat がサーブレットを起動するポートは緑色で示されます。」
「Tomcat がどこにあるかを IntelliJ IDEA に伝える必要もあります。[設定] ボタンをクリックしてください…」
ステップ 8: 実行構成を作成する
![単純な Web アプリケーションを実行する - 8](https://cdn.codegym.cc/images/article/35aeb74f-0359-47a6-9d42-c692f7c75819/1024.jpeg)
「次に、Tomcat が存在するフォルダーを選択する必要があります。」
ステップ 9: Tomcat の場所を指定する
![単純な Web アプリケーションを実行する - 9](https://cdn.codegym.cc/images/article/dd0bd7ec-1e7d-4476-a353-3b798b3eb09b/512.jpeg)
![単純な Web アプリケーションを実行する - 10](https://cdn.codegym.cc/images/article/c7bef026-262b-42a7-b626-0e8dae2d7c37/512.jpeg)
![単純な Web アプリケーションを実行する - 11](https://cdn.codegym.cc/images/article/75342840-1043-49cf-b187-8a9064d8eabb/512.jpeg)
"終わり。"
「次のようなものが得られるはずです。」
ステップ 10: 結果の構成
![単純な Web アプリケーションを実行する - 12](https://cdn.codegym.cc/images/article/e63a77c9-6d29-4bd2-87be-e025c4ece562/1024.jpeg)
「次に、プロジェクトを Tomcat に接続する必要があります。」
やらなければならないことがたくさんあります。こんなに丁寧に教えてもらえるのはありがたいですね。」
「そうですよね!私は友達のために頑張ります。」
「修正ボタンを押すと、IDEA がすべてを自動的に実行します。」
ステップ 11: IDEA がプロジェクトと Tomcat を接続する
![単純な Web アプリケーションを実行する - 13](https://cdn.codegym.cc/images/article/55b09d72-f12d-4719-844b-d9a1f95cb694/1024.jpeg)
"終わり。"
「素晴らしいです。もう 1 つコメントします。ポート 8080 はおそらくすでに占有されています。結局のところ、Tomcat はインストール後すぐに実行を開始しました。」
「IntelliJ IDEA は実行中のプロジェクトにサーブレットを追加できますが、簡単にするために、現時点では毎回新しい Tomcat サーバーを起動します。」
「それでは、トムキャットを数台走らせることになるのですか?」
「はい。それぞれに独自のポートが必要です。それで、プロジェクト設定でポート 8080 をポート 8888 に変更しましょう。」
「フォーエイト。いいね」
ステップ 12: ポートを 8888 に変更します。
![単純な Web アプリケーションを実行する - 14](https://cdn.codegym.cc/images/article/e9571f96-4f72-4f0a-8e08-99bdb3f890c6/1024.jpeg)
"終わり。"
「よかったです。設定は完了しました。」
「それで、次は何ですか?」
「それでは、index.jsp ファイルを少し変更しましょう。」
「そこに何か書いてください、たとえば『甲殻類に力を!』」
ステップ 13:index.jsp を変更する
![単純な Web アプリケーションを実行する - 15](https://cdn.codegym.cc/images/article/d37acd70-3e57-4a01-b2ed-e60dbea904b2/1024.jpeg)
「いえ、むしろ『ロボットにパワーを!』を書きたいです!」
「よかった。あとはやるべきことが少しだけ残っている。」
ステップ 14: サーブレットと Tomcat を実行する
![単純な Web アプリケーションを実行する - 16](https://cdn.codegym.cc/images/article/b7e813a6-c90e-4bcc-831f-44fa84292a89/1024.jpeg)
「Tomcat ログとスタック トレースが表示されるはずです。ログにはエラーがないはずです。」
"このようなもの:"
ステップ 15 - Tomcat ログ
![単純な Web アプリケーションを実行する - 17](https://cdn.codegym.cc/images/article/bc30a6cd-6008-40b8-961f-6e9fe3fcc611/1024.jpeg)
「同時に、IDEA はサーブレットへの URL を含むブラウザーを開きます。」
「次のようなものが得られるはずです。」
ステップ 16:index.jsp を変更する
![単純な Web アプリケーションを実行する - 18](https://cdn.codegym.cc/images/article/94eb07da-a1d5-4e3c-80a9-292f89f41eb5/1024.jpeg)
「はい。それが私が得たものです。クールです!」
「そして、ブラウザに次の URL を入力します。」
http://localhost:8888/index.jsp |
"何も変わっていません。"
「そんなこと言わないでよ。」
ステップ 17:index.jsp を変更する
![単純な Web アプリケーションを実行する - 19](https://cdn.codegym.cc/images/article/0b6ae1c9-29af-4b36-b363-64da03bb8609/1024.jpeg)
「これで、IntelliJ IDEA で見た Index.jsp ファイルがブラウザーに表示されます。」
「私が変えたのは?」
"はい。"
「ただし、ブラウザーのリクエストでドメインのみが指定され、リクエストの残りの部分が指定されていない場合は、デフォルトのハンドラーが呼び出されます。私たちの場合、これはindex.jspです。」
「 index.jsp、apple.jsp、google.jsp という3 つのファイルがあるとします。これがどのように機能するかです。」
リクエスト | 応答 |
---|---|
http://ローカルホスト:8888 | インデックス.jsp |
http://ローカルホスト:8888/ | インデックス.jsp |
http://localhost:8888/index.jsp | インデックス.jsp |
http://localhost:8888/apple.jsp | apple.jsp |
http://localhost:8888/ samsung.jsp | エラー メッセージ: サーブレットが見つかりません |
http://localhost:8888/google.jsp | google.jsp |
http://localhost:8888/インデックス | エラー メッセージ: サーブレットが見つかりません |
"という事は承知しています。"
「ビラーボ、あなたは長い間、JSP が素晴らしいと言い続けてきました。しかし、JSP は通常の HTML ページと非常によく似ています。すべてがまったく同じです。」
「すべてではありません。次のテキストを JSP に追加してみてください。」
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>Amigo says hi</title>
</head>
<body>
<%--This is still HTML--%>
<%
// But I can write Java code here
String s = "Power to robots!";
for(int i=0; i<10; i++)
{
out.println(s);
out.println("<br>");
}
%>
<%--and this is HTML again--%>
</body>
</html>
「JSP ページ内に Java コードを埋め込むと、実行されます。
「JSP ページ内の Java コードはスクリプトレットと呼ばれ、<% および %> タグで囲まれます。」
"うわあ。"
「わかりました。独自の JSP ページをいくつか書きます。」
「本当にありがとう、ビラーボ。」
「そして、友人よ、あなたに感謝します!」
GO TO FULL VERSION