jsp jsp常用指令


jsp指令是為jsp引擎設計的,他們並不直接產生任何可見輸出,而只是告訴引擎如何處理jsp頁面中的其余部分。 ##jsp中的指令 ###page指令 ###include指令 ###taglib指令

jsp指令的基本語法 格式:<%@ 指令 屬性名="值" %>
<%@page contextType="text/html;charset=gb2312" %> 如果指令中有多個屬性,這多個屬性可以寫在一個指令中,也可以分開
<%@page contentType="text/html; charset=gb2312"%>
<%@page import="java.util.Date"%>
也可以這樣寫
<%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>

###page指令

  page指令用於定義jsp頁面中的各種屬性,無論page指令出現在jsp頁面中什么地方,它作用的都是整個jsp頁面,最好還是放在jsp的起始位置
 
  page指令的屬性
  
 <%@ page 
     [ language="java" ] 
     [ extends="package.class" ] 
     [ import="{package.class | package.*}, ..." ] 
     [ session="true | false" ] 
     [ buffer="none | 8kb | sizekb" ] 
     [ autoFlush="true | false" ] 
     [ isThreadSafe="true | false" ] 
     [ info="text" ] 
     [ errorPage="relative_url" ] 
     [ isErrorPage="true | false" ] 
     [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] 
     [ pageEncoding="characterSet | ISO-8859-1" ] 
             [ isELIgnored="true | false" ] 
 %>

###import屬性

   jsp頁面中會自動的導入下面的包 java.lang.*;javax.servlet.*;javax.servlet.jsp.*; javax.servlet.http.*;
  可以在一條page指令中引入多個類或包,其中的每個包或類之間使用逗號(,)分割
  <%@ page import="java.util.*,java.io.*"%>
  也可以使用多條page指令的import屬性來分別進入各個包或類
  <%@ page import="java.io.*" %>
  <%@ page import="java.sql.*"%>

###errorPage屬性

 errorpage屬性的設置值,必須使用相對路徑,如果以"/"開頭,表示相對於當前的web應用程序的根目錄(注意不是站點目錄)
否則表示相對於當前頁面。
 error-page 元素有3個子元素<error-code> <exception-type> <location> 
 error-code 子元素指定錯誤的狀態碼,例如<error-code> 404</error-code>
 exception-type 子元素指定異常類的完全限定名<exception-type>java.lang.ArithmeticException</exception-type>
 location 子元素指定以"/"開頭的錯誤處理頁面的路徑<location>/ErrorPage/404.jsp</errorPage>

<%@page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="/error/404.jsp"%>
<html>
  <head>
    <title>錯誤信息友好提示!</title>
  </head>
  <body>
    對不起,出錯了,請聯系管理員解決!
  </body>
</html>

在web.xml使用<error-page>標簽為整個web應用設置錯誤處理頁面
 <web-app version="3.0" 
  xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <display-name></display-name>    
   <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   <!--針對404錯誤處理頁面-->
   <error-page>
      <error-code>404</error-code>
      <location>/error/404.jsp</location>
   </error-page>
</web-app>

###isErrorPage屬性

  該屬性顯示的聲明頁面是錯誤頁面
  如果某一個jsp頁面作為系統錯誤處理頁面,那么建議將page指令的isErrorPage屬性(默認為false)設置為ture,來顯示的聲明這個jsp頁面是一個錯誤處理頁面
如果沒有設置isErrorPage=true。那么jsp頁面中就無法使用exception對象,因為在Servlet的_jspServlet方法中不會聲明一個exception對象
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true"%>
<html>
  <body>
    對不起出錯了!
    異常信息如下:<%= exception.getMessage()%>
    <!--語句exception.getMessage()后面沒有";"-->
  </body>
</html>
​

###include指令

 include指令有兩種形式:
    @include指令
    <jsp:include>指令
@inclide指令
  @include可以包含任意文件,當然,只是把文件的內容包含進來。include指令用於引入其他jsp頁面,如果include指令引入了其他的jsp頁面,那么jsp引擎將把這兩個JSP翻譯成一個servlet.所以include指令引入通常也被稱之為靜態引入
 
  include指令語法
   <%@ include file="relativeURL"%> 其中file屬性用於指定被引入文件的路徑。路徑"/"開頭,表示代表當前web應用。
  include 指令細節注意問題:
   被引入的文件必須遵循jsp語法
   被引入的文件可以使用任意擴展名。即使其擴展名是html,jsp引擎也會按照處理jsp頁面的方式處理它里面的內容,為了見明知意,jsp規范建議使用jspf
   由於使用include指令將會涉及2個jsp頁面,並會把2個jsp翻譯成一個servlet,所以這2個jsp頁面的指令不能沖突。

 include指令使用范例
 
head.jspf
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <h1 style="color:red;">網頁頭部</h1>
​
 foot.jspf
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <h1 style="color:blue;">網頁尾部</h1>
​
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
   <head>
     <title>jsp的Include指令測試</title>
   </head>   
   <body>
   <%--使用include標簽引入引入其它JSP頁面--%>
     <%@include file="/jspfragments/head.jspf" %>
     <h1>網頁主體內容</h1>
     <%@include file="/jspfragments/foot.jspf" %>
   </body>
 </html>

###@include指令

 使用@include可以包含任意的內容,文件的后綴是什么都無所謂。這種把別的文件包含到自身頁面的@include語句就叫做靜態包含,作用只是把別的頁面內容包含進來,屬於靜態包含。

###jsp:include

jsp:include 指令為動態包含,如果被包含的頁面是jsp,則先處理之后再將結果包含,而如果包含的是非*.jsp文件,則只是把文件內容靜態包含進來。

###jsp:taglib 指令

 使用<%@ taglib uri="標簽庫的uri" prefix="標簽的使用前綴"%>指令引入要使用的標簽庫。


免責聲明!

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



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