1. 程式人生 > >輕量級JavaEE企業應用實戰(四)

輕量級JavaEE企業應用實戰(四)

JSP的7個動作指令

jsp:forward:執行頁面轉向,將請求的處理轉發到下一個頁面

jsp:param:用於傳遞引數,必須與其他支援引數的標籤一起使用

jsp:include:動態引入一個JSP頁面

jsp:plugin:用於下載JavaBean或Applet到客戶端執行

jsp:useBean:建立一個JavaBean例項

jsp:setProperty:設定JavaBean例項的屬性值

jsp:getProperty:輸出JavaBean例項的屬性值

forward指令

注:forward指令執行時,使用者請求的地址沒有發生改變,但頁面內容卻完全變為forward目標頁內容,同時客戶端的請求引數不會丟失

include指令

動態和靜態指令的區別:

    1.靜態匯入是將被匯入的頁面的程式碼完全融入,成一個整體的Servlet;動態則是在Servlet中使用include方法來匯入頁面的內容

    2.講臺匯入時被匯入頁面的編譯指令會其作用,而動態匯入時被匯入頁面的編譯指令失去作用,只是插入被匯入頁面的body內容

    3.動態包含還可以增加額外的引數

<jsp:include page="forward-result.jsp">
	<jsp:param name="age" value="32" />
</jsp:include>

forward和include比較:forward拿目標頁面代替原有頁面,include拿目標頁面插入原有頁面

useBean、setProperty、getProperty指令

useBean指令用於在JSP頁面初始化一個Java例項;

setProperty指令用於為JavaBean設定屬性值

getProperty指令用於輸出JavaBean屬性值

<jsp:useBean id="p1" class="lee.Person" scope="request" /> //id屬性是JavaBean例項名,class是實現類,scope屬性指定JavaBean的作用範圍
//page:該JavaBean例項僅在該頁面有效
//request:該JavaBean本次請求有效
//session:該JavaBean本次回話有效
//application:該JavaBean應用期間有效,從上到下變大
<jsp:setproperty name="p1" property="name" value="wa" /> //name屬性是JavaBean的例項名,property屬性確定需要輸出的屬性名
<jsp:setProperty name="p1" property="age" value="25" />
<jsp:getProperty name="p1" property="name" />
<jsp:getProperty name="p1" property="age" />

JSP九大內建物件

application:

    javax.servlet.ServletContext例項,代表JSP所屬的WEB應用本身,可以用於JSP頁面或在Servlet之間的資訊交換

    常用方法:getAttribute、setAttribute、getInitParameter

config:

    javax.servlet.servletConfig例項,該例項代表該JSP的配置資訊。實際上,JSP頁面無需配置,所以更多在Servlet上有效

    常用方法:getInitParameter、getInitParameternames

exception:

    java.lang.Throwable例項,代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page的isErrorPage屬性為true時,才可使用

    常用方法:getMessage、printStackTrace

out:

    javax.servlet.jsp.JspWriter例項,代表JSP頁面的輸出流,用於輸出內容,形成HTML頁面

page:

    代表頁面本身,沒有太大用處。也就是Servlet中的this,其型別就是生成Servlet類,能用page就可以用this

pageContext:

    javax.servlet.PageCOntext例項,代表該JSP頁面上下文,使用該物件可以訪問頁面中的共享資料。

    常用方法:getServletContext、getServletConfig

request:

    javax.servlet.http.HttpServletRequest例項,該對像封裝了一次請求,客戶端的請求引數都在該物件中,獲取客戶端請求引數必須使用該引數

    常用方法:getParameter、getParameterValues、setAttribute、getAttribute、setCharacterEncoding

response:

    javax.servlet.http.HttpServletResponse例項,代表伺服器對客戶端的相應,通常很少使用該物件直接響應,而是使用out物件,除非需要生成非字元響應

    常用方法:getOutputStream、sendRedirect

session:

    javax.servlet.http.HttpSession例項,代表一次會話。當客戶端瀏覽器與站點建立連線,會話開始;當客戶端關閉瀏覽器,會話結束

    常用方法:getAttribute、setAttribute