28-jsp


一、Jsp
1.1概念
jsp:java server pages,javaサーバページ
jspは特殊なページで、htmlにjavaコードのページを埋め込むことができます.jsp末尾
Javaコードの書き方を簡略化
jspの本質はサーブレットであり、jspページに初めてアクセスすると、このjspのjavaコードがコンパイルされ、実行されます.
jspが翻訳されたjavaコードはHttpJspBaseを継承し、HttpJspBaseはHttpServeretを継承する
1.2 jspスクリプト
jspでjavaコードのフォーマットを定義する
  • :   java  , service   
    
  • :   java   jsp    servlet     
    
  • :   java    service   print()      ,“=”       ,         
    

  • 1.3 jspの組み込みオブジェクト
    組み込みオブジェクト:jspページで手動で作成および取得する必要がなく、直接使用できるオブジェクト
    jspには計9つの内蔵オブジェクトがあります
  • *request -> HttpServletRequest
  • *response -> HttpServletResponse
  • *session -> HttpSession
  • *application -> ServletContext
  • out->JspWriter注:
  • out.write():サービス側が出力コンテンツに応答する前に、出力コンテンツはoutバッファに
  • 格納.
  • response.getWriter().write():サービス側が出力コンテンツに応答する前に、出力コンテンツはresponseバッファに
  • 格納.
  • responseバッファはoutバッファよりも優先的にアクセスされるのでresponseを使用する.getWriter().write()出力の内容は必ずout.write()出力前
  • config -> ServletConfig
  • page->現在のページのオブジェクトthis
  • *pageContext -> pageContext
  • 現在のページでデータ(ドメインオブジェクト)を共有する
  • 他の8つの内蔵オブジェクト
  • を取得する.
  • *exception -> Throwable

  • 1.4 jspの命令
    書式:
    
    

    1.4.1 page
    現在のjspページを構成するには、ページの最初の行に書く必要があります.
    
    
  • language:現在のjspに埋め込まれている言語を示す
  • contentType:現在のjspがクライアントに応答するときの符号化
  • を構成する.
  • pageEncoding:現在のドキュメントに保存されている符号化フォーマット
  • import:パイロット
  • errorPage:現在のページに異常が発生した後、特定のページにジャンプし、errorPageによって構成され、仮想パス
  • を書く必要はありません.
  • isErrorPage:例外が発生した後にジャンプするページを設定
  • true:現在のページではexception内蔵オブジェクト
  • を使用できます.
  • false:デフォルト値、現在のページではexception内蔵オブジェクト
  • は使用できません.
  • isELIgnored:現在のページがEL式を無視するかどうかを設定
  • true:EL式を無視することを示す、EL式は文字列のままデータ
  • になる.
  • false:デフォルト、EL式
  • を無視しない

    1.4.2 include
    指定した他のページを現在のページに埋め込む
    
    

    1.4.3 taglib
    ラベルライブラリのインポートに特化
    
    

    1.5コメント
    java:
  • //
  • /* */
  • /** */

  • css:
  • /* */

  • js:
  • //
  • /* */

  • html:

  • jsp:


  • 二、EL
    1.1概念
    コンセプト:Expression Languageエクスプレッション言語
    役割:jspにおけるjavaコードの作成を簡略化し、データの取得に特化する
    構文:${式}
    注意:
  • jspデフォルトではel式
  • がサポートされています.
  • el式を無視する
  • ページ内のすべてのel式を無視:jspのpage命令の下でisELIgnored=“true”
  • を構成する
  • 指定されたel
    \${     }
    
  • は無視されます.

    1.2演算子
  • 演算子:+、-、*、/(div)、%(mod)
  • 比較演算子:>、=、<=、=、!=
  • 論理演算子:&&(and)、|(or)!(not)
  • 空輸演算子:empty、役割:文字列、集合、配列オブジェクトがnullであるかどうか、または長さが0
  • であるかどうかを判断する.
    1.3ドメインオブジェクトのデータの取得
    構文:${ドメインオブジェクトの名前.キーの名前}
    ドメインオブジェクトの名前:
  • pageScope -> pageContext
  • requestScope -> request
  • sessionScope -> session
  • applicationScope -> application

  • 注意:
  • 指定されたドメインにこのキーがない場合、
  • は何も表示されません.
  • は${キーの名前}に簡略化できます.この場合、pageScopeは、ドメインの範囲サイズに基づいて、小さい順にデータをクエリーします.
    1.4オブジェクトの取得
  • カスタムオブジェクトの値構文:${ドメインオブジェクトの名前.キーの名前.属性名}本質:オブジェクトを呼び出すgetterメソッド、たとえば${user.name}user:キーの名前、name:getName->Name->name
  • Listコレクションの要素構文を取得する:${ドメインオブジェクトの名前.キーの名前[インデックス]}
  • .
  • Mapコレクションの要素構文を取得します.
  • ${ドメインオブジェクトの名前.キーの名前.Mapのキー}
  • ${ドメインオブジェクトの名前.キーの名前["Map内のキー"]}

  • 1.5 elを使用した仮想パスの動的取得
    ${ pageContext.request.contextPath }
    

    三、JSTL
    3.1概念
    コンセプト:jsp standard tag library,jsp標準ラベルライブラリ
    Apache組織が提供するオープンソース苗費のjspラベルライブラリです
    役割:jspページのjavaコードを簡略化する
    3.2使用手順
  • jstl関連jarパッケージ、javaxをインポートする.servlet.jsp.jstl.jarとjstl-impl.jar
  • タグライブラリの導入:jspでtaglib命令
    
    
  • を使用する.
  • 使用ラベル
  • 3.3共通ラベル
    3.3.1 if
  • プロパティ:
  • test:受信条件式
  • 条件式の結果がtrueである場合、ifラベル体コンテンツのコード
  • が実行される.
  • 条件式の結果がfalseであればifラベル体コンテンツのコード
  • は実行されない.
    注意:c:ifラベルはelseラベルに対応していません.対立するelseが必要な場合は、c:if を再定義する必要があります.
  • コード
    
    	ログイン
    	  
    
    
    	ようこそ
    	  
    
    
  • 3.3.2 choose
    c:chooseはjavaのswitchに相当します
    c:chooseラベルのサブラベルc:when、javaのcaseに相当
    c:whenの必須属性:test
    c:chooseラベルのサブラベルc:otherwise、javaのdefaultに相当
    プレゼンテーション:
    
    	A
    	B
    	C
    	D
    	E
    
    

    3.4 forEach
  • javaの通常のforループに相当
  • プロパティ
  • begin:開始値
  • end:終了値
  • var:一時変数
  • step:ステップ長
  • varStatus:ループ状態のオブジェクト
  • count:回数

  • コード
    
    	${t }---${s.count }
  • javaの強化forサイクルに相当
  • プロパティ:
  • items:コンテナオブジェクト
  • var:一時変数
  • varStatus:ループ状態のオブジェクト
  • index:インデックス
  • count:回数

  • コード:
    
    	${t }---${s.index }---${s.count }
    items: var: