javascript
JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)
JSP的基本構(gòu)成:HTML文件+Java片斷+JSP標(biāo)簽
三大指令:page指令、include指令、taglib指令。
page指令:
1.language屬性:設(shè)置當(dāng)前頁面中編寫JSP腳本使用的語言,默認(rèn)值為java。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <%@page language="java"%>
2.contentType屬性:設(shè)置頁面響應(yīng)的MIME類型,通常被設(shè)置為text/html。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <%@page contentType="text/html"%>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?還可以設(shè)置JSP字符的編碼:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<%@page contentType="text/html;charset=gb2312"%>
3.import屬性:類似于Java中的import語句,用來向JSP文件中導(dǎo)入需要用到的包。
? ? ? ? ? ? ? ? ? ? ? ? ? 在page指令中可多次使用該屬性來導(dǎo)入多個包。例如:
? ? ? ? ? ? ? ? ? ? ? ? ? <%@page?import="java.util.*" %>
? ? ? ? ? ? ? ? ? ? ? ? ? <%@page import="java.text.*"%>
? ? ? ? ? ? ? ? ? ? ? ? ?或者通過逗號間隔,來導(dǎo)入多個包。
? ? ? ? ? ? ? ? ? ? ? ? ?<%@page import="java.util.*,java.text.*"%>
在JSP中已經(jīng)默認(rèn)導(dǎo)入了以下的包。
- java.lang.*
- java.servlet.*
- java.servlet.jsp.*
- java.servlet.http.*
4.extends屬性:
5.session屬性:該屬性默認(rèn)為ture,表示當(dāng)前頁面支持session。
6.buffer屬性:(緩沖)
7.autoFlush屬性:
8.isThreadSafe屬性:
9.info屬性:該屬性可設(shè)置為任意字符串,如當(dāng)前頁面的作者或其他有關(guān)的頁面信息。可通過Servlet.getServletInfo()方法來設(shè)置的字符串。例如:
<%@page info="This is index.jsp!"%>
<%=this.getServletInfo()%>
訪問頁面后,顯示如下結(jié)果: ? ? ?This is index.jsp!
10.errorPage屬性和isErrorPage屬性:
例如:若當(dāng)前應(yīng)用下包含index.jsp和error.jsp文件。
在index.jsp頁面中進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換操作,其代碼如下。
<%@page contentType="text/html;charset=utf-8" errorPage="error.jsp"%> <% String name="YXQ"; Integer.parseInt(name); //將字符串轉(zhuǎn)化為int型 %>上述代碼將一個非數(shù)字格式的字符串轉(zhuǎn)化為int型,因此將發(fā)生異常,最終進(jìn)入errorPage屬性指定的error.jsp頁面顯示錯誤信息。
在error.jsp頁面中需要將isErrorPage屬性設(shè)為true,然后才能調(diào)用exception對象輸出錯誤信息。
error.jsp頁面的代碼如下。
<%page contentType="text/html;charset=gb2312" isErrorPage="true"%> 出現(xiàn)錯誤!錯誤如下:<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>內(nèi)容顯示</td> </tr> <tr><td colspan="2"><%@include file="top.jsp"%></tr> </table>taglib指令:
六大標(biāo)簽:偽指令標(biāo)簽:<%@ ? ? ?%>
? ? ? ? ? ? ? ? ? ? 注釋標(biāo)簽:<%-- ? ?--%>
? ? ? ? ? ? ? ? ? ? 聲明標(biāo)簽:<%! ? ? ? %>
? ? ? ? ? ? ? ? ? ?動作標(biāo)簽:<jsp:action ?Name/>
? ? ? ? ? ? ? ? ? ? 腳本標(biāo)簽:<% ? ? ?%>
? ? ? ? ? ? ? ? ? ?表達(dá)式標(biāo)簽:<%= ? ? ?%>
九大內(nèi)置對象:?request、response、session、applicatin? ?config 、exception? ? ?out、page、pageContext、
四大作用域:
JSP作用域
JSP頁面中的對象,包括用戶創(chuàng)建的和JSP內(nèi)置對象都有一個范圍屬性。
Application——具有應(yīng)用程序作用域的對象,在應(yīng)用程序存活期間均可用。
Session——具有會話作用域的對象,在會話的存活期間可用。
Request——具有請求作用域的對象,在所有處理同一個請求的頁面內(nèi)部內(nèi)都可以訪問。
Page——具有頁面作用域的對象,在當(dāng)前頁內(nèi)可用
方法:setAttribute(String name,Object ?attribute)
? ? ? ? ? ?getAttribute(String ?name)
作用域范圍從大到小:
Allication作用域:范圍最大
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以被不同頁面、不同用戶共享
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以通過Allication內(nèi)置對象或ServletContext
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 訪問Allication作用域?qū)ο?/p>
Session作用域:范圍僅次于Allication作用域
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以被同一客戶端的請求訪問
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以通過Session內(nèi)置對象訪問Session作用域?qū)ο?/p>
Request作用域:范圍小于Session作用域
? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以被forward()方法轉(zhuǎn)向頁面或者include()包含頁面訪問
? ? ? ? ? ? ? ? ? ? ? ? ? ?可以通過request內(nèi)置對象訪問request作用域?qū)ο?/p>
page作用域:范圍最小
? ? ? ? ? ? ? ? ? ? ? 只能被創(chuàng)建對象的頁面訪問
? ? ? ? ? ? ? ? ? ? ? ?只能通過pageContext內(nèi)置對象訪問page作用域?qū)ο?/p>
?
JSP的七個動作指令:
jsp:forward:頁面跳轉(zhuǎn),其實(shí)就是request.getRequestDispatcher("index.jsp").forward(request, response)演化而來。
jsp:param:用于傳遞參數(shù),前提是必須與其他支持它的標(biāo)簽一起使用
jsp:include:用于動態(tài)在當(dāng)前的JSP中嵌入另一個JSP頁面(被包含的JSP頁面是通過方法來實(shí)現(xiàn)動態(tài)包含的,并且被包含的內(nèi)容只有<body>,相對靜態(tài)包含不會出現(xiàn)重復(fù)的聲明)
jsp:plugin:用于下載JavaBean或Applet到客戶端執(zhí)行
jsp:userBean:創(chuàng)建一個JavaBean實(shí)例,其實(shí)就是類似<% %>的java代碼塊中創(chuàng)建一個對象實(shí)例
jsp:setProperty:設(shè)置JavaBean實(shí)例的屬性值
jsp:getProperty:獲取JavaBean實(shí)例的屬性值
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河南热成了可南 高温致水泥路断裂翘起:地
- 下一篇: gradle idea java ssm