目次
Maven を学習して使用した後、Maven に基づいて 7 つのステップでサーブレット プログラムを実装できます。
1. プロジェクトを作成する
2.依存関係を導入する
3. ディレクトリ構造を作成する
4.サーブレットコードを書く
5. 梱包
6. 展開
7. 検証手順
1. プログラムを作成する
2.依存関係を導入する
Maven 中央リポジトリからサーブレットを検索します。
最初のものを選択し、バージョン 3.1.0 を見つけます
コードを Maven にコピーします。
<dependencies> タグを作成し、コードを pom.xml にコピーします。
クリックして更新:
依存関係のインポートが完了しました。
3. ディレクトリ構造を作成する
1. main を選択して右クリックし、 webappという名前のディレクトリを作成します。
2. webapp を右クリックし、WEB-INF という新しいディレクトリを作成します。
3. WEB-INF を右クリックしてファイル web.xml を作成します。
次に、web.xml に何かを記述し、一般的に使用されるこれらのコードを gitee に配置します。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
4.サーブレットコードを書く
最初に java ディレクトリに Java クラスを作成し、TestServlet は HttpServlet から継承します; コードがポピュラーになった場合は、HttpServlet が正しくインポートされていないことを意味します。Maven で Refresh をクリックするだけです!
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
HttpServletRequest req は http 要求を表し、HttpServletResponse resp は http 応答を表します. 現在のメソッドにはコードはありません. ここで resp は空の応答オブジェクトです. このメソッドにはいくつかのプロパティを設定する必要があります. doGet メソッドが行う必要があるのはリクエストレスポンスに応じて計算する
サーバーはリクエストを受け取り、レスポンス データを解析して構築し、それをクライアントに送信するため、Tomcat はすでにそれを行っているので、リクエストに基づいてレスポンスの計算を完了するだけで済みます。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("test servlet"+System.currentTimeMillis());
}
getWriter は実際には Writer オブジェクトを返します. ここでの Writer オブジェクトはファイルに書き込みません. HTTP 応答の本文にデータを書き込みます. write() は実際には作業に使用されます, データを書き込むメソッド
同時に、Tomcat が受信したリクエストのうち、パスが /test の場合にのみ TestServlet クラスのコードが呼び出されることを示す @WebServlet("/test") アノテーションをクラスに追加する必要があります
。(このパスにはコンテキスト パスは含まれません)
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/test")
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("test servlet"+System.currentTimeMillis());
}
}
5. 梱包
パッケージングを使用してプログラムを Tomcat に配置して実行する
パッケージングには Maven を使用します。Maven ウィンドウを開き (通常、IDEA の右側に Maven ウィンドウが表示されます。表示されない場合は、メニュー -> 表示 -> ツール ウィンドウ -> Maven から開くことができます)、Lifecycle を展開します。パッケージをダブルクリックしてパッケージ化を開始します
コンソールに BUILD SUCCESS が表示されたらパッケージングは完了です
次に、新しいターゲット ディレクトリをクリックします。
jar パッケージがここにパッケージ化されていますが、Tomcat は war パッケージを認識するため、これは私たちが望んでいるものではありません。そのため、pom.xml に特定の変更を加えたいと考えています。
war パッケージと jar パッケージの違い
jar パッケージは、通常の Java プログラム パッケージの結果であり、いくつかの .class ファイルが含まれます。
war パッケージは Java Web プログラムであり、.xml 以外のすべてが含まれています。クラス ファイルに加えて、HTML、CSS、JavaScript、画像、およびその他の jar パッケージも含まれます.war パッケージ形式でのみ、Tomcat によって認識されます。
pom.xml に梱包タグを追加し、梱包方法が war パッケージを作成することであることを示します
<packaging>war</packaging>
pom.xml に別のビルド タグを追加し、組み込みの finalName タグを追加して、出力する war パッケージの名前が TestServlet であることを示します。
<build>
<finalName>TestServlet</finalName>
</build>
完全な pom.xml
mavenを再利用してパッケージ化すると、生成された新しいwarパッケージの結果がパッケージ化されて いることがわかります
6. 導入プログラム
war パッケージを tomcat の webapps ディレクトリにコピーします。
war パッケージをコピーして tomcat の webapps に貼り付けます
貼り付けた後、Tomcat を起動します。
開始完了
7. 検証手順
対応するアドレスをブラウザに入力します : 127.0.0.1:8080/TestServlet/test
注: URL の PATH は 2 つの部分に分かれています。ここで、TestServlet はコンテキスト パスで、test はサーブレット パスです。
もちろん、上記のパッケージングと展開のプロセスは比較的面倒ですが、もっと簡単な方法もあります。! !
簡単な導入:
いくつかのサードパーティ ツールを使用して、パッケージ化と展開の 2 段階の操作を簡素化します。IDEA には、パッケージ化と展開の操作を自動的に完了することができる smart tomcat と呼ばれるプラグインがあります。
ダウンロードしてインストールするだけです。
ダウンロードしてインストールしたら、最初に一連の構成を実行する必要があります。フォローアップは、開始をクリックするのと同じくらい簡単です。
ここをクリックしてから、+ 記号をクリックします
スマートTomcatをクリック
右上隅にある緑色の三角形をクリックして、自動的にパッケージ化してデプロイします
ポートの競合を避けるために、このメソッドを使用して起動した Tomcat を閉じることに注意してください。
緑色の三角形をクリックして、ワンクリックでパッケージ化して展開します。
これでデプロイは完了です