JSP三大指令
一個(gè)jsp頁(yè)面中,可以有0~N個(gè)指令的定義
1、page --> 最復(fù)雜:<%@page language=”java” info=”xxx” ...%>
- pageEncoding和contentType:
pageEncoding它指定當(dāng)前jsp頁(yè)面的編碼,只要和項(xiàng)目編碼相同,就不會(huì)有亂碼。在服務(wù)器要把jsp編譯成.java文件時(shí)需要使用pageEncoding
contentTyoe:它表示添加一個(gè)響應(yīng)頭:Content-Type。
等同于response.setContentType(“text/html;charset=utf-8”);
如果兩個(gè)屬性只提供一個(gè),那么另一個(gè)的默認(rèn)值為設(shè)置的那一個(gè)。
如果兩個(gè)都沒(méi)有設(shè)置,那么默認(rèn)值為ISO。
- import:導(dǎo)包,可以出現(xiàn)多次
- errorPage和isErrorPage
errorPage:當(dāng)前頁(yè)面如果拋出異常,那么轉(zhuǎn)發(fā)到哪一個(gè)頁(yè)面,由errorPage來(lái)指定
isErrorPage:它指定當(dāng)前頁(yè)面是否為處理錯(cuò)誤的頁(yè)面,當(dāng)該屬性為true時(shí),這個(gè)頁(yè)面會(huì)設(shè)置狀態(tài)碼為500,而且這個(gè)頁(yè)面可以使用9大內(nèi)置對(duì)象中的 exception
<error-page>
<error-code>404</error-code>
<location>/errorPage/errorPage.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/errorPage/errorPage.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/errorPage/errorPage.jsp</location>
</error-page>
- autoFlush和buffer
autoFlush:指定jsp的輸出流緩沖區(qū)滿時(shí),是否自動(dòng)刷新!默認(rèn)時(shí)true,如果為false,那么在緩沖區(qū)滿時(shí)就會(huì)拋出異常
buffer:指定緩沖區(qū)大小,默認(rèn)為8kb,通常不需要修改
- isELIgnored:是否忽略el表達(dá)式,默認(rèn)為false,不忽略,即支持
- 基本沒(méi)有:
language:指定當(dāng)前jsp編譯后的語(yǔ)言類型,默認(rèn)是java。
info:信息
isTHreadSafe:當(dāng)前的jsp是否支持并發(fā)訪問(wèn),默認(rèn)是false。
session:當(dāng)前頁(yè)面是否支持session,如果為false,那么當(dāng)前頁(yè)面就沒(méi)有session這個(gè)內(nèi)置對(duì)象
extends:讓jsp生成的servlet去繼承該屬性的指定的類
2、include --> 靜態(tài)包含
- 與RequestDispatcher的include()方法的功能相似
- <%@include%> 它是在Java編譯成java文件時(shí)完成的,它們共同生成一個(gè)java文件,讓后在共同生成一個(gè)class文件
- RequestDispatcher的include()是一個(gè)方法,包含和被包含的是兩個(gè)Servlet,即兩個(gè).class,它們只是把響應(yīng)的內(nèi)容給合并了
- 作用:把頁(yè)面分解了,使用包含的方式組合在一起,這樣一個(gè)頁(yè)面中不變的部分,就是一個(gè)獨(dú)立的jsp,而我們只需要處理變化的頁(yè)面。
3、taglib --> 導(dǎo)入標(biāo)簽庫(kù) - 兩個(gè)屬性:
prefix:指定標(biāo)簽庫(kù)在本頁(yè)面的前綴,由自己來(lái)起名稱
uri:指定標(biāo)簽庫(kù)的位置
<%@taglib prefix=”s” uri=”/ddddd”%> <s:text>
JSP的動(dòng)作標(biāo)簽
這些jsp的動(dòng)作標(biāo)簽,與html提供的標(biāo)簽有本質(zhì)的區(qū)別
- 動(dòng)作標(biāo)簽是由tomcat(服務(wù)器)來(lái)解釋執(zhí)行,它與java代碼一樣,都是在服務(wù)器端執(zhí)行的
- html由瀏覽器來(lái)執(zhí)行
- <jsp:forward>:轉(zhuǎn)發(fā)!它與RequestDispatcher的forward方法是一樣的,一個(gè)是在Servlet中使用,一個(gè)是在jsp中使用
- <jsp:include>:包含!它與RequestDispatcher的include方法是一樣的,一個(gè)是在Servlet中使用,一個(gè)是在jsp中使用
<%@include%>和<jsp:include>有什么不同?——前者是真正的合并,而后者相當(dāng)于調(diào)用。
- <jsp:param>:它用來(lái)作為forward和include的子標(biāo)簽,用來(lái)給轉(zhuǎn)發(fā)或包含的頁(yè)面?zhèn)鬟f參數(shù)
Jsp中的配置
在\cong\context.xml中,添加reloadable=”true” 自動(dòng)加載tomcat(適合在開發(fā)階段使用)