1. 程式人生 > >JSP的三六九四(三大指令、六大標籤、九大內建物件、四大作用域)

JSP的三六九四(三大指令、六大標籤、九大內建物件、四大作用域)

JSP的基本構成:HTML檔案+Java片斷+JSP標籤

三大指令:page指令、include指令、taglib指令。

page指令:

1.language屬性:設定當前頁面中編寫JSP指令碼使用的語言,預設值為java。

                                        <%@page language="java"%>

2.contentType屬性:設定頁面響應的MIME型別,通常被設定為text/html。

                                        <%@page contentType="text/html"%>

還可以設定JSP字元的編碼:<%@page contentType="text/html;charset=gb2312"%>

3.import屬性:類似於Java中的import語句,用來向JSP檔案中匯入需要用到的包。

                          在page指令中可多次使用該屬性來匯入多個包。例如:

                          <%@page  import="java.util.*" %>

                         <%@page import="java.text.*"%>

                         或者通過逗號間隔,來匯入多個包。

                         <%@page import="java.util.*,java.text.*"%>

在JSP中已經預設匯入了以下的包。

java.lang.*

java.servlet.*

java.servlet.jsp.*

java.servlet.http.*

4.extends屬性:

5.session屬性:該屬性預設為ture,表示當前頁面支援session。

6.buffer屬性:(緩衝)

7.autoFlush屬性:

8.isThreadSafe屬性:

9.info屬性:該屬性可設定為任意字串,如當前頁面的作者或其他有關的頁面資訊。可通過Servlet.getServletInfo()方法來設定的字串。例如:

<%@page info="This is index.jsp!"%>

<%=this.getServletInfo()%>

訪問頁面後,顯示如下結果:      This is index.jsp!

10.errorPage屬性和isErrorPage屬性:

例如:若當前應用下包含index.jsp和error.jsp檔案。

在index.jsp頁面中進行資料型別的轉換操作,其程式碼如下。

<%@page contentType="text/html;charset=utf-8" errorPage="error.jsp"%>
<%
String name="YXQ";
Integer.parseInt(name); //將字串轉化為int型
%>

上述程式碼將一個非數字格式的字串轉化為int型,因此將發生異常,最終進入errorPage屬性指定的error.jsp頁面顯示錯誤資訊。

在error.jsp頁面中需要將isErrorPage屬性設為true,然後才能呼叫exception物件輸出錯誤資訊。

error.jsp頁面的程式碼如下。

<%page contentType="text/html;charset=gb2312" isErrorPage="true"%>
出現錯誤!錯誤如下:<br>
<%=exception.getMessage()%>

include指令:

<%@include file="檔案的絕對路徑或相對路徑"%>

使用include指令引用外部檔案,可以減少程式碼的冗餘。(如:頁面公用)

<%@page contentType="text/html;charset=utf-8"%>
<table>
<tr><td colspan="2"><%include file="top.jsp"%></td></tr>
<tr>
<td><%@include file="side.jsp"%></td>
<td>內容顯示</td>
</tr>
<tr><td colspan="2"><%@include file="top.jsp"%></tr>
</table>

taglib指令:

六大標籤:偽指令標籤:<%@      %>

                    註釋標籤:<%--    --%>

                    宣告標籤:<%!       %>

                   動作標籤:<jsp:action  Name/>

                    指令碼標籤:<%      %>

                   表示式標籤:<%=      %>

九大內建物件: applicatin、config 、exception、out、page、pageContext、request、response、session

四大作用域:

JSP作用域

JSP頁面中的物件,包括使用者建立的和JSP內建物件都有一個範圍屬性。

Application——具有應用程式作用域的物件,在應用程式存活期間均可用。

Session——具有會話作用域的物件,在會話的存活期間可用。

Request——具有請求作用域的物件,在所有處理同一個請求的頁面內部內都可以訪問。

Page——具有頁面作用域的物件,在當前頁內可用

方法:setAttribute(String name,Object  attribute)

           getAttribute(String  name)

作用域範圍從大到小:

Allication作用域:範圍最大

                               可以被不同頁面、不同使用者共享

                                可以通過Allication內建物件或ServletContext

                              訪問Allication作用域物件

Session作用域:範圍僅次於Allication作用域

                             可以被同一客戶端的請求訪問

                             可以通過Session內建物件訪問Session作用域物件

Request作用域:範圍小於Session作用域

                            可以被forward()方法轉向頁面或者include()包含頁面訪問

                           可以通過request內建物件訪問request作用域物件

page作用域:範圍最小

                      只能被建立物件的頁面訪問

                       只能通過pageContext內建物件訪問page作用域物件