Java Webメモ–JSPの構文と関連命令構文原理解析コンパイラ命令動作構文宣言命令

3369 ワード

1、JSPの文法:
1.1、JSPの三つの文法:
1.1.1、コンパイラ指令(DIRECTIVE):
<%@ page import="java.io.*"%>

命令、ページ命令、taglib命令を含む
<%@%>ボリュームに含める
2つの主要な命令page include
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ include file=""%>

1.1.2、スクリプト構文:
1.1.3、動作文法:
<jsp:forward page="">
    <jsp:param name="username" value="arthinking" />
</jsp:forward>

パラメータは別のページのgetParameterメソッドから取得できます.
命令後のすべてのコードは実行されず、別のページに直接ジャンプして実行されます.
は実際にPageContextを呼び出したforwardメソッドである.
<jsp:include page="">
    <jsp:param name="username" value="arthinking" />
</jsp:include>

パラメータは別のページのgetParameterメソッドから取得できます.requestのgetRequestDispatcherとgetRequestDispatcherのforwardメソッドの説明:
サーブレットRequestのsetAttributeのパラメータが保存された転送を要求します.この方法でパラメータを渡すことができます.
req.setAttribute("username", "arthinking");
RequestDispatcher rd = req.getRequestDispatcher("message.jsp");
rd.forward(req, resp);

同じリクエストでgetParameterメソッドを使用してsetAttributeメソッドで設定したパラメータを取得できます.
getRequestDispatcher
public RequestDispatcher getRequestDispatcher(String path)
The default behavior of this method is to return getRequestDispatcher(String path) on the wrapped request object.
Specified by: 
getRequestDispatcher in interface ServletRequest
Parameters: 
path - a String specifying the pathname to the resource. If it is relative, it must be relative against the current servlet.
Returns: 
a RequestDispatcher object that acts as a wrapper for the resource at the specified path, or null if the servlet container cannot return a RequestDispatcher
See Also: 
RequestDispatcher, ServletContext.getRequestDispatcher(java.lang.String)

1.2、注釈:
HTMLコメント:
コメントを非表示:<%---%>クライアントに送信しない
1.3、式:
<%=new java.util.Date() %>

等号の先頭には、セミコロンを末尾に使用しません.
1.4、声明文:
<%! int a = 1; %>

宣言とスクリプト・セグメントがサーブレット・コードに変換される場所は異なり、宣言文で定義された変数はメンバー変数の位置をメソッドし、スクリプト・セグメントの変数はローカル変数に変換されます.各ユーザーはメンバー変数にアクセスしますが、スクリプト・セグメントのローカル変数はユーザーごとにコピーを保存し、互いに影響しません.宣言文の変数は、ページを再リフレッシュするときに再定義されないので、_jspServiceメソッドで変更されたステータスは保持されます.
サーブレットにとっては、単一のパターンです.
しかし、この宣言文は、このようなニーズが多くないため、使用されません.