提示:若是使用的是tomcat服務器,那麼這些文件.java,.class均可以在tomcat中的work目錄找到 html
<!-- 註釋內容 -->
//註釋:單行註釋,用具java代碼
/* 註釋 */:多行註釋,用具java代碼
<%--註釋--%>:jsp註釋
<% int x=10; String s="taeyeon"; out.println("<h2><%%>的使用:</h2>");//由於jsp會自動編譯<%%>因此須要使用轉義字符來輸出<%%>,下面也是如此。 out.println("<h4>"+x+"歲的"+s+"</h4>"); %>
<%! public int add(int x,int y){ return x+y; } %> <% out.print("<h2><%!%>的使用:</h2>"); out.println("<h4>"+add(10,10)+"</h4>"); %>
<% out.print("<h2><%=%>的使用:</h2>"); %> <h4> name:<%=s%></h4>
<%%>的使用: 10歲的taeyeon <%!%>的使用: 20 <%=%>的使用: name:taeyeon
備註:儘可能多使用<%=%>表達式,少使用out.println();的輸出語句,由於在jsp開發中,其實是在html中加入了一些控制及輸出語句,因此在輸出時爲了使html代碼和java代碼相分離,最好的作法就是隻輸出由jsp產生的變量,那麼這時使用表達式輸出比使用out.println()更加方便java
<jsp:scriptlet> String url="www.taeyeon.com.cn";// java scriptlet 代碼 </jsp:scriptlet> <h2><%=url%></h2>//這裏url會報錯,可是不影響編譯輸出
www.taeyeon.com.cn
以上指令中只有import能夠重複使用,其餘的只能出現一次。web
在page指令中,contentType屬性是使用最多的一個屬性,若是想讓一個jsp文件顯示中文,則必須對整個頁面指定MIME編碼。語法<%@ page contentType="text/html;charset=UTF-8" language="java" %>
小程序
1,什麼是MIME?tomcat
答:使用MIME類型能夠設置打開文件的應用程序類型。服務器
2,常見的MINE類型:app
超文本標記語言文本 .htm,.html text/html 普通文本 .txt text/plain RTF文本 .rtf application/rtf GIF圖形 .gif image/gif JPEG圖形 .ipeg,.jpg image/jpeg au聲音文件 .au audio/basic MIDI音樂文件 mid,.midi audio/midi,audio/x-midi RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio MPEG文件 .mpg,.mpeg video/mpeg AVI文件 .avi video/x-msvideo GZIP文件 .gz application/x-gzip TAR文件 .tar application/x-tar
3,在Tomcat安裝目錄/conf/web.xml中能夠查詢MIME類型,例如,若是如今但願頁面能夠按照word文檔的形式顯示,則可使用以下MIME類型:jsp
<mime-mapping> <extension>doc</extension>//元素用來描述擴展名 <mime-type>application/msword</mime-type>//mime-type元素則爲MIME類型 </mime-mapping>
4,使用contentType和pageEncoding設置編碼有什麼區別? pageEncoding指的是jsp文件自己的編碼,而contentType中的charset指的是服務器發送給客戶端的內容編碼。在jsp中若是pageEncoding存在,那麼jsp的編碼將由pageEncoding決定,不然由contentType中的charset決定,若是兩個都不存在,則將使用ISO-8859-1的編碼方式。jsp中的全部內容都要通過兩次編碼操做,第一階段會使用pageEncoding編碼,第二階段會使用utf-8,第三階段就是生成網頁,此時纔會使用contentType的編碼。<%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" language="java" %>
ide
5,錯誤頁的設置編碼
<%@page errorPage="Scriptlet.jsp" %>
設置出錯頁面跳轉的處理頁面。<%@ page isErrorPage="true" %>
設置該頁面能夠處理該錯誤。若是不寫這一句或者設置爲false,也能實現頁面的跳轉,只不過沒有exception對象的處理。注意:此處一旦發生錯誤地址欄上的顯示界面名字是不會改變的,也就是說雖然看見了頁面的跳轉內容的改變,可是地址欄並無改變,這種跳轉叫作服務器跳轉,整個操做中客戶端對服務器只發以此請求,服務器也只響應一次。
<error-page> <error-code>500</error-code> <location>/page/Scriptlet.jsp</location> </error-page> <error-page> <exception-type>java.lang.ArithmeticException</exception-type> <location>/page/Scriptlet.jsp</location> </error-page>
1,靜態包含
靜態包含指令是在jsp編譯時插入一個包含文本或代碼的文件,這個包含的過程是靜態的。語法:<%@ include file="要包含的文件路徑"%>
。將這些文件包含在一塊兒,而後統一編譯成.class文件。
2,動態包含
使用<jsp:include page="{要包含的文件路徑|<%=表達式%>}" flush="true|false"/>
能夠完成動態包含的操做。當傳遞參數的時候使用:
<jsp:include page="{要包含的文件路徑|<%=表達式%>}" flush="true|false"> <jsp:param name="參數名稱" value="參數內容"> .... </jsp:include>
flush屬性的可選值爲false時表示這個網頁徹底被讀進來之後才輸出,在每個jsp的內部都會有一個buffer,因此設置成true時,當buffer滿了就輸出。通常設置爲true。
3,動態和靜態的區別
靜態包含是先將所有的內容包含在一塊兒,而後再一塊兒編譯。若是動態包含被包含的是動態頁面那麼是屬於先處理後包含的作法。好比當被引用界面裏也有定義變量x,而引用界面也有變量x的時候使用靜態包含,就會報出異常變量聲明重複,而使用動態就不會。
4,跳轉指令
將一個用戶的請求從一個界面傳遞到另外一個界面,即完成跳轉操做。
<jsp:forward page="{要包含的文件路徑}|<%=表達式%>">
<jsp:forward page="{要包含的文件路徑}|<%=表達式%>"> <jsp:param name="參數名稱" value="參數內容"> ...... </jsp:forward>