javaWEB與JSP指令

來源:互聯網
上載者:User

標籤:param   code   共用資料   產生   end   服務   color   info   變化   

JSP三大指令
  一個jsp頁面中,可以有0~N個指令的定義!

1. page --> 最複雜:<%@page language="java" info="xxx"...%>
  * pageEncoding和contentType:
    > pageEncoding它指定當前jsp頁面的編碼,只要不說謊,就不會有亂碼!在伺服器要把jsp編譯成.java時需要使用pageEncoding!
    > contentType它表示添加一個回應標頭:Content-Type!等同與response.setContentType("text/html;charset=utf-8");
    > 如果兩個屬性只提供一個,那麼另一個的預設值為設定那一個。
    > 如果兩個屬性都沒有設定,那麼預設為iso
  * import:導包!可以出現多次
  * errorPage和isErrorPage
    > errorPage:當前頁面如果拋出異常,那麼要轉寄到哪一個頁面,由errorPage來指定
    > isErrorPage:它指定當前頁面是否為處理錯誤的頁面!當該屬性為true時,這個頁面會設定狀態代碼為500!而且這個頁面可以使用9大內建對象中的exception!//異常

 在web.xml配置異常
   

 <error-page>      <error-code>404</error-code>      <location>/error/errorPage.jsp</location>      </error-page>      <error-page>        <error-code>500</error-code>        <location>/error/errorPage.jsp</location>      </error-page>      <error-page>        <exception-type>java.lang.RuntimeException</exception-type>        <location>/index.jsp</location>      </error-page>

   * autoFlush和buffer
     > autoFlush指定jsp的輸出資料流緩衝區滿時,是否自動重新整理!預設為true,如果為false,那麼在緩衝區滿時拋出異常!
     > buffer指定緩衝區大小,預設為8kb,通常不需要修改!
   * isELIgnored:是否忽略EL運算式,預設值為false,不忽略,即支援!
   *page的其他指令(基本沒用)
     > language:指定當前jsp編譯後的語言類型,預設值為java。
     > info:資訊!
     > isThreadSafe:當前的jsp是否支援並發訪問!
     > session:當前頁面是否支援session,如果為false,那麼當前頁面就沒有session這個內建對象!
     > extends:讓jsp產生的servlet去繼承該屬性指定的類!

2. include --> 靜態包含
  * 與RequestDispatcher的include()方法的功能相似!
  * <%@include%> 它是在jsp編譯成java檔案時完成的!他們共同產生一個java(就是一個servlet)檔案,然後再產生一個class!
  * RequestDispatcher的include()是一個方法,包含和被包含的是兩個servlet,即兩個.class!他們只是把響應的內容在運行時合并了!
  * 作用:把頁面分解了,使用包含 的方式組合在一起,這樣一個頁面中不變的部分,就是一個獨立jsp,而我們只需要處理變化的頁面。
3. taglib --> 匯入標籤庫
  * 兩個屬性:
    > prefix:指定標籤庫在本頁面中的首碼!由我們自己來起名稱!
    > uri: 指定標籤庫的位置!
    > <%@taglib prefix="s" uri="/struts-tags"%> 首碼的用法<s:text>

====================================================================================================

九個內建對象

* out --> jsp的輸出資料流,用來向用戶端響應
* page --> 當前jsp對象! 它的參考型別是Object,即真身中有如下代碼:Object page = this;
* config --> 它對應真身中的ServletConfig對象!
* pageContext --> 一個頂9個!
* request --> HttpServletEequest
* response --> HttpServletResponse
* exception --> Throwable異常
* session --> HttpSession
* application --> ServletContext

1. pageContext
  * 一個頂9個!
  * Servlet中有三大域,而JSP中有四大域,它就是最後一個域對象!
    > ServletContext:整個應用程式
    > session:整個會話(一個會話中只有一個使用者)
    > request:一個請求鏈!
    > pageContext:一個jsp頁面!這個域是在當前jsp頁面和當前jsp頁面中使用的標籤之間共用資料!
          > 域對象
          > 代理其他域pageContext.setAttribute("xxx", "XXX", PageContext.SESSION_SCOPE);
          > 全域尋找pageContext.findAttribute("xxx");//從小到大,依賴尋找! 依次是page, erqust, session, application
          > 擷取其他8個內建對象。
===================================================================================================

xml的特殊配置

<Context reloadable="true">

在Context.xml中作用是自動載入Tomcat


JSP動作標籤
  這些jsp的動作標籤,與html提供的標籤有本質的區別。
  * 動作標籤是由tomcat(伺服器)來解釋執行!它與java代碼一樣,都是在伺服器端執行的!
  * html由瀏覽器來執行!
    * <jsp:forward>轉寄!它與RequestDispatcher的forward方法是一樣的,一個是在Servlet中使用,一個是在jsp中使用!
    * <jsp:include>包含:它與RequestDispatcher的include方法是一樣的,一個是在Servlet中使用,一個是在jsp中使用!
         ><%@include>和<jsp:include>有什麼不同!
    * <jsp:param>它用來作為forward和include的子標籤!用來給轉寄或包含的頁面傳遞參數!//用requstde 的getParameter

javaWEB與JSP指令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.