jsp基本文法のまとめ


一、jspスクリプト要素でjavaコードを呼び出す
1,jsp式の応用
jsp式は、出力に値を直接挿入します.
値を表す
暗黙的オブジェクト、jsp式を使用する場合:
request,session,アプリケーションはすべて暗黙的なオブジェクトです
XMLプログラミング者は、jsp式の代わりに次の構文を使用できます.
Java Expression
2,scriptlet(有効javaコードセグメント)の作成
レスポンスヘッダやステータスの設定、ループ文の設定など、式を単独で使用してはできないタスクを完了できます.
XML形式:
Java Code 1)例:
String bgColor = request.getParameter("bgColor");if ((bgColor == null) || (bgColor.trim().equals(""))) {bgColor = "WHITE";}%>
2)scriptletを使用してjspページの一部の条件を
//ランダム数で出力条件話//html文とjavaコードを混ぜ合わせ、java文を含めて!!if (Math.random() < 0.5) { %>

Have a nice day!

} else { %>

Have a lousy day!

} %>
このような使用方法はコードの読み取りに不利であり、一般的にjavaコードとhtmlコードを少量混合するだけであり、そうでなければ可読性が悪いことがわかる.3、使用宣言
jsp宣言は、servletクラス定義にメソッドまたはフィールドの定義を含めることができます.jspServiceメソッド以外!!! 
次のjspセグメントを例にとると、
1Some Heading2//jsp宣言3 4 private String randomHeading(){5 return("+Math.random()+");6}7%>8 randomHeading()%>
このjspで生成されたservletは、次のセグメントになる可能性があります:(jspがservletに変換された後に宣言される場所--servletクラス定義の中で、_jspServiceメソッドの外にあることに注意してください)
1 public class xxxx implements HttpJspPage{2 3//jsp生成servlet後に宣言された位置4 private String randomHeading(){5 return("+Math.random()+");6}7 8//servletの出力この方法で9 public void_jspService(HttpServletRequest request,10 HttpServletResponse response)11 throws ServletException,IOException{12 response.setContentType("text/html");13 HttpSessionセッション=request.getSession();14 JspWriter out=response.getWriter();15 out.println("Some Heading");16 out.println(randomHeading();//上記の宣言17...18}19...20 }
XML形式:
Field or Method Definition
宣言の例:
1 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2   3   4  JSP Declarations 5   8   9  10  

JSP Declarations

11   private int accessCount = 0; %>//宣言、static 12Accesses to page since server reboot:13++accessCount%>14
顧客が同じservletに対する複数の要求は複数のスレッドしか生成されず、各スレッドは単一のservletのserviceメソッドを呼び出すため、上記はstaticと宣言する必要はなく、共有変数にアクセスするたびに
二、生成されたservletの構造を制御する:jsp page命令jsp命令はjspページから生成されたservletの全体構造に影響する.
jspでは、主にpage,include,taglibの3種類の命令があります.
Pageコマンドはドキュメントのどこにでも配置できます.魚のメッセージは、クラスのインポート、servletスーパークラスのカスタマイズ、コンテンツタイプの設定、およびこのようなトランザクションによってservletの構造を制御します.
includeコマンドは、ドキュメントにファイルを挿入する場所に配置する必要があります.
taglibはカスタムタグラベルを定義し、2冊目の高度な技術で説明します.
この章ではpage命令を見てみましょう.
Page指定では、import、contentType、pageEncoding、session、isELIgnored(JSP 2.0 only)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language、extendsなどの属性を定義できます.
1,importプロパティ
jspページをservletが入力すべきパッケージに変換することを指定します()
importはpageのプロパティで同じドキュメントに複数回表示できる唯一のプロパティです.
2,contentType属性とpageEncoding属性
contentTypeプロパティcontent-Typeレスポンスヘッダを設定し、クライアントプログラムに送信されたドキュメントのMIMEタイプを表示します.
例:
同様に、以下の方法でMIMEタイプを設定することもできます.
両者には違いがあり、前者はjsp構文にのみ使用され、後者は明確なjavaコードに使用される.また後者は条件付きで実行できるがpage命令はできない(response.setContentTypeはjava文として条件に入れ、条件に応じてどのようなmimeタイプを設定するかを決定できる)
pageEncodingプロパティ設定文字セット;
3,session属性
ページがHTTPセッションに参加するかどうかを制御します.
     
高トラフィックWebサイトでは、sessionプロパティを使用すると、サーバメモリを大幅に節約できます.
4,isELIgnoredプロパティ
jsp 2を無視するかどうか.0式言語(jsp 2.0は間接式言語を導入し、後述する)
5,bufferおよびautoFlushプロパティ
bufferプロパティは、out変数で使用されるバッファサイズを指定します.
aotoFlushプロパティは、バッファが満たされた後、バッファを自動的に空にするか(デフォルト)、バッファがオーバーフローした後に例外を放出するかを制御します.
   
6,infoプロパティ
getServiceletInfoメソッドで再servletで取得できる文字列を定義します.
7,errorPageプロパティとisErrorPageプロパティ
ErrorPageプロパティは、現在のページから放出されたがキャプチャされていない例外を処理するjspページを指定します.
指定されたページは、Exception変数から放出された例外にアクセスできます.
isErrorPageは、現在のページが他のjspページのエラーページとして使用できるかどうかを示します:(デフォルトでは使用できません)
8,isThreadSafeプロパティ
一般的には使わず、特定のコードセグメントを明示的に同期すればよい.
9,extendsプロパティ
jspページで生成されるservletのスーパークラスを指定します.
使用の保持
10,languageプロパティ
ページで使用するスクリプト言語の指定
現在javaはデフォルトで唯一の選択です
11,命令対応XML構文
例:
のXML等価形式:
三、jspページにファイルとappletを含める
jspでは、主に3つの機能で外部コンテンツをjspドキュメントに含めることができます.
jsp:includeアクション:リクエスト中に他のページの出力が含まれ、サブページの実際のコードではなく、サブページの出力が含まれます.
include命令.ホームページ面をservletに変換する前に、jspコードを挿入します.
jsp:plugin動作.Javaプラグインのappletをjspページに挿入します.
1,要求期間にページを含む:jsp:includeアクション
1)同じナビゲーションバー、連絡情報、脚注を持つ一連のページがあると仮定し、通常の解決策は、ページリクエスト時に共通ブロックを挿入するサーバ側のメカニズムを使用することです.
jsp:includeアクションに含まれるページのパスをpageプロパティで指定します.
jsp:include動作は前述のXML構文形式のみであり,対応するjsp構文はない.
2)flush属性
jsp:includeアクションには、ページを含める前にホームページの出力ストリームを空にするかどうかを指定するサブプロパティがあります(デフォルトはfalse).
3)jsp:include動作の例
たとえば、以前に作成したシステムの左側のナビゲーションディレクトリは、各ページに表示され、二次ページを書くことができます.
4)jsp:param要素:要求パラメータが含まれているページと最初に要求されたページを増やして同じ要求オブジェクトを使用し、表示したい要求パラメータがホームページと異なる場合は、元のホームページのパラメータを追加または置換し、jsp:includeアクションでこの要素を使用できます.
//サブページに新しい要素を追加または置換
このように、元のページに背景色がなければ、二次ページに追加することができ、ホームページとは異なる結果を得ることができます.
2,ページジャンプ中にファイルを含む:includeコマンド
XML形式:
区別部分のスクリーンショット:
includeコマンドによるメンテナンスの問題--ホームページに影響し、含まれるファイルにホームページに影響するjspコードを含めることができます.
次の例では、includeの代わりにincludeコマンドを使用します.
アクセスカウントと現在のページへの最近のアクセスに関する情報を含むjspページがあると仮定します.再度、いくつかのホームフェースでこのタイプの脚注を使用する必要があります.この脚注ページを使用するホームフェースごとに独立したアクセスカウントを維持することを望んでいます.脚注のjspが単独のservletになるのではなく、ホームフェースの生成servletの一部になることを望んでいます.そのためincludeコマンドが必要です.
1//脚注jsp 2@page import=“java.util.Date”%>3 The following become fields in each servlet that 4 results from a JSP page that includes this file.--%>5   6 private int accessCount = 0; 7 private Date accessDate = new Date(); 8 private String accessHost = "No previous access"; 9 %>10

11


12 This page © 200313 my-company.com.14 This page has been accessed ++accessCount %>15 times since server reboot. It was most recently accessed from16 accessHost %> at accessDate %>.17 accessHost = request.getRemoteHost(); %>18 accessDate = new Date(); %>
ホームページ:
1 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 3 4 Some Random Page 5 6 8 10 13 14 15 16
17 Some Random Page
18

19 Information about our products and services.20

21 Blah, blah, blah.22

23 Yadda, yadda, yadda.24@include file="/WEB-INF/ClontactSection.jsp"%>//include指令25
次の脚注は、ホームフェースservletの一部であり、独立して維持されています(別のホームフェースでもこの脚注を参照している場合は、互いに影響しません)3、javaプラグインを使用したappletが含まれています