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

推薦する

Vueライフサイクルカメラの8つのフック関数

目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...

MySQL マルチテーブル結合クエリ例の説明

実際のプロジェクトでは、複数のテーブル間に関係が存在します。 1 つのテーブル内のすべてのデータを取...

動的な背景グラデーション効果を実現するCSS3

CSS3 を学ぶということは、新しい機能と基本的な理論に慣れることを意味します。この記事では、ケー...

格納可能なセカンダリメニューを実装するための JavaScript

JavaScriptで格納可能なセカンダリメニューを実装するための具体的なコードは参考までに。具体...

uni-app を使用して上部のナビゲーション バーにボタンと検索ボックスを表示する方法

最近、会社でアプリを開発する準備をしており、最終的に開発には uni-app フレームワークを使用す...

VMware Workstation Pro 16 ライセンス キーと使用方法のチュートリアル

VMware Workstation は、開発、テスト、デモンストレーション、展開のために仮想マシン...

MySQL 5.5 のインストールと設定のグラフィックチュートリアル

MySQL 5.5 のインストールと構成のチュートリアル ノートを整理し、全員と共有します。 1.公...

Nginx 構成 PC サイトとモバイル サイトの分離によるリダイレクトの実現

PCサイトとモバイルサイトの分離設定にはnginxを使います。私のPCサイトとモバイルサイトは、SE...

Tomcat のプレースホルダーによるポート設定方法 (パラメータ指定方式)

仕事で必要になったため、インターネットで多くの情報を見つけましたが、それらはすべてコピーアンドペース...

JavaScript で大きなファイルの並列ダウンロードを実装する方法

目次1. HTTP範囲リクエスト1.1 範囲構文2. 大きなファイルをダウンロードする方法2.1 補...

JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

まず、いくつかの概念を明確にします。 JDBC: Javaデータベース接続、Oricalによって規定...

Hタグの定義と注意事項について簡単に説明します

結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...

MySQL の悲観的ロックと楽観的ロックの使用例

悲観的ロック悲観的ロックは、データを悲観的であるとみなします。データをクエリするときに、ロックを追加...

JavaScript 改ざん防止オブジェクトの使用例

目次JavaScript 改ざん防止オブジェクト1. 拡張不可能なオブジェクト2. 封印された物体3...

Unicode署名BOMによる事故原因の分析

ここでは、通常ヘッダーとフッターに対して行われるインクルード ファイルを使用している可能性があります...