アプリケーション開発とフレームワーク (JavaWeb 学習パート 3)

第1章 ELとJSTL(可)

JSP Expression Language (EL) を使用すると、JavaBeans コンポーネントに格納されているアプリケーション データに簡単にアクセスできます。JSP EL を使用すると、算術式および論理式を作成できます。JSP EL 式では、整数、浮動小数点数、文字列、組み込み定数 true および false を使用して、ブール値および null を表すことができます。

たとえば、JSP タグで属性値を指定する場合、通常は文字列だけを使用します。

例: <jsp:setProperty name = \"box\" property = \"perimeter\" value = \"100\"/>   

JSP EL では、これらの属性値のいずれかに対して式を指定できます。JSP ELの簡単な構文は次のとおりです。

${expr} ここで、 expr は式自体を指定します。JSP EL で最も一般的に使用される演算子は、「.」と「[]」です。これら 2 つの演算子を使用すると、Java Beans および組み込み JSP オブジェクトのさまざまなプロパティにアクセスできます。たとえば、上記の構文 `<jsp:setProperty>` タグは、式の中で <jsp:setProperty name = \"box\" property = \"perimeter\" value = \"${2*box.width+2*box.height}\"/> のように記述することができます。JSP コンパイラーはプロパティ内の ${} 形式を認識すると、式を評価して式の値を置き換えるコードを生成します。

JSTL は JSP の標準タグ ライブラリです。EL は実際には、データに簡単にアクセスできるように JSTL によって定義された言語です。(EL は JSTL にサービスを提供します)

なぜELとJSTLを導入するのか?

それは、JSP ページを設計するときに、Java ソース コードが多すぎるとプロジェクト開発に役立たないからです。また、サーブレットまたは JavaBean を通じて削除できるのは、Java コードの一部のみです。そこで登場したのがJSTL標準タグライブラリです。
 

ELの基本的な文法構造:

${ 式 }

基本的な演算子: . および [ ]  

ここでは、EL データ アクセスのみを紹介します。

1. 範囲:

${sessionScope.sessionMsg} //さらに使用  

${requestScope.requestMsg}       

${applicationScope.applicationMsg}

${pageScope.pageMsg}

最初のものは次と同等です。

session.setAttribute("sessionMsg"、コレクションまたは文字列);

したがって、最初のものを使用することは、データを取り出すことと同じになります。   // Java コードの量を節約できる

2. JavaBeanにアクセスする

基本構文形式: ${bena.property}

使い方は前回の紹介と似ています。

例: ${student.stuno} //student オブジェクトの Student クラスの属性 stuno を取得します。

${sessionScope.student.stuno} //ショッピング カートに保存されます。名前は Student、属性はショッピング カート名に保存されている Student オブジェクトの stuno 属性値です。

(EL の使用法についてはあまり紹介しません。また、EL が使用されることは比較的まれです。仕事で使用するだけであれば、基本的に Java を少し知っていれば十分であり、EL の使用法を見る必要はありません。ここでは少し理解するだけにしておきます。)

第 2 章 AJAX の概要

AJAX (Asynchronous JavaScript and XML technology) 。JavaScript 技術を通じて以下の技術が組み込まれています(含む!)

AJAX は、Asynchronous JavaScript and XML の頭字語です。これは、JavaScript、DOM、XML、HTML/XHTML、CSS、XMLHttpRequest などの相互に関連するテクノロジーのセットです。AJAX を使用すると、Web ページを再ロードせずにデータを非同期に送受信できるため、ユーザー エクスペリエンスとパフォーマンスが向上します。

AJAX を使用すると、バックグラウンドで Web サーバーとデータを交換することにより、Web ページを非同期に更新できます。これは、ページ全体を再読み込みしなくても、Web ページの一部を更新できることを意味します。
 

これには次の 5 つの部分が含まれています。

1. 非同期データ取得技術:XMLHttpRequest  

2. 標準ベースのプレゼンテーション技術: HTML/XHTML

3. 動的表示・インタラクション技術:DOM(Document Object Model Document Object Model)

4. データ交換および操作テクノロジ: XML および XSLT を使用します。

5. JavaScript: 最初の 4 つの部分を統合します。

AJAX にはいくつかの欠点があります。

1. ブラウザには制限があり、対応していないブラウザではご利用できない場合があります

2. AJAX ではページが更新されず、ブラウザの戻るボタンも無効になります。したがって、クライアントは以前の操作にロールバックできません。

(同様に、AJAX の章も一時的にスキップされますが、この知識ポイントは学習する価値があるため、後で学習することもできます。非同期モードの方がよく使用されます。) JavaWeb 学習の最初のステップに戻って、 JavaScriptの知識ポイントを復習することをお勧めします。ログインおよび登録モジュールについて学習します。

第 3 章: 検証コードとファイルのアップロードとダウンロード

(Web サイトの一般的なモジュールの種類)

検証コードの意味は、ブルートフォースクラッキングを防ぐことです。

ここでコピーする方法を学びましょう。3 つのタスクが与えられます。

1. まずはJavaScriptのログインと登録(自律補完)を学びます

アカウント番号とパスワードを空の JavaScript 検証にすることはできないことがわかりますが、アカウント番号とパスワードが正しいかどうかを検証したい場合は、AJAX を使用して JSP ページを作成する必要があります。

Dao クラスでアカウント番号とパスワードを取得しようとしましたが (いいえ、リクエストはありません。実際のデータを取得するにはサーブレットに移動します。)、セッション ショッピング カートを使用する方法はすべて失敗しました。いくつか問題があります。

ショッピングカートを使用する場合は判定文を追加します JavaScript判定は実現できそうですが、セッションの前提としてショッピングカートを空にすることはできないため、判定条件を追加しても判定を実現するために一度ログインする必要があります。初回ログインの場合は検証状況を満たしておりません。

2. インターネットにアクセスして、自分で使用するために確認コードのコードをコピーします。

ソースURL: OSCHINA - 中国のオープンソース技術交流コミュニティ

たとえば、コピーした JSP 検証コード コードは利用可能ですが、ここで少し問題が発生しました。

ただし、組み合わせて使用​​すると、検証コード モジュールがログインと登録に投入されるときに、同期の問題が発生します。たとえば、セッションを使用して検証コードを検証コード JSP ページに保存します。ただし、login.jsp では、画像に表示される検証コードは、保存されている検証コードとは異なります。

ここでは、保存されている検証コードが表示されている検証コードと一致するように変更する方法を考える必要があります。

補足:認証コードの使い方。

(1) JSP ページでは、入力 <input type = "text"> がテキスト型であり、さらに追加の出力が必要です <img src = "code.jsp" onclick = "refresh()" name = "code2">

(2) JavaScriptを使用する場合、ここではrefresh()メソッドを使用します。ページをクリックしてページを更新する方法。

fresh(){login.form.code2="code.jsp?id=" + Math.random() }  

数学には特に注意してください。

予期せぬ状況: 画像をクリックしても更新されません。そして、コードはエラーを報告しません。デバッグを使用して実行することをお勧めします。画像をクリックすると、間違っている箇所が指摘されます。(今回間違えた点は、loginformをlonginformと書いていることです。ただし、JavaScriptページ内にあるため、エラー自体は報告されません。デバッグのみ可能です)

(3) JavaScriptでセッション値を取得する方法。jsp 式を追加できます。

例: var code =loginform.code.value

           var code2 = '<% =session.getParamter("code2") %>'  // 一重引用符に注意してください  

(4) 3 番目の手順で取得できますが、最後の問題は、セッションに保存されている認証コードが画面に表示されている認証コードと異なることです。セッションでは、最後の更新の前に確認コード番号のみが保存されます。(思考的な質問として保留されています)

3. インターネットにアクセスして、アップロードおよびダウンロードしたコードをコピーして、自分で使用します。

(宿題として残しました)

第4章:MVCとStruts2の基本原理(難しい点・難しい点)

最初に学ぶのは、MVC の考え方です。これはデザインパターンです。(デザイン パターンに関する本、推奨: Big Talk Design Patterns を学習することをお勧めします。)

MVC の正式名称: Model View Controller それぞれ 3 つのモジュールに対応します。

 Web 開発における MVC の考え方の中核となる概念は次のとおりです。


(1) M (モデル): アプリケーションのデータ構造とビジネスロジックをカプセル化し、アプリケーションの状態を一元的に反映し、データの状態が変化した場合にビューに反映できます。JavaBeanはこの役割に非常に適しています。


(2) V(View): モデルの状態が変化したときに反映される、モデルの外部表現です。JSP はこの役割に最適です。


(3) C (コントローラー): ユーザー入力に応答し、モデルとビューをリンクし、モデルにデータを書き込み、ビューを呼び出します。Java サーブレットはこの役割に最適です。

概要: JavaBean は、データベースの内容 (Bean および dao クラスを含む) をカプセル化します。サーブレットは、JSP から送信されたデータに応答し、JavaBean から取得したデータを JSP に渡すことができます。JSP はページを実装します。

 もう一度紹介します:Struts2。MVC 設計パターンは使いやすいですが、プログラマーによってスタイルは異なります。標準化は特に重要です。Struts フレームワークは標準化された構造です。

(ちなみに、この本の中でこのアーキテクチャには何のメリットもありません。)

ただし、MVC のこの設計パターンには留意する必要があります。、このアイデアは将来的に使用されます。

応用例:

Java と Bean の包括的な概要レビューでは、この考え方が使用されます。行って見ることができます。

(メッセージ 27 件) Java と Bean (VO)、dao、サーブレット、jsp の包括的な概要レビュー_one day321 のブログ - CSDN ブログ

第 4 章: Web サイトのセキュリティ

1 つ目のタイプ: URL 操作攻撃

特定のリソースが保存されている場所を推測することによる、保護されたリソースへの不正なアクセス。

2つ目:Webクロスサイトスクリプティング攻撃(略称:XSS)

3 番目のタイプ: SQL インジェクション攻撃

4 番目: パスワードの保護と検証

MD5 またはその他の暗号化アルゴリズムを使用する必要があります。Java プログラムを単独で作成します。このように、データベースに保存されるのは暗号文です。

プロジェクトトレーニング:

最初のプロジェクト: シンプルなログインと登録、ログイン後の学生情報のあいまいクエリを実現します。(考え: 確認コードによる検証を追加し、アカウント番号とパスワードが空の場合は警告を表示します)

第二弾プロジェクト:投票システム

デザインパターンによる分析。ここでは MVC モデル設計手法を使用します。

(1) 思考分析:

1. データ モデル: (JavaBeans: データ カプセル化 Bean およびデータ接続 dao クラスを含む)

                 パッケージBean:

                              投票モデル:保管番号、名前、投票数

                  データ接続:

                            データベースに接続し、データベースの内容を投票モデルに保存します。

2. データ処理:(サーブレット)

                  投票処理:JSPの投票情報を受け取り、データベースの内容に1を加算し、結果をJSPに返す

3. 関数分析:(Jsp)

                  投票機能:投票を行います。

                   //この本の詳細については、こちらをご覧ください。1 つのページは投票インターフェイスの表示に使用され、もう 1 つのページはユーザーからの投票を受け取るために使用されます。対応する投票数は 1 ずつ増加し、作業が完了すると最初のページに戻ります。

(必要に応じて絵を描いて構造を設計します。書籍P262「構造設計」参照)

(2) UML クラス図の設計:

投票モデル (Vote.java): no:String 、 name:String 、 ticket:int

接続データ(Votedao.java): votedao(Vote): ArrayList

投票処理(VoteServlet):データを直接取得してセッションに保存

投票ページ (vote.JSP): 独自に設計

コードを手動で書き始めることができます。

(3) コード分析: (このステップは追加の追加であり、主に独自のコードを作成するプロセスの不備を保存するために使用されます)

おすすめ

転載: blog.csdn.net/qq_55928086/article/details/131270562