IDEA2021 tomcat10 サーブレットの新しいバージョンの落とし穴

IDEA2021 tomcat10 サーブレットの新しいバージョンの落とし穴

私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリアルはすべて古いバージョンであったため、多くの問題が発生しました。以下は、他の初心者が落とし穴を回避するのに役立つ要約です。
さっそくですが:

1:
ファイル->新規->プロジェクトで通常の Java プロジェクトを作成します。

プロジェクト名は任意に付けることができます

2:
プロジェクト名を右クリック -> フレームワーク サポートの追加:

Webアプリケーションをチェックして[OK]をクリックします

3:
プロジェクト名 -> web -> WEB-INF を展開し、WEB-INF の下に classes と lib という 2 つの新しいフォルダーを作成します。

4:
Ctrl + Alt + Shift + S を押してプロジェクト構造を表示します。
[モジュール] -> [パス] を選択し、ラジオ ボタンで [モジュール xxxxx を使用する] を選択して、作成したクラスへの 2 つのパスを変更します。

次に、依存関係を選択し、下の + 記号をクリックして、jars または dirxxxxxxxx を選択し、作成した lib ディレクトリを選択します。使用するディレクトリを選択する場合は、jar direxxxxxxx を選択してチェックし、適用をクリックして、OK をクリックします。

5:
tomcat/lib ディレクトリにある servlet-api.jar を、作成した lib ディレクトリにコピーします。

6:
右上隅のハンマーの横にある [構成の追加] をクリックし、プラス記号をクリックして、tomcat サーバー -> ローカルを選択します。ここで tomEE を選択しないように注意してください。 2 つのアイコンは同じですが、同じものではありません。その他の構成は変更されません。aply で [fix] をクリックします。アプリケーション コンテキストには好きな名前を付けることができます。/ で十分であることが推奨されます。それでは申請してください。OK。

7:
index.jsp のタイトルと末尾を変更して実行します。以下のようになっていれば基本的にOKです。

8:
src に新しい Java クラスを作成し、サーブレットを記述してみます。
これも他のバージョンとは異なります。古いバージョンはすべて javax.servlet.xxxxx をインポートしますが、ここでは jakarta.servlet.xxxxx をインポートします。servlet-api.jar を展開すると、インポートする必要がある特定のパッケージを確認できます。

ここに画像の説明を挿入

jakarta.servlet.ServletException をインポートします。
jakarta.servlet.annotation.WebServlet をインポートします。
jakarta.servlet.http.HttpServlet をインポートします。
jakarta.servlet.http.HttpServletRequest をインポートします。
jakarta.servlet.http.HttpServletResponse をインポートします。
java.io.IOException をインポートします。
java.io.PrintWriter をインポートします。

@WebServlet(名前 = "ログイン")
パブリッククラスLoginはHttpServletを拡張します{
    @オーバーライド
    保護された void doPost(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
            ServletException、IOException をスローします {
        レスポンス.setContentType("text/html");
        PrintWriter 出力 = response.getWriter();
        out.println("<!DOCTYPE HTML>");
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>ログイン</TITLE></HEAD>");
        out.println(" <BODY>");
        out.print(" これはログインページです");
        out.print(this.getClass());
        out.println(" </BODY>");
        出力をprintln("</HTML>");
        出力をフラッシュします。
        out.close();
    }

    @オーバーライド
    保護された void doGet(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
            ServletException、IOException をスローします {
        レスポンス.setContentType("text/html");
        PrintWriter 出力 = response.getWriter();
        out.println("<!DOCTYPE HTML>");
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>ログイン</TITLE></HEAD>");
        out.println(" <BODY>");
        out.print(" これはログインページです");
        out.print(this.getClass());
        out.println(" </BODY>");
        出力をprintln("</HTML>");
        出力をフラッシュします。
        out.close();
    }
}

次に、web.xml ファイルを次のように変更します。

サーブレット

-name は、大文字と小文字が一致していれば任意の名前にすることができます。servlet-class はクラス名と同じである必要があります。url-pattern は、Java クラスの @WebServlet(name="xxxx") の xxxx と同じである必要があります。ここで、xxxx はパスです。
この時点でコンパイルして実行し、アドレスバーに書き込んだ URL を入力すると、動的リソースにアクセスできます。

これで、IDEA2021 tomcat10 サーブレットの新しいバージョンの落とし穴に関するこの記事は終わりです。idea2021 tomcat サーブレットの関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • IntelliJ IDEA2021.1 設定完了 (超詳細チュートリアル)
  • 最新のidea2021最新のアクティベーション超詳細なチュートリアル
  • 最新のidea2021登録コードは永久に有効化されます(2100まで有効化)
  • 最新のIDEA2020.2.1、2.2、3以降のクラッキング、アクティベーション失敗、再アクティベーションの問題について
  • IntelliJ IDEA 2020.2.3 永久クラッキングおよびアクティベーション チュートリアル (テスト済み、効果的)
  • IDEA2021.2 のインストール後の設定と再インストールの問題の詳細な説明

<<:  CSS を使用して要素のスクロールバーを非表示にするサンプルコード

>>:  JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

ブログ    

推薦する

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

Nginx の書き換え正規マッチング書き換え方法の例

Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...

親要素に対する CSS 子要素の配置の実装

解決親要素に position:relative を追加します。子要素に position:abso...

Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

Dockerコンテナ内でホストDocker操作を呼び出して実行する

まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...

レスポンシブなアコーディオン効果を実現するための CSS3 の詳細な説明

最近、外国人が CSS3 を使用してアコーディオン効果を実現しているビデオを見たので、自分で学習した...

Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法

1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...

MySQL データベース インデックスの面接の質問 (基本的なプログラマー スキル)

目次導入インデックスの原則1. データページ2. ページディレクトリ3. インデックス原則分析要約す...

キャッシュサーバーを構築するためのMemcached方式

序文多くの Web アプリケーションは、リレーショナル データベース管理システム (RDBMS) に...

CSS における重要なカスケード概念の詳細な説明

最近、プロジェクトの過程で問題に遭遇しました。メニューバーを常に上部に表示し、後続の要素をその下に表...

HTML で点線の境界線を設定する方法

CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...