【JavaWeb】JSPの概要

目次

1.JSPとは

2. JSPを学ぶ理由

1. JSPの動作原理

1.1 JSPページの作成

1.2 JSPの実行

1.3 JSPの動作原理の分析

1.4 JSP スクリプト要素

3. JSP開発モードのMVCモード

1. 動的Webページ開発モデルの開発

4. 開発中のパスの問題

1. パスの問題はいつ発生しますか

2. パスの分類

5. ケース要件の導入

1. ケース要件の説明

2. ケースプロセスの分析

3. このケースでの MVC の適用方法

4. ケースの準備 - データベースの作成

1.テーブル作成ステートメント

5. ケースの準備 - プロジェクト環境の構築

1. Web プロジェクトを作成する

2. 関連するパッケージ構造を作成します。

 6. ケースの準備 - 関連リソースの紹介

1. 関連する jar パッケージを導入します。

2. C3P0設定ファイルをインポートする

3. JDBCが開発したツールの導入

7. ケースの準備 - ランディング ページの作成

1. ログインページの実装

2. ログインページの効果

8. ケースコード - ログインコードの実装

1. ログインコード実装プロセス

 2. ログインコードの実装

 3. ログインしたサーブレットのビジネスコード

4. プロセスデータ部品コード

 5. ログインコードエラーメッセージエコー

 6. ログインに成功した人の数を記録する

6. ページジャンプを完了するための転送とリダイレクトを要求します。

1. 転送リクエスト

1.1 リクエスト転送の書き方

 1.2 リクエスト転送のコード実装

1.3 リクエスト転送の効果

2. リダイレクト

2.1 リダイレクトの書き方

 2.2 リダイレクトのコード実装

 2.3 リダイレクトの影響

3. リクエストの転送とリダイレクトの違い

1. リクエストの転送とリダイレクトの原則

2. リクエスト転送とリダイレクトの違いの概要

3. このコードは、リクエストの転送とリダイレクトの違いを示しています。

要約する


1.JSPとは

JSP: Java Server Pages (Java サーバーサイド ページ) は、実際には HTML に Java コードを埋め込みます。

2. JSPを学ぶ理由

SUN 社は、動的 Web ページ開発技術であるサーブレットを提供しています。サーブレット自体にはいくつかの欠点があり、SUN 社はこれらの問題を発見し、新しい動的 Web ページ開発テクノロジ JSP を導入しました。

サーブレットの欠点:

  1. サーブレットを構成する必要があるため、保守が不便です
  2. サーブレットが HTML ページのコンテンツを Web ページに出力するのは困難です

1. JSPの動作原理

1.1 JSPページの作成

1.2 JSPの実行

JSP は、実行する前にサーバーに公開する必要があります。

  1. プロジェクトを Tomcat に公開する
  2. JSPページにアクセスしてください

1.3 JSPの動作原理の分析

JSP ファイルは Java ファイルに変換され、Java ファイルがコンパイルされてクラス ファイルが生成され、クラス ファイルが実行されます。

1.4 JSP スクリプト要素

1.4.1 JSP スクリプト要素とは:
 

JSP = HTML + Javaコード+ JSP 自体

JSPの script 要素は、JSPにJavaコードを埋め込むためのものです

1.4.2 JSPスクリプト要素の分類

1 つ目: 宣言ラベル

  • 文法:
  • ①<%! 変数またはメソッド宣言 %>
  • ②このスクリプトに書かれたコードはサーブレット内部でメンバ変数やメンバメソッドに変換されます。
  • 使用法:

 2 番目: 式ラベル

文法:

①<%= 式 %>

②このスクリプトに書かれたコードはメソッド内で out.print(); の内容に変換されます。

使用法:

 3つ目:プログラムコードラベル

文法:

①<%プログラムコード%>

②このスクリプトに記述されたコードは、メソッド内のローカル変数、またはメソッド内のコードフラグメントに変換されます。

使用法:

3. JSP開発モードのMVCモード

1. 動的Webページ開発モデルの開発

4. 開発中のパスの問題

1. パスの問題はいつ発生しますか

いくつかのページが用意されており、そのページにはリンクやフォームが設​​けられており、リンクやフォームをクリックした際にはサーブレットに送信して送信する必要があります。ページからサーブレットにリクエストを送るアドレス(パス)はどのように書けばよいのでしょうか。

2. パスの分類

2.1 相対パス:

相対パスの書き方:相対パスは/では始まりません。

相対パスの使用:

①ルートパス配下のページにあるサーブレットにアクセスします。

demo2.jspのアクセスパス:

http://localhost:8080/web02/demo2.jsp

ServletDemo1 のアクセス パス:

http://localhost:8080/web02/ServletDemo1

 ② 特定のディレクトリ内のページからサーブレットにアクセス

demo2.jspのアクセスパス:

http://localhost:8080/web02/demo2/demo2.jsp

ServletDemo1 のアクセス パス:

http://localhost:8080/web02/ServletDemo1

2.2 絶対パス (通常):

絶対パスの記述方法:パスは通常/で始まります

絶対パスを使用すると、現在のファイルと要求されるファイルの相対位置を気にする必要がなくなります。

知らせ:

  • ①絶対パスはサーバー側パスとクライアント側パスに分かれます
  • ②クライアントパスに  はプロジェクト名が必要です
  • ③サーバー側のパスには プロジェクト名は必要ありません

5. ケース要件の導入

1. ケース要件の説明

ユーザーログイン用のログインページを提供します (ユーザー名とパスワードをデータベースに照会する必要があります)。ログインに失敗した場合は、ログイン ページに戻る必要があります (プロンプト メッセージが表示されます)。ログインに成功するとページがジャンプし、成功ページにログインに成功した総数が表示されます。

2. ケースプロセスの分析

3. このケースでの MVC の適用方法

ここで、mvc モードでは、元のサーブレットがコントローラーになり、カプセル化と処理がモジュール層になり、ページ表示がビュー層になることを説明します。コントローラー層はスケジューリングを行いますが、実際の操作は引き続きモジュール層で実行されます。

4. ケースの準備 - データベースの作成

1.テーブル作成ステートメント

create database web02_login;
use web02_login;
create table user(
	uid int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	nickname varchar(20)
);

insert into user values (null,'zs','123','张三');
insert into user values (null,'ls','123','李四');
insert into user values (null,'ww','123','王五');

5. ケースの準備 - プロジェクト環境の構築

1. Web プロジェクトを作成する

プロジェクト名を入力し、バージョン 2.5 を選択します。

 すぐ次

 ここに適切なディレクトリを作成します

次に、Web プロジェクトのコンパイル パスを変更する必要があります。

WEB-INFディレクトリの下に、classesフォルダーを作成します。

次に、プロジェクトを右クリックし、「ビルド パス ---> ビルド パスの構成」を選択します。

コンパイルされた出力パスをプロジェクト名/WebContent/WEB-INF/classesに変更します。

[適用して閉じる] をクリックすると、作成したクラス フォルダーが消えることがわかり、ビルド フォルダーを削除できます。ここまでで、標準的な動的 Web プロジェクトが作成されました。

 

2. 関連するパッケージ構造を作成します。

コントローラー パッケージには、元のサーブレットに対応する制御層コードが格納されます。

モデル パッケージは主に、データを処理する JavaBean の場所を保存するために使用されます。

ドメイン パッケージ エンティティの意味、通常のデータカプセル化された Javabean クラスはここに配置されます

utils パッケージ内のデータベースに接続するためのツール クラスはここに配置されます。

 6. ケースの準備 - 関連リソースの紹介

1. 関連する jar パッケージを導入します。

  1. MySQLデータベースドライバーパッケージ
  2. C3P0 接続プールに必要な jar パッケージ
  3. DBUtils によって開発された jar パッケージ

2. C3P0設定ファイルをインポートする

設定ファイルをプロジェクトのsrc配下に置きます。

3. JDBCが開発したツールの導入

7. ケースの準備 - ランディング ページの作成

1. ログインページの実装

2. ログインページの効果

8. ケースコード - ログインコードの実装

1. ログインコード実装プロセス

ログイン ページ (login.jsp)--->>ログイン サーブレット (LoginServlet)。このサーブレットでは、データを受信し、このデータを JavaBean にカプセル化し、別の JavaBean を呼び出してデータを処理する必要があります。処理結果に応じたページへジャンプします。

 2. ログインコードの実装

ステップ 1: コントローラー パッケージの下に LoginServlet を作成する

ステップ 2: ドメインの下に User クラスを作成する

ステップ 3: モデル パッケージの下に UserModel クラスを作成する

このクラスにログインメソッドを提供します

ステップ4:処理結果に応じたページへジャンプ

 3. ログインしたサーブレットのビジネスコード

4. プロセスデータ部品コード

 5. ログインコードエラーメッセージエコー

 エラーメッセージ表示効果:

 6. ログインに成功した人の数を記録する

  1. 図面解析

1.1 初期化操作を完了する

サーバーの起動時に値をゼロに初期化し、この値を ServletContext ドメインに保存します。

起動時にロードされるようにこのサーブレットを構成します。

 1.2 ログインに成功した人数を記録する

1.3 ログイン成功ページの総人数を表示する

6. ページジャンプを完了するための転送とリダイレクトを要求します。

1. 転送リクエスト

1.1 リクエスト転送の書き方

ServletRequest オブジェクトを通じて RequestDispatcher オブジェクトを取得します。

次に、RequestDispatcher のメソッドに従ってリクエストを転送します。

 1.2 リクエスト転送のコード実装

1.3 リクエスト転送の効果

注: ここで、Eclipse を使用して動的 Web プロジェクトをビルドするときは、指示に従って直接ビルドしますが、ビルドが完了した後、転送された ServletDemo1.java コードを記述した後、対応するアドレスをブラウザでは、対応する JSP ページに転送されず、ServletDemo1.java ファイルが見つからないというエラー レポートが表示されます。Baidu 以降しかわかりません。作成した WebApp フォルダーの下に Classes フォルダーを作成する必要があります。この場所に変更された場所に Java コードをコンパイルします。この場所は以前に指定されていなかったため、Java コードがコンパイルされず、クラスが見つかりませんでした。

2. リダイレクト

2.1 リダイレクトの書き方

リダイレクトは、HttpServletResponse オブジェクトの次のメソッドを通じて実現されます。

 2.2 リダイレクトのコード実装

 2.3 リダイレクトの影響

3. リクエストの転送とリダイレクトの違い

1. リクエストの転送とリダイレクトの原則

転送とは、クライアントがリクエストを送信した後、サーブレットを見つけ、サーブレットがそのリクエストを JSP に転送し、JSP が応答してクライアントにリクエストを返すことを意味します。

リダイレクトとは、クライアントがリクエストを送信した後、サーブレットを見つけ、サーブレットがリダイレクトされた URL をクライアントに返し、その後クライアントが URL をリクエストし、JSP ページを見つけて、それに応じてクライアントに返すことを意味します。

2. リクエスト転送とリダイレクトの違いの概要

  1. リクエストの転送は 1 つのリクエストと 1 つのレスポンスですが、リダイレクトは 2 つのリクエストと 2 つのレスポンスです。
  2. リクエスト転送アドレス バーは変更されませんが、リダイレクト アドレス バーは変更されます。
  3. リクエスト転送パスにはプロジェクト名が含まれておらず、リダイレクトにはプロジェクト名を含むパスが必要です。
  4. リクエストの転送はこの Web サイト内でのみ行うことができ、リダイレクトは任意の Web サイトに転送できます。

 3. このコードは、リクエストの転送とリダイレクトの違いを示しています。

jspページ:

知らせ:

値転送リクエストを使用する必要がある場合は、リクエスト転送を通じてそれを完了する必要があります。ページから別の Web サイトにジャンプする必要がある場合は、リダイレクトを使用する必要があります。

おすすめ

転載: blog.csdn.net/wang_qiu_hao/article/details/126514708