關於JSP---三大指令


 

 

  •   JSP三大指令:
    1.   page    ------>最復雜的一個指令,屬性很多,常用的像import,language,pageEncoding等等
    2.   include-------->靜態包含,一般在一個網站不同網頁上把相同的元素單獨寫在一個jsp中,其他頁面直接用該命令導入,能大大減少重復代碼提高訪問速度
    3.   taglib --------->一般用於導入標簽庫,比如jsp的jstl標簽庫,使用之前必須有此標簽.
  •   JSP指令格式:
 <%@page language="java"  pageEncoding="utf-8"%>

 以page指令為例,其他標簽類同,可以寫任意多個屬性,甚至不寫,習慣性放在jsp頁面最上方,但是並不是必須寫在頁頭,可以寫在jsp頁面任意位置.

  •   page常用屬性:
      1. pageEncoding:  指定當前jsp頁面的編碼,在服務器(如tomcat)要把jsp編譯成.java時需要使用pageEncoding
      2. contentType:                添加一個響應頭,比如contentType="text/html;charset=utf-8"

         注意:如果這兩個標簽只設置了一個,另一個默認成已設置的那個,如果都沒設置,默認編碼是iso,

          3.import:              用於導包,如import="java.util.*";可以出現多個import. 

          4.errorPage:           設置出錯時候的跳轉頁面,如errorPage="error.jsp"如果當前頁面出現異常,就轉發到error.jsp,注意是轉發,地址欄不會有變化.

          這里拓展一下,web.xml配置錯誤頁面的知識,如果我們希望當出現比如404錯誤時,頁面能夠跳轉到我們自定義的jsp上去,應該這樣配置,在web.xml中添加:

 <error-page>
         <error-code>404</error-code>
          <location>/myError404.jsp</location>
</error-page>

 

 page中還有許多屬性,比如language,info,並沒有什么用處,至於其他的我貌似見都沒見過了,不再贅述.

  • include指令: 靜態包含,把另一個頁面包含在當前頁面中
  • 一個頁面包含另一個頁面,將兩個頁面合二為一,在什么時間合二為一的?頁面進行轉換Servlet的時候將兩者合二為一的。 
    這種方式有長處也有短處,第一點:雖然訪問兩個資源文件,但是只會生成一個Servlet,稱作靜態包含(只會生成一個Servlet,因為轉換的時候把其他網頁的信息加載進來了)。第二點:如果是Tomcat5.0,被包含頁面發生改變,包含頁面體現不出來。JavaEE的版本是隨着jsp版本和Servlet版本變化的,Tomcat版本越高,支持的Jsp和Servlet版本越高。Tomcat5.0以前被包含頁面發生改變,包含頁面體現不出來。//理解 
    所以在以前include指令一般不用,但是現在Tomcat6.0用,Tomcat6.0支持include指令。第三點:包含頁面可以訪問被包含頁面中的變量。在被包含頁面中聲明的變量在包含中頁面中是可以使用的。第四點:包含頁面無法向被包含頁面傳參。需要大量復用的東西需要專門生成一個頁面進行處理。 
< %@ include file=”/b.jsp” %>
  • 它是在jsp編譯成java文件時完成的,他們共同生成一個Java文件,一個.class文件, 引入的頁面與當前頁面融為一體,因為是編譯時期就和合並,所以 file的內容不能夠是變量.

   在jsp中有一個動作標簽也是include,它指的是動態導入,在頁面請求時才合並,page的內容可以是變量.

<jsp:include page=”/b.jsp” flush=”true” /> 
  • taglib: 導入標簽庫
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  1. prefix: 指定標簽庫在當前頁面中的前綴,由我們自定義即可.
  2. uri:    指定標簽庫的位置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM