1. 程式人生 > >jsp基礎知識總結

jsp基礎知識總結

元素 lse size 區分 初始化 ESS ron 錯誤頁面 構造

1.了解jsp,jsp有什麽有利的,有什麽弊端。

jsp是serlet的擴展,在web應用中,每個jsp頁面都會有servlet容器生產對應的servlet。

jsp通過在標準的html頁面中插入java代碼,使用java代碼控制那些需要操作的數據庫根據程序動態生產的信息。

2. jsp頁面元素

jsp的聲明:<%!= 聲明部分%> 聲明變量和方法

jsp的表達式: <%=表達式%>

jsp的註釋 <%-- 註釋內容--%>

3. jsp指令

三個編譯指令:page include taglib

page指令:設置jsp頁面的屬性 用於和jsp通信,控制生成servlet結構

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> xxx.jsp

import屬性:page指令中唯一容許在同一文檔出現多次的屬性。屬性的值可以以逗號隔開。 指定jsp頁面轉換成servlet應該輸入的包。

對於沒有明確指定包的類,將根據jsp頁面所在的包(生成的servlet的目錄)決 定類的包的位置

language屬性:用於指定在腳本元素中使用的腳本語言,默認java。在jsp2.0規範中,只能是java。

contentType和pageEncoding屬性:contentType屬性設置發送到客戶端文檔的響應報頭的MIME類型和字符編碼。多個使用;號分開 pageEncodeing屬性只用於更改字符編碼

session屬性:控制頁面是否參與會話 對於高流量網站,設置false可以節省大量服務器內存

isELlgnored屬性:定義在jsp頁面中是否執行或忽略EL表達式。true表示忽略,false表示執行

buffer和autoFlush屬性:buffer屬性指定out對象(JspWriter)使用的緩沖區大小,以kb為單位,默認8kb。none表示不使用緩沖區。這樣要求設置報頭或狀態代碼的jsp元素要出現在文件的頂部

info屬性:定義一個可以在servlet中通過getServletInfo方法獲取的字符串 8)rrorPage和isErrorPage屬性:指定頁面專用的錯誤頁面。
include指令:在頁面轉換期間將文件包含到jsp頁面。include指令用於在jsp頁面中靜態包含一個文件,該文件可以是jsp頁面,html頁面,文本文件或一段Java代碼

<%@ include file="url"%> file的屬性值被解釋為相對於當前jsp文件的URL 在哪個位置引入,就在哪個位置顯示

include編譯指令與動作指令的區別

<%@include file="myDemo.jsp" %> 編譯指令,把代碼放進來 服務器一塊編譯,靜態包含,只要寫上,先把代碼拿過來,用的時候一起編譯

<jsp:include page="myDemo.jsp"></jsp:include> 動作指令 單獨的編譯好 最後頁面拼接到一起,動態包含,各編譯各的,用的時候,放到一塊

flush屬性:指定將頁面包含進來之前是否應該清空主頁面的輸入流(默認false)
優點:包含頁面被更改,無需對主頁面做修改。缺點:被包含頁面不能使用任何有可能影響主頁面的jsp構造。也就是不能將完整的HTML文檔作為被包含頁面,只能含有適合於出現在文件插入點的HTML標簽。

taglib指令:聲明用戶使用的自定義標簽。聲明用戶使用自定義的標簽,將標簽庫描述符文件導入到jsp頁面

taglib指令語法: <%@ taglib (uri="tigLibURL" 或 tagDir="tagDir") prefix="tagPrefix" %>
uri屬性:定位標簽庫描述符的位置。唯一標識和前綴相關的標簽庫描述符,可以使用絕對或相對URL。
tagDir屬性:指示前綴將被用於標識在WEV-INF/tags目錄下的標簽文件。
prefix屬性:標簽的前綴,區分多個自定義標簽。不可以使用保留前綴和空前綴,遵循XML命名空間的命名約定。

七個動作指令:jsp:forward jsp:param jsp:include jsp:plugin jsp:useBean jsp:setProperty jsp:getProperty

jsp:forward指令用於將頁面響應控制轉發給另外的頁面。既可以轉發給靜態的HTML頁面,也可以轉發到動態的JSP頁面,或者轉發到容器的Servlet。

<jsp:forward page=“{relativeURL|<%=expression%>}” />
<jsp:forward page=“{relativeURL|<%=expression%>}”>
{<jsp:param …/>}
</jsp:forward>

用於在轉發時增加額外的請求參數。增加的請求參數的值可以通過HttpServletRequest類的getParameter方法獲取。

jsp:useBean/jsp:getProperty/jsp:setProperty 這三個指令都是與javabean相關的指令,其中第一個指令用於在JSP頁面中初始化一個java實例;第二個指令用於獲取javaBean實例的屬性,

第三個用於修改javaBean實例的屬性。

<jsp:useBean id=“zhangSan” class=“com.bochy.Person” scope=“page | request | session | application” /> 四個作用域 id屬性是javaBean的實例名,class屬性指定javaBean的實現類
說明:page:該javaBean實例僅在該頁面有效 request:該javaBean實例在本次請求有效 session:該javaBean實例在本次session內有效application:該javaBean實例在本應用內有效

<jsp:setProperty name=“beanName” property=“propertyName” value=“propertyValue” />
說明:其中name屬性確定需要設定javaBean的實例名,property屬性確定需要設置的屬性,value屬性確定需要設置的屬性值。
<jsp:getProperty name=“beanName” property=“propertyName” />
說明:其中name屬性確定需要輸出的javaBean的實例名,property屬性確定需要輸出的屬性名。

4.jsp九大內置對象
九大內置對象 request、out、response、application、session、page、confing、pageContext、exception
application對象 該對象代表web應用本身,整個web應用共享一個application對象,該對象主要用於在多個JSP頁面或Servlet之間共享變量。

application通過setAttribute方法將一個值放入某個屬性,該屬性的 值對整個web應用有效,因此web應用的每jsp頁面或Servlet都可以訪問該屬性,訪問的方法為:getAttribute

session對象也是一個非常有用的對象,這個對象代表一次用戶會話。一次用戶會話的含義是:從客戶端瀏覽器連接服務器開始,到客戶端瀏覽器與服務器斷開為止,這個過程就是一次會話。
session通常用於跟蹤用戶的會話信息,如判斷用戶是否登陸系統,或者在購物車應用中,系統是否跟蹤用戶購買的商品等。
session對象的兩個常用方法為:setAttribute(String attName, Object attValue)設置一個session屬性 ,getAttribute(String attName) 返回一個session屬性的值
request對象是JSP中重要的對象,每個request對象封裝一次用戶請求,並且所有的請求參數都被封裝在request中,因此用戶也可在request中增加請求參數

在獲取表單域值之前,需要設置request的解碼方式:request.setCharacterEncoding(“UTF-8”) 地址欄傳遞參數的格式:url?param1=value1&param2=value2&…
request還包含可以用於設置和獲取請求屬性的方法 void setAttribute(String attName, Object attValue),Object getAttribute(String attName). 當forward用戶請求時請求的參數和請求的屬性都不會丟失
out對象代表一個頁面輸出流,通常用於在頁面上輸出變量值和常量。一般在使用輸出表達式值的地方,都可以使用out對象達到同樣的效果。

pageContext對象該對象主要用於訪問頁面共享數據。使用pageContext可以直接訪問request、session、application範圍的屬性。

confing對象該對象該表當前JSP配置信息。但是JSP頁面通常無需配置,因此也就不存在配置信息。該對象在JSP頁面中非常少用,但是在Servlet則用處相對較大,因為Servlet需要配置在web.xml中,可以指定配置參數

exception對象該對象是Throwable實例,代表JSP頁面產生的錯誤和異常是JSP異常框架的一部分。

response對象 response代表服務器對客戶端的響應 response也可以進行重定向 esponse也可以增加Cookie

page對象 page對象有點類似於Java編程中的this指針,就是指當前JSP頁面本身

jsp基礎知識總結