概要
この javaweb 基礎学習ノートは、Shang Silicon Valley が公開した 2022 年 javaweb チュートリアルのノートまとめをベースにしており、今後新たな内容を追加していきます。個人的な学習経験では、Javaseとデータベースを学習した後、このビデオを見てJavaWebを学習すればほぼ理解できると思いますが、確かにJavaWebの学習内容は比較的広範囲かつ詳細なので、より深く習得したい場合は集約してまとめる必要があります。学習内容を理解して練習すると、現在の習熟度がよりよく反映されます。
ビデオのアドレス: javaweb チュートリアル
サーブレットの紹介
servlet=serve+appletserve
: サーバー
アプレット: アプレットとは、
サーバー側の小さなプログラムを意味します。Web アプリケーションでは、サーブレットは主にリクエストの処理とスケジューリング機能の調整を担当します。Web アプリケーションのコントローラーです。
具体的な実装の詳細:
Web アプリケーション全体において、サーブレットは主にリクエストの処理とスケジューリング機能の調整を担当します。Web アプリケーションではサーブレットを「コントローラー」と呼ぶことができます
サーブレットについて実際に学ぶ
まず、クライアントがサーバーにadd.htmlページをリクエストし、サーバーは対応するページを返してブラウザ上に表示します、表示後、ページ内の送信リクエストをクリックするとサーバーにリクエストが送信されます。サーブレットはリクエストを認識した後、リクエストを処理します。
1: add.html ページを作成します。
次の図は、作成された HTML ページを示しています。form タグはフォームを表します。ユーザーが [追加] をクリックして送信すると、フォーム データがサーバーに送信されます。アクションは送信されるリクエストを指します。サーバー内のサーブレットは、リクエスト名に基づいて処理されるリクエストであるかどうかを判断します。メソッドはリクエストを送信するメソッドを指します。post メソッドで送信されるリクエストはすべてフォーム構造になっています。さまざまな方法の違いについては後で紹介します。
2: HttpServlet クラスを確立するには、
まず httpServlet クラスを作成し、受信リクエストを処理するためにこのクラスを実装する必要があります。このクラスは抽象クラスに属しているため、これを継承するだけで済みます。具体的な実装は次のとおりです。
post メソッドを使用してリクエストを送信しているため、新しく作成した AddServlet クラスの dopost メソッドを書き換えて、対応するデータを処理する必要があります。このメソッドの最初の仮パラメータは、クライアントによって送信されたリクエストです。リクエストはカプセル化されています。操作用のオブジェクトに変換します。指定された name パラメータのデータは、getparameter() メソッドの 1 つを通じて取得できます。
3. マッピング関係を確立します。
ユーザーが action=add を指定してリクエストを送信すると、サーバーは実際にはどのサーブレット クラスがリクエストを処理すべきかわからないため、マッピング関係を追加する必要があります。関係は Web で追加する必要があります。 xml は次のようになります。
上記の論理関係は次のとおりです。
1: ユーザーがリクエストを送信します: action=add
2: URL パターンで /add を検索し、それがマッピングされているサーブレット名を決定します。
3: サーブレット内で同じ名前のサーブレットを検索します。タグ
4: 対応するクラスを検索します。
5: ユーザーが post リクエスト (method=post) を送信すると、tomcat はサーブレット クラスの dopost メソッドを実行します。
4.結果表示
5. 問題点:
追加したデータが英字または数字の場合、コンソールは正しいデータを表示できますが、中国語の文字を追加すると文字化けが表示され、データが正しく追加されません。この場合、エンコード形式を次のとおりにする必要があります。中国語の文字化けを防ぐために設定します。
解決策:
1: ポストモードで、中国語の文字化けを防ぐエンコーディングを設定します。
2: Get モードでは、tomcat8 以降はエンコードの設定は必要ありませんが、以下の場合はエンコードの設定が必要です。
注: エンコーディングを設定する両方のメソッドは、パラメータを取得するすべてのメソッドの前に実行する必要があります。