隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          JSP的3個編譯指令,7個動作指令,9個內(nèi)置對象


          3個編譯指令


          1、page指令
          page指令用戶定義JSP頁面中的全局屬性,它的語法格式如下:






          <%page
          {language="java"}
          {extends="package.class"}
          {import="{package.class|package.*},..."}
          {session="true
          | false"}
          {buffer="none | 8kb | sizekb"}
          { false"}
          {isThreadSafe="true
          |
          false"}
          {info="text"}
          {errorPage="relativeURL"}
          {contentType="mimeType
          [;charset=characterSet]" | "text/html ;
          charset=ISO-8859-1"}
          {isErrorPage="true |
          false"}
          {pageEncoding="charset=characrerSet |
          ISO-8859-1"}
          %>


          page指令對整個頁面有效,包括靜態(tài)的包含文件,但page指令不能用于被動態(tài)包含的文件,例如使用<jsp:include>包含的文件。在一個JSP頁面中可以使用多個page指令,但page指令中的屬性只能出現(xiàn)一次(import屬性除外)。
          2、include指令
          include指令用于在JSP頁面中包含其他文件,它的語法格式如下:





          <% include
          file="路徑名">
          include指令僅有一個屬性file,其值為文件的相對路徑。include指令包含的過程是靜態(tài)的,包含的文件可以是JSP、HTML或者Inc文件等。
          3、taglib指令
          taglib指令允許用戶使用標簽庫自定義新的標簽,它的語法格式如下:




          <% taglib uri="taglibURI"
          prefix="tabPrefix"%>

          taglib指令中的uri屬性用于根據(jù)標簽的前綴對自定義的標簽進行唯一的命名,其值可以食相對路徑,就對路徑或標簽庫描述文件。屬性prefix制定了標簽的前綴。



          7個動作指令


          動作指令與編譯指令不間,編譯指令是通知 Servlet 引擎的處理消息,而動作指令只是運行時的腳本動作。編譯指令在將JSP 編譯成 Servlet
          時起作用:處理指令通常可替換成 Java腳本,是 JSP腳本的標準化寫法。


          JSP7 個
          動作指令如下 :



          1. jsp:forward: 執(zhí)行頁面轉向,將請求的處理轉發(fā)到下一個頁面。
          2. jsp:param: 用于傳遞參數(shù),必須與其他支持參數(shù)曲標簽一起使用。
          3. jsp:include: 用于動態(tài)引入一個 JSP 頁面。
          4. jsp:p1ugin: 用于下載 JavaBean 或 Applet 到客戶端執(zhí)行。
          5. jsp:useBean: 使用 JavaBean。
          6. jsp:setProperty: 修改 JavaBean 實例的屬性值。
          7. jsp:getProperty: 獲取 JavaBean 實例的屬性值。

          下面依次講解這些動作指令


          1..jsp:forward動作
          (拿目標頁面代替原有頁面)  jsp:forward動作把請求轉到另外的頁面。可以轉發(fā)靜態(tài)的HTML頁面,也可以轉發(fā)動態(tài)的JSP頁面,或者轉發(fā)到容器中的servlet
          jsp:forward標記只有一個屬性page。 page屬性包含的是一個相對URL。 page的值既可以直接給出,也可以在請求的時候動態(tài)計算,
          如下面的例子所示:       此頁面在轉發(fā)時增加惡劣一個參數(shù) 參數(shù)名為 age 值為 29;


          <!--request.getParamenter("age"-->


          獲得上個頁面?zhèn)鱾€來的參數(shù)值


          2.jsp:include動作
          (拿目標頁面插入原有頁面)該動作是一個動態(tài)的include指令,也用于帶入某個頁面,他不會導入被include頁面的編譯指令,僅僅導入頁面的body內(nèi)容插入到本頁面  該動作把指定文件插入正在生成的頁面。其語法如下:  
          flush:用于指定輸出緩存是否轉移到被導入的文件中, true:包含在被導入的文件中
          false:包含在源文件中  前面已經(jīng)介紹過include指令,它是在JSP文件被轉換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候。jsp:include動作的文件引入時間決定了它的效率要稍微差一點,而且被引用文件不能包含某些JSP代碼(例如不能設置HTTP頭),但它的靈活性卻要好得多。  例如,下面的JSP頁面把4則新聞摘要插入一個“What''s
          New ?”頁面。改變新聞摘要時只需改變這四個文件,而主JSP頁面卻可以不作修改:     


            



          </CENTER>
            <P>
            Here is a summary of our four most recent
          news stories:
            <OL>
            <LI><jsp:include
          page="news/Item1.html" flush="true"/>
            <LI><jsp:include
          page="news/Item2.html" flush="true"/>
            <LI><jsp:include
          page="news/Item3.html" flush="true"/>
            <LI><jsp:include
          page="news/Item4.html" flush="true"/>
            </OL> 


            


          3..jsp:useBean動作
          useBean:用于在jsp頁面中初始化一個java實例(如果多個jsp中需要重復使用某段代碼,可以把這段代碼定義成java類在頁面中引用)  


          jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因為它使得我們既可以發(fā)揮Java組件重用的優(yōu)勢,同時也避免了損失JSP區(qū)別于Servlet的方便性。


          jsp:useBean動作最簡單的語法為:<jsp:useBean id="JavaBean的名稱"
          class="package.class"包名.類名" scope="有效范圍"/>


          這行代碼的含義是:“創(chuàng)建一個由class屬性指定的類的實例,然后把它綁定到其名字由id屬性給出的變量上”。不過,就象我們接下來會看到的,定義一個scope屬性可以讓Bean關聯(lián)到更多的頁面,它可接受四個值:request、session、page、application。此時,jsp:useBean動作只有在不存在同樣id和scope的Bean時才創(chuàng)建新的對象實例,同時,獲得現(xiàn)有Bean的引用就變得很有必要。 


           獲得Bean實例之后,要修改Bean的屬性既可以通過jsp:setProperty動作進行,也可以在Scriptlet中利用id屬性所命名的對象變量,通過調(diào)用該對象的方法顯式地修改其屬性。這使我們想起,當我們說“某個Bean有一個類型為X的屬性foo”時,就意味著“這個類有一個返回值類型為X的getFoo方法,還有一個setFoo方法以X類型的值為參數(shù)”。  有關jsp:setProperty動作的詳細情況在后面討論。但現(xiàn)在必須了解的是,我們既可以通過jsp:setProperty動作的value屬性直接提供一個值,也可以通過param屬性聲明Bean的屬性值來自指定的請求參數(shù),還可以列出Bean屬性表明它的值應該來自請求參數(shù)中的同名變量。  


          在JSP表達式或Scriptlet中讀取Bean屬性通過調(diào)用相應的getXXX方法實現(xiàn),或者更一般地,使用jsp:getProperty動作。  


          注意,包含Bean的類文件應該放到服務器正式存放Java類的目錄下,而不是保留給修改后能夠自動裝載的類的目錄。例如,對于Java Web
          Server來說,Bean和所有Bean用到的類都應該放入classes目錄,或者封裝進jar文件后放入lib目錄,但不應該放到servlets下。
          id:javaBean的實例名 class: javaBean的實現(xiàn)類 scope:指定javaBean實例的生存范圍 page:javaBean僅在該頁面有效
          request:javaBean在本次請求中有效 session: javaBean在本次session內(nèi)有效 application:
          javaBean在本應用內(nèi)一直有效  下面是一個很簡單的例子,它的功能是裝載一個Bean,然后設置/讀取它的message屬性。 


          3.1關于jsp:useBean的進一步說明  


          使用Bean最簡單的方法是先用下面的代碼裝載Bean:  


          <jsp:useBean id="name" class="package.class" />


              然后通過jsp:setProperty和jsp:getProperty修改和提取Bean的屬性。


          不過有兩點必須注意。  


          第一,我們還可以用下面這種格式實例化Bean:


          <jsp:useBean ...>
            Body
            </jsp:useBean>


           它的意思是,只有當?shù)谝淮螌嵗疊ean時才執(zhí)行Body部分,如果是利用現(xiàn)有的Bean實例則不執(zhí)行Body部分。正如下面將要介紹的,jsp:useBean并非總是意味著創(chuàng)建一個新的Bean實例。  


          第二,除了id和class外,jsp:useBean還有其他三個屬性,即:scope、type、beanName。  


          id:命名引用該Bean的變量。如果能夠找到id和scope相同的Bean實例,jsp:useBean動作將使用已有的Bean實例而不是創(chuàng)建新的實例。  


          class:指定Bean的完整包名。   


          scope:指定Bean在哪種上下文內(nèi)可用,可以取下面的四個值之一:page、request、session和application。  默認值是page,表示該Bean只在當前頁面內(nèi)可用(保存在當前頁面的PageContext內(nèi))。  


          request表示該Bean在當前的客戶請求內(nèi)有效(保存在ServletRequest對象內(nèi))。  


          session表示該Bean對當前HttpSession內(nèi)的所有頁面都有效。   


          最后,如果取值application,則表示該Bean對所有具有相同ServletContext的頁面都有效。   


          scope之所以很重要,是因為jsp:useBean只有在不存在具有相同id和scope的對象時才會實例化新的對象;


          如果已有id和scope都相同的對象則直接使用已有的對象,此時jsp:useBean開始標記和結束標記之間的任何內(nèi)容都將被忽略。  


          type:指定引用該對象的變量的類型,它必須是Bean類的名字、超類名字、該類所實現(xiàn)的接口名字之一。請記住變量的名字是由id屬性指定的。 


          beanName:指定Bean的名字。如果提供了type屬性和beanName屬性,允許省略class屬性。



          4.jsp:setProperty動作
            jsp:setProperty用來設置已經(jīng)實例化的Bean對象的屬性,有兩種用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:    ...
              此時,不管jsp:useBean是找到了一個現(xiàn)有的Bean,還是新創(chuàng)建了一個Bean實例,jsp:setProperty都會執(zhí)行。第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部,如下所示:    ...
                此時,jsp:setProperty只有在新建Bean實例時才會執(zhí)行,如果是使用現(xiàn)有實例則不執(zhí)行jsp:setProperty。  jsp:setProperty動作有下面四個屬性:name:表示要設置屬性的是哪個Bean。  property:表示要設置哪個屬性。有一個特殊用法:如果property的值是"*",表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應的屬性set方法。  value:value屬性是可選的。該屬性用來指定Bean屬性的值。字符串數(shù)據(jù)會在目標類中通過標準的valueOf方法自動轉換成數(shù)字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過Boolean.valueOf轉換,int和Integer類型的屬性值(比如"42")通過Integer.valueOf轉換。  value和param不能同時使用,但可以使用其中任意一個。  Param:param是可選的。它指定用哪個請求參數(shù)作為Bean屬性的值。如果當前請求沒有參數(shù),則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認屬性值,只有當請求參數(shù)明確指定了新值時才修改默認屬性值。  例如,下面的代碼片斷表示:如果存在numItems請求參數(shù)的話,把numberOfItems屬性的值設置為請求參數(shù)numItems的值;否則什么也不做。    如果同時省略value和param,其效果相當于提供一個param且其值等于property的值。進一步利用這種借助請求參數(shù)和屬性名字相同進行自動賦值的思想,你還可以在property(Bean屬性的名字)中指定“*”,然后省略value和param。此時,服務器會查看所有的Bean屬性和請求參數(shù),如果兩者名字相同則自動賦值。  下面是一個利用JavaBean計算素數(shù)的例子。如果請求中有一個numDigits參數(shù),則該值被傳遞給Bean的numDigits屬性;numPrimes也類似。  JspPrimes.jsp
           


          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
          Transitional//EN">
            <HTML>
            <HEAD>
            <TITLE>在JSP中使用JavaBean</TITLE>
            </HEAD>
            <BODY>
            <CENTER>
            <TABLE
          BORDER=5>
            <TR><TH
          CLASS="TITLE">
            在JSP中使用JavaBean</TABLE>
            </CENTER>
            <P>
            <jsp:useBean
          id="primeTable" class="hall.NumberedPrimes" />
            <jsp:setProperty name="primeTable" property="numDigits"
          />

            <jsp:setProperty name="primeTable" property="numPrimes"
          />
            Some <jsp:getProperty name="primeTable" property= "numDigits"
          />
            digit primes:
            <jsp:getProperty name="primeTable"
          property="numbered List" />
            </BODY>
            </HTML>


          5.jsp:getProperty動作
            jsp:getProperty動作提取指定Bean屬性的值,轉換成字符串,然后輸出。jsp:getProperty有兩個必需的屬性,即:name,表示Bean的名字;property,表示要提取哪個屬性的值。下面是一個例子,更多的例子可以在前文找到。    ...
            



          <jsp:useBean id="itemBean" ...
          />
            ...
            <UL>
            <LI>Number of
          items:
            <jsp:getProperty name="itemBean" property="numItems"
          />
            <LI>Cost of each:
            <jsp:getProperty name="itemBean"
          property="unitCost" />
            </UL>    


          6.jsp:plugin動作
          (用于下載服務器端的javaBean或applet到客戶端)  jsp:plugin動作用來根據(jù)瀏覽器的類型,插入通過Java插件運行Java
          Applet所必需的OBJECT或EMBED元素。


          <jsp:plugin
          type="bean |
          applet" :
          被執(zhí)行的java程序的類型
          code="classFileName" :被執(zhí)行的文件名,必須以
          .class
          結尾
          codebase="classFileDirectoryName"
          :被執(zhí)行文件的所在目錄


          [ name="instanceName"
          ] :給程序起一個名字用來標識該程序
          [ archive="URIToArchive,
          ..." ] :指向一些要預先載入的將要使用到的類
          [ align="bottom |
          top | middle | left | right" ] :
          [
          height="displayPixels" ]
          [ width="displayPixels"
          ]
          [ hspace="leftRightPixels"
          ]
          [ vspace="topBottomPixels"
          ]
          [ jreversion="JREVersionNumber | 1.1"
          ] :能正確運行改程序必須的JRE的版本
          [
          nspluginurl="URLToPlugin" ]
          [
          iepluginurl="URLToPlugin" ] >


          [ <jsp:params>
          [
          <jsp:param name="parameterName" value="{parameterValue | <%= expression
          %>}" /> ]+
          </jsp:params> ]


          [ <jsp:fallback> text message for user
          </jsp:fallback> ] :當不能正確顯示該Applet時,顯示該指令中的文本提示


          <jsp:plugin>


          7.jsp:param 用于設定參數(shù)值,這個指令不能單獨使用
          可以與以下三個指令結合使用:


          jsp:include :用于將參數(shù)值出入被導入頁面


          jsp:forword : 用于將參數(shù)值傳入被轉向頁面


          jsp:plugin : 用于將參數(shù)值傳入頁面中javaBean的實例



          9個內(nèi)置對象


          JSP中的內(nèi)置對象(9個)























          對象名

          對象的類型

          范圍
          pageContext

          Javax.servlet.jsp.PageContext

          Page
          page

          Javax.servlet.jsp.HttpJspPage

          Page
          request

          Javasx.servlet.jsp.HttpServletRequest
          Request
          response


          Javax.servlet.jsp.HttpServletResponse
          Page
          session

          Javax.servlet.HttpSessio
          Session
          application

          Javax.servlet.ServletContext

          Application
          out

          Javax.servlet.jsp.JspWriter

          Page
          config

          Javax.servlet.ServletConfig
          Page
          exception

          Java.lang.ThrowAble

          page


          內(nèi)置對象是不需要聲明,直接可以在JSP中使用的對象,JSP有以下幾種內(nèi)置對象:
          1.request對象
          request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie,
          header,
          和session數(shù)據(jù)的有用的方法。客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應。

          1
          Object getAttribute(String name) 返回指定屬性的屬性值,該屬性不存在時返回null。
          2
          Enumeration getAttributeNames() 返回所有可用屬性名的枚舉
          3 String
          getAuthType() ;返回用來保護servlet的認證方法的名稱,未受保護時返回null。
          4 String
          getCharacterEncoding() 返回字符編碼方式
          5 int getContentLength()
          返回請求體的長度(以字節(jié)數(shù)),不能確定長度時返回-1。
          6 String getContentType()
          得到請求體的MIME類型
          7 String getContentPath() 返回請求的路徑。
          8
          Cookie[] getCookies() 返回客戶端所有的Cookie的數(shù)組。
          9 Enumeration
          getHeaderNames() 返回所有HTTP頭的名稱的集合。
          10 Enumeration getHeaders(
          String name ) 返回指定HTTP頭的所有值的集合。
          11 String getHeader( String name )
          返回指定名稱的HTTP頭的信息。
          12 long getDateHeader( String name )
          返回指定名稱的Data類型的HTTP頭的信息。
          13 int getIntHeader( String name )
          返回指定名稱的Int類型的HTTP頭的信息。
          14 ServletInputStream getInputStream()
          得到請求體中一行的二進制流
          15 Locale getLocale()
          返回當前頁的Locale對象,可以在response中設定。
          16 Enumeration getLocales()
          返回請求中所有的Locale對象的集合。
          17 String getLocalName()
          獲取響應請求的服務器端主機名。
          18 String getLocalAddr()
          獲取響應請求的服務器端地址。
          19 int getLocalPort()
          獲取響應請求的服務器端端口
          20 String getMethod()
          獲取客戶端向服務器端發(fā)送請求的方法(GET、POST)。
          21 String getParameter(String name)
          返回name指定參數(shù)的參數(shù)值
          22 Map getParameterMap()
          該方法返回包含請求中所有參數(shù)的一個Map對象。
          23 Enumeration getParameterNames()
          返回請求中所有參數(shù)的集合。
          24 String[] getParameterValues(String name)
          返回包含參數(shù)name的所有值的數(shù)組
          25 String getQueryString()
          返回get方法傳遞的參數(shù)字符串,該方法不分解出單獨的參數(shù)。
          26 String getPathInfo()
          取出請求中處于ServletPath和QueryString之間的額外信息。
          27 String
          getPathTranslated() 返回用getPathInfo()方法取得的路徑信息的實際路徑。
          28 String
          getProtocol() 返回請求使用的協(xié)議。可以是HTTP1.1或者HTTP1.0。
          29 BufferedReader
          getReader()
          返回請求的輸入流對應的Reader對象,該方法和getInputStream()方法在一個頁面中只能調(diào)用一個。
          30 String
          getRemoteAddr() 返回發(fā)送此請求的客戶端IP地址
          31 String getRemoteHost()
          返回發(fā)送此請求的客戶端主機名
          32 String getRemoteUser()
          返回經(jīng)過客戶端驗證的用戶名,未經(jīng)驗證返回null。
          33 int getRemotePort()
          返回發(fā)出請求的客戶端主機端口。
          34 String getRealPath(String path)
          返回一虛擬路徑的真實路徑
          35 RequestDispatcher getRequestDispatcher( String
          path ) 按給定的路徑生成資源轉向處理適配器對象。
          36 String getRequestedSessionId()
          返回請求的session的標識。
          37 String RequestURI()
          返回發(fā)出請求的客戶端地址,但是不包括請求的參數(shù)字符串。
          38 StringBuffer getRequestURI()
          返回響應請求的服務器端地址
          39 String getScheme()
          返回請求用的計劃名,如:http.https及ftp等
          40 String getServerName()
          返回響應請求的服務器名稱。
          41 String getServletPath()
          獲取客戶端所請求的腳本文件的文件路徑。
          42 int getServerPort()
          返回服務器接受此請求所用的端口號
          43. void removeAttribute( String name )
          在屬性列表中刪除指定名稱的屬性。
          44. void setAttribute( String name, Object value
          ) 在屬性列表中添加/刪除指定的屬性。
          45. void setCharacterEncoding( String name )
          設置請求的字符編碼格式。
          46. HttpSession getSession()
          ;
          HttpSession getSession( boolean create )
          獲取session,如果create為true,在無session的情況下創(chuàng)建一個。
          47. boolean
          isRequestedSessionIdFromCookie()
          檢查請求的會話ID是否為通過Cookie傳入。
          48. boolean
          isRequestedSessionIdFromURL() 檢查請求的會話ID是否為通過URL傳入。
          49.
          boolean isRequestedSessionIdValid() 檢查請求的會話ID是否仍然有效。
          50.
          boolean isSecure() 檢查請求是否使用安全鏈接,如果HTTPS等。
          51. boolean
          isUserInRole( String role ) 檢查已經(jīng)通過驗證的用戶是否在是role所指定的角色。
          52.
          Principal getUserPrincipal()
          返回包含用戶登陸名的一個java.security.Principal對象。
          成員:
          String
          BASIC_AUTH = "BASIC"
          String CLIENT_CERT_AUTH =
          "CLIENT_CERT"
          String DIGEST_AUTH = "DIGEST"
          String
          FORM_AUTH = "FORM"

          2.response對象 response
          表示HttpServletResponse對象,主要將JSP容器處理后的結果傳回到客戶端。

          1
          void addCookie( Cookie cookie ) 添加一個Cookie對象,保存客戶端信息。
          2 void
          addDateHeader( String name, long value )
          添加一個日期類型的HTTP頭信息,覆蓋同名的HTTP頭信息。
          3 void addHeader( String name,
          String value ) 添加一個HTTP頭,覆蓋同名的舊HTTP頭。
          4 void addIntHeader( String
          name, int value ) 添加一個整型的HTTP頭,覆蓋同名的舊HTTP頭。
          5 boolean
          containsHeader( String name ) 判斷指定的HTTP頭是否存在。
          6 String
          encodeRedirectURL( String url ) 對sendRedirect()方法使用的URL進行編碼。
          7
          String encodeURL( String url ) 將URL予以編碼,回傳包含session ID的URL。
          8 void
          flushBuffer() 強制把當前緩沖區(qū)的內(nèi)容發(fā)送到客戶端。
          9 int getBufferSize()
          取得以kb為單位的緩沖區(qū)大小。
          10 String getCharacterEncoding()
          獲取響應的字符編碼格式。
          11 String getContentType() 獲取響應的類型。
          12
          Locale getLocale() 獲取響應的Locale對象。
          13 ServletOutputStream
          getOutputStream() 返回客戶端的輸出流對象。
          14 PrintWriter getWriter()
          獲取輸出流對應的writer對象。
          15 boolean isCommitted()
          判斷服務器端是否已經(jīng)將數(shù)據(jù)輸出到客戶端。
          16 void reset()
          清空buffer中的所有內(nèi)容。
          17 void resetBuffer()
          情況buffer中所有的內(nèi)容,但是保留HTTP頭和狀態(tài)信息。
          18 void sendError( int xc, String
          msg )
          void sendError( int xc ) 發(fā)送錯誤,包括狀態(tài)碼和錯誤信息。
          19
          void sendRedirect( String locationg ) 把響應發(fā)送到另外一個位置進行處理。
          20 void
          setBufferSize( int size ) 設置以kb為單位的緩沖區(qū)大小。
          21 void
          setCharacterEncoding( String charset )設置響應使用的字符編碼格式。
          22 void
          setContentLength( int length ) 設置響應的BODY長度。
          23 void
          setContentType( String type ) 設置響應的類型。
          24 void setDateHeader(
          String name, long value ) 設置指定名稱的Data類型的HTTP頭的值。
          25 void
          setHeader( String name, String value ) 設置指定名稱的HTTP頭的值。
          26 void
          setIntHeader( String name, int value ) 設置指定名稱的int類型的HTTP頭的值。
          27
          void setStatus( int xc )
          設置響應狀態(tài)碼,新值會覆蓋當前值。
          成員(HTTP狀態(tài)碼):
          int SC_CONTINUE = 100
          int SC_SWITCHING_PROTOCOLS = 101
          int SC_OK = 200 int
          SC_NON_AUTHORITATIVE_INFORMATION = 203
          int SC_ACCEPTED = 202 int
          SC_CREATED = 201
          int SC_NO_CONTENT = 204 int SC_RESET_CONTENT =
          205
          int SC_PARTIAL_CONTENT = 206 int SC_MULTIPLE_CHOICES =
          300
          int SC_MOVED_PERMANENTLY = 301 int SC_MOVED_TEMPORARILY =
          302
          int SC_FOUND = 302 int SC_SEE_OTHER = 303
          int
          SC_NOT_MODIFIED = 304 int SC_USE_PROXY = 305
          int
          SC_TEMPORARY_REDIRECT = 307 int SC_BAD_REQUEST = 400
          int
          SC_UNAUTHORIZED = 401 int SC_PAYMENT_REQUIRED = 402
          int
          SC_FORBIDDEN = 403 int SC_NOT_FOUND = 404
          int
          SC_METHOD_NOT_ALLOWED = 405 int SC_NOT_ACCEPTABLE

          3.session對象
          session表示一個請求的javax.servlet.http.HttpSession對象。指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止。
          1
          long getCreationTime() 返回SESSION創(chuàng)建時間
          2 public String getId()
          返回SESSION創(chuàng)建時JSP引擎為它設的惟一ID號
          3 long getLastAccessedTime()
          返回此SESSION里客戶端最近一次請求時間
          4 int getMaxInactiveInterval()
          返回兩次請求間隔多長時間此SESSION被取消(ms)
          5 String[] getValueNames()
          返回一個包含此SESSION中所有可用屬性的數(shù)組
          6 void invalidate()
          取消SESSION,使SESSION不可用
          7 boolean isNew()
          返回服務器創(chuàng)建的一個SESSION,客戶端是否已經(jīng)加入
          8 void removeValue(String name)
          刪除SESSION中指定的屬性
          9 void setMaxInactiveInterval()
          設置兩次請求間隔多長時間此SESSION被取消(ms)

          4.out對象
          out
          對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。
          1 void
          clear() 清除緩沖區(qū)的內(nèi)容,但是不輸出到客戶端。
          2 void clearBuffer()
          清除緩沖區(qū)的當前內(nèi)容,并輸出到客戶端。
          3 void close()
          關閉輸出流,清除所有內(nèi)容。

          4 void flush() 輸出緩沖區(qū)里面的數(shù)據(jù)。
          5 int
          getBufferSize() 返回緩沖區(qū)以字節(jié)數(shù)的大小,如不設緩沖區(qū)則為0
          6 int getRemaining()
          返回緩沖區(qū)還剩余多少可用
          7 boolean isAutoFlush()
          返回緩沖區(qū)滿時,是自動清空還是拋出異常
          8. void newLine() 輸出一個換行字符。
          9.
          void print( boolean b ) 將指定類型的數(shù)據(jù)輸出到Http流,不換行
          10. void println(
          boolean b )
          將指定類型的數(shù)據(jù)輸出到Http流,并輸出一個換行符。
          11.
          Appendable append(
          char c )
          Appendable append( CharSequence cxq, int start, int end
          )
          Appendable append( CharSequence cxq
          )
          將一個字符或者實現(xiàn)了CharSequence接口的對象添加到輸出流的后面。
          成員:
          int
          DEFAULT_BUFFER = 0 - 缺省緩沖區(qū)大小
          int NO_BUFFER = -1 -
          writer是否處于緩沖輸出狀態(tài)
          int UNBOUNDED_BUFFER = -2 -
          是否限制緩沖區(qū)大小


          5.page對象
          page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例
          1
          class getClass 返回此Object的類
          2 int hashCode()
          返回此Object的hash碼
          3 boolean equals(Object obj)
          判斷此Object是否與指定的Object對象相等
          4 void copy(Object obj)
          把此Object拷貝到指定的Object對象中
          5 Object clone()
          克隆此Object對象
          6 String toString()
          把此Object對象轉換成String類的對象
          7 void notify() 喚醒一個等待的線程
          8
          void notifyAll() 喚醒所有等待的線程
          9 void wait(int timeout)
          使一個線程處于等待直到timeout結束或被喚醒
          10 void wait()
          使一個線程處于等待直到被喚醒
          11 void enterMonitor() 對Object加鎖
          12
          void exitMonitor() 對Object開鎖


          6.application對象
          applicaton
          表示一個javax.servlet.ServletContext對象。他實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它

          開始于服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之

          間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的

          訪問。服務器的啟動和關閉決定了application對象的生命。

          1
          Object getAttribute(String name) 返回給定名的屬性值
          2 Enumeration
          getAttributeNames() 返回所有可用屬性名的枚舉
          3 void setAttribute(String
          name,Object obj) 設定屬性的屬性值
          4 void removeAttribute(String name)
          刪除一屬性及其屬性值
          5 String getServerInfo()
          返回JSP(SERVLET)引擎名及版本號
          6 String getRealPath(String path)
          返回一虛擬路徑的真實路徑
          7 ServletContext getContext(String uripath)
          返回指定WebApplication的application對象
          8 int getMajorVersion()
          返回服務器支持的Servlet API的最大版本號
          9 int getMinorVersion() 返回服務器支持的Servlet
          API的最大版本號
          10 String getMimeType(String file)
          返回指定文件的MIME類型
          11 URL getResource(String path)
          返回指定資源(文件及目錄)的URL路徑
          12 InputStream getResourceAsStream(String
          path) 返回指定資源的輸入流
          13 RequestDispatcher getRequestDispatcher(String
          uripath) 返回指定資源的RequestDispatcher對象
          14 Servlet getServlet(String
          name) 返回指定名的Servlet
          15 Enumeration getServlets()
          返回所有Servlet的枚舉
          16 Enumeration getServletNames()
          返回所有Servlet名的枚舉
          17 void log(String msg)
          把指定消息寫入Servlet的日志文件
          18 void log(Exception exception,String msg)
          把指定異常的棧軌跡及錯誤消息寫入Servlet的日志文件
          19 void log(String msg,Throwable
          throwable) 把棧軌跡及給出的Throwable異常的說明信息
          寫入Servlet的

          日志文件。

          7.exception對象
          exception對象是一個例外對象,當一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應

          用此對象,就必須把isErrorPage設為true,否則無法編譯。他實際上是java.lang.Throwable的對象。

          8.pageContext對象
          pageContext表示一個javax.servlet.jsp.PageContext對象。pageContext對象提供了對JSP頁面內(nèi)所有的對象及

          名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值



          1
          JspWriter getOut() 返回當前客戶端響應被使用的JspWriter流(out)
          2 HttpSession
          getSession() 返回當前頁中的HttpSession對象(session)
          3 Object getPage()
          返回當前頁的Object對象(page)
          4 ServletRequest getRequest()
          返回當前頁的ServletRequest對象(request)
          5 ServletResponse getResponse()
          返回當前頁的ServletResponse對象(response)
          6 Exception getException()
          返回當前頁的Exception對象(exception)
          7 ServletConfig getServletConfig()
          返回當前頁的ServletConfig對象(config)
          8 ServletContext getServletContext()
          返回當前頁的ServletContext對象(application)
          9 void setAttribute(String
          name,Object attribute) 設置屬性及屬性值
          10 void setAttribute(String
          name,Object obj,int scope) 在指定范圍內(nèi)設置屬性及屬性值
          11 public Object
          getAttribute(String name) 取屬性的值
          12 Object getAttribute(String
          name,int scope) 在指定范圍內(nèi)取屬性的值
          13 public Object findAttribute(String
          name) 尋找一屬性,返回起屬性值或NULL
          14 void removeAttribute(String name)
          刪除某屬性
          15 void removeAttribute(String name,int scope)
          在指定范圍刪除某屬性
          16 int getAttributeScope(String name)
          返回某屬性的作用范圍
          17 Enumeration getAttributeNamesInScope(int
          scope) 返回指定范圍內(nèi)可用的屬性名枚舉
          18 void release()
          釋放pageContext所占用的資源
          19 void forward(String relativeUrlPath)
          使當前頁面重導到另一頁面
          20 void include(String relativeUrlPath)
          在當前位置包含另一文件


          9.config對象
          config表示一個javax.servlet.ServletConfig對象。
          config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參

          數(shù)(通過屬性名和屬性值構成)以及服務器的有關信息(通過傳遞一個ServletContext對象。)

          1
          ServletContext getServletContext() 返回含有服務器相關信息的ServletContext對象
          2
          String getInitParameter(String name) 返回初始化參數(shù)的值
          3 Enumeration
          getInitParameterNames()
          返回Servlet初始化所需所有參數(shù)的枚舉

          posted on 2012-04-22 15:28 hantai 閱讀(187) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 小金县| 临桂县| 永平县| 佛冈县| 巩义市| 玛多县| 阳春市| 博野县| 锡林浩特市| 张家界市| 财经| 隆德县| 历史| 昭通市| 西乡县| 长阳| 沁源县| 乌拉特中旗| 灵川县| 临泉县| 呼伦贝尔市| 衡南县| 安丘市| 乌拉特中旗| 克什克腾旗| 鄯善县| 荥阳市| 奎屯市| 巩义市| 北京市| 玉山县| 蒙山县| 根河市| 高唐县| 和硕县| 杂多县| 满洲里市| 瑞金市| 明溪县| 洪泽县| 鹿邑县|