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 を最適化してウェブサイトのパフォーマンスを向上させる

推薦する

Windows 10 に TomCat をインストールするチュートリアル図

WindowsにTomCatをインストールするこの記事では、WindowsプラットフォームにTomC...

フェッチネットワークリクエストのカプセル化例の詳細な説明

エクスポートデフォルト({ URL、 メソッド = 'GET'、 データ = nu...

Vue のトランジション効果とアニメーショントランジションの使用例の詳細な説明

目次遷移フック関数カスタム遷移クラス名遷移グループの使用まとめまずは例を見てみましょうコードは次のと...

Zabbixのインストールと展開の詳細な説明

序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...

MySQLは数百万のシミュレーションデータ操作コードを自動的に挿入します

私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...

ドラッグ可能で編集可能なガントチャートの詳細な説明(HighchartsはVueとReactで使用できます)

序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...

CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します

1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...

HTML pre タグ内の自動改行

このとき、overflow:auto;(コードがコンテナの境界を超えたときにスクロールボックスを表示...

MySql 認証に基づく vsftpd 仮想ユーザー

目次1. MySQLのインストール1.2 テーブル、データベース、ユーザーを作成する1.3 リモート...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

ウェブページのテキストデザインは、服を着た賢い女の子のようであるべきだ

<br />「この世に醜い女性はいない、あるのは怠惰な女性だけだ」これは女性の美のバイブ...

JavaScriptの構文とコード構造に関する深い理解

目次概要機能性と読みやすさ空白括弧セミコロンインデント身元大文字と小文字を区別予約キーワード概要すべ...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

MySQL 8.0.21.0 コミュニティ エディションのインストール チュートリアル (詳細な図解)

1. MySQLをダウンロードするMySQL 公式 Web サイトにログインし、MSI インストー...

入力要素 [type="file"] を使用する場合のスタイルのカスタマイズとブラウザの互換性の問題に関する議論

この2日間、Baixing.comの筆記試験問題を解いているときに、このような問題に遭遇しました。H...