中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP基礎知識

發布時間:2020-07-21 06:45:40 來源:網絡 閱讀:273 作者:Bighead0829 欄目:開發技術

JSP
一、概述
Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計。
二、執行過程
JSP基礎知識
三、JSP文件結構及主要標簽

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*“ %>
...
<HTML>
  <BODY>
其他 HTML 語言
<%
  符合JAVA 語法的 JAVA 語句
%>

  其他 HTML 語言

  </BODY>
</HTML>

四、內置對象
1、request
request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用于接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。
2、response
response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。
3、session
(1)session:從一個客戶打開瀏覽器并連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間反復連接,反復刷新一個頁面,服務器應當通過某種辦法知道這是同一個客戶,這就需要session對象。
(2)session對象的ID:當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎產生一個session對象,同時分配一個String類型的ID號,JSP引擎同時將這個ID號發送到客戶端,存放在Cookie中,這樣session對象和客戶之間就建立了一一對應的關系。當客戶再訪問連接該服務器的其他頁面時,不再分配給客戶新的session對象,直到客戶關閉瀏覽器后,服務器端該客戶的session對象才取消,并且和客戶的會話對應關系消失。當客戶重新打開瀏覽器再連接到該服務器時,服務器為該客戶再創建一個新的session對象。
(3)session對象存在一定時間過期問題,所以存在session中的名值對會在一定時間后失去,可以通過更改session有效時間來避免這種情況。同時編程時盡量避免將大量有效信息存儲在session中,request是一個不錯的替代對象。
4、application
(1)概述:
服務器啟動后就產生了這個application對象,當客戶在所訪問的網站的各個頁面之間瀏覽時,這個application對象都是同一個,直到服務器關閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共享這個內置的application對象。
(2)application對象常用方法:
a、public void setAttribute(String key,Object obj): 將參數Object指定的對象obj添加到application對象中,并為添加的對象指定一個索引關鍵字。
b、public Object getAttribute(String key): 獲取application對象中含有關鍵字的對象。
5、out
out 對象用于在Web瀏覽器內輸出信息,并且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢后,要及時關閉輸出流。
6、page
page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似于Java編程中的 this 指針。
7、config
config 對象的主要作用是取得服務器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。
8、exception
java.lang.Throwable 的實例,該實例代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時,該對象才可以使用。常用的方法有getMessage()和printStackTrace()等。
9、pageContext
pageContext 對象的作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

五、JSP語法概述

JSP原始代碼中包含了JSP元素和Template(模板) data兩類 ,
Template data指的是JSP引擎不處理的部分,即標記<%……%>以外的部分,例如代碼中的HTML的內容等 ,這些數據會直接傳送到客戶端的瀏覽器
JSP元素則是指將由JSP引擎直接處理的部分,這一部分必須符合JSP語法,否則會導致編譯錯誤。
JSP語法分為三種不同的類型
1、編譯器指令(DIRECTIVE) 例如: <%@ page import=“java.io.*” %>
編譯器指令包括“包含指令”, “頁指令”和“taglib指令”
它們包含在“<%@ %>”卷標里。
兩個主要的指令是page與include。
(1)包含指令
include指令:向當前頁中插入一個靜態文件的內容。
JSP 語法格式如下:<%@ include file="relativeURL" %> 或<%@ include file="相對位置" %>
(2)頁指令
“Page”指令用于定義JSP文件中的全局屬性。
JSP 語法格式如下:

<%@ 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="relativeURL" ] 
[ contentType="mimeType 
    [;charset=characterSet]" | "text/html
    ; charset=ISO-8859-1" ] 
[ isErrorPage="true | false" ] 
%> 

屬性:
a.language="java"
聲明腳本語言的種類,目前只能用"java" 。
b.import="{package.class | package. },..."
需要導入的Java包的列表,這些包作用于程序段,表達式,以及聲明。下面的包在JSP編譯時已經導入了,所以就不需要再指明了:
java.lang.
javax.servlet. javax.servlet.jsp. javax.servlet.http.*
c.errorPage="relativeURL"
設置處理異常事件的JSP文件。
d.isErrorPage="true | false"
設置此頁是否為出錯頁,如果被設置為true,你就能使用exception對象
“<%@ page %>”指令作用于整個JSP頁面,同樣包括靜態的包含文件。但是“<%@ page %>”指令不能作用于動態的包含文件,比如 “<jsp:include>”。
可以在一個頁面中用上多個“<%@ page %>”指令,但是其中的屬性只能用一次,不過也有例外,那就是import屬性。因為import屬性和Java中的import語句類似(參照Java Language,import語句引入得是Java語言中的類),所以此屬性就能多用幾次。
(4)taglib指令
JSP語法
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
用于引入定制標簽庫
屬性
a.uri="URIToTagLibrary"
Uniform Resource Identifier (URI)根據標簽的前綴對自定義的標簽進行唯一的命名,URI可以是以下的內容:
Uniform Resource Locator (URL), 由 RFC 2396 定義, 可以從以下位置查看 (http://www.hut.fi/u /jkorpela/rfc/2396/full.html)。
?Uniform Resource Name (URN), 由 RFC 2396定義 一個相對或絕對的路徑 可以是標簽庫描述文件。
b.prefix="tagPrefix"
表示標簽在JSP中的名稱。
在自定義標簽之前的前綴,比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。請不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴,這些已被Sun公司聲明保留。
2、腳本語法(SCRIPTING)
(1)“HTML注釋”:<!— comments -->
JSP 語法格式如下:
<!-- comment [ <%= expression %> ] --> 或
<!-- 注釋 [<%= 表達式 %> ] -->
這種注釋發送到客戶端,但不直接顯示,在源代碼中可以查看到。
(2)“隱藏注釋”:<%-- comments --%>
JSP 語法格式: <%-- 注釋 --%>
?不發送到客戶端。
(3)“聲明”<%!聲明%>
JSP 語法格式如下:<%! declaration; [ declaration; ] ... %> 或<%! 聲明; [聲明; ] ... %>
(4)“表達式”<%=表達式%>
用于在頁面上輸出信息,語法格式如下:<%= expression %> 或<%= 表達式 %>
(5)“腳本段”<% 代碼 %>
JSP 語法格式如下:<% code fragment %> 或<% 代碼 %>
3、動作語法(ACTION) 例如: <jsp:forward>,<jsp:getProperty>,<jsp:include>
動作語法包括<jsp:forward>,<jsp:include>,<jsp:plugin>, <jsp:getProperty>,<jsp:setProperty>和<jsp:useBean>。
(1)<jsp:forword>
JSP 語法格式如下:
a.<jsp:forward page={"relativeURL" | "<%= expression %>"} />
b.<jsp:forward page={"relativeURL" | "<%= expression %>"} >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
[<jsp:param … />]
</jsp:forward>
(“[<jsp:param … />]”指可以有多個“<jsp:param/>”標記。)
屬性:
a、page="{relativeURL | <%= expression %>}"
這里是一個表達式或是一個字符串用于說明你將要定向的文件或URL。這個文件可以是JSP,程序段,或者其它能夠處理request對象的文件(如asp,cgi,php)。
b.<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
向一個動態文件發送一個或多個參數,這個文件必須是動態文件。如果想傳遞多個參數,可以在一個JSP文件中使用多個“<jsp:param>”;“name”指定參數名,“value”指定參數值。
注意:
“<jsp:forward>”標簽從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象。“<jsp:forward>”標簽以后的代碼,將不能執行。
(2)<jsp:include>
包含一個靜態或動態文件.
?JSP 語法格式如下:
a.<jsp:include page="{relativeURL | <%=expression%>}" ? flush="true" />
b.<jsp:include page="{relativeURL | <%=expression %>}" ? flush="true" >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
[<jsp:param …/>]
</jsp:include>
(“[<jsp:param … />]”指可以有多個“<jsp:param/>”標記。)
屬性:
a.page="{relativeURL | <%=expression %>}"
參數為一相對路徑,或者是代表相對路徑的表達式。
b.flush="true"
這里必須使用flush="true",不能使用false值。而缺省值為false 。?
(3)<jsp:useBean>
創建一個Bean實例并指定它的名字和作用范圍。
?JSP 語法格式如下:

<jsp:useBean 
? ? ? ? id="beanInstanceName" 
? ? scope="page | request | session | application" 
? ? ? ? { 
? ? ? ? ? ? class="package.class" | 
? ? ? ? ? ? type="package.class" | 
? ? ? ? ? ? class="package.class" type="package.class" | 
? ? ? ? ? ? beanName="{package.class | <%= expression %>}" 
type="package.class" 
? ? ? ? } 
? ? ? ? { 
? ? ? ? ? ? /> | 
? ? ? ? ? ? > other elements </jsp:useBean>
? ? ? ? } 

屬性
a.id="beanInstanceName"
在所定義的范圍中確認Bean的變量,使之能在后面的程序中使用此變量名來分辨不同的Bean ,這個變量名對大小寫敏感,必須符合所使用的腳本語言的規定,這個規定在Java Language 規范已經寫明。如果Bean已經在別的“<jsp:useBean>”標記中創建,則當使用這個已經創建過Bean時,id的值必須與原來的那個id值一致;否則則意味著創建了同一個類的兩個不同的對象。?
b.scope="page | request | session | application"
Bean存在的范圍以及id變量名的有效范圍。缺省值是page,以下是詳細說明:
page - 能在包含“<jsp:useBean>”元素的JSP文件以及此文件中的所有靜態包含文件中使用這個Bean,直到頁面執行完畢向客戶端發回響應或轉到另一個文件為止。
request - 在任何執行相同請求的Jsp文件中使用這個Bean,直到頁面執行完畢向客戶端發回響應或轉到另一個文件為止。能夠使用Request對象訪問這個Bean,比如request.getAttribute(beanInstanceName)。
session - 從創建Bean開始,就能在任何使用相同session的jsp文件中使用這個Bean。這個Bean存在于整個Session生存周期內,任何在分享此Session的Jsp文件都能使用同一Bean。注意在創建這個Bean的Jsp文件中“<% @ page %>”指令中必須指定“session="true"”。
application - 從創建Bean開始,就能在任何使用相同application的Jsp文件中使用Bean。這個Bean存在于整個application生存周期內,任何在分享此application的Jsp文件都能使用同一Bean.
c.beanName="{package.class | <%= expression %>}" type="package.class"
使用java.beans.Beans.instantiate方法來從一個class或串行化的模板中實例化一個Bean,同時指定Bean的類型。 Beans.instantiate方法將檢查此名稱是否表示一個類或一個串行化模板。如果這個Bean是被串行化的,那么Beans.instantiate方法將通過使用一個類裝載器讀取串行化格式(類似package.class.ser)。
beanName可以是package和class,也可以是表達式,它的值會傳給Beans.instantiate方法。type的值可以和Bean相同,也可以是它的基類,或者是它所實現的接口。 ?package和 class 名字區分大小寫。
(4)<jsp:getProperty>
JSP 語法格式如下:
<jsp:getProperty name="beanInstanceName" property="propertyName" />
?屬性:
a.name="beanInstanceName" bean的名字,由<jsp:useBean>指定。
b.property="propertyName" 所指定的Bean的屬性名。
(5)<jsp:setProperty>
設置Bean的屬性值.
?JSP 語法格式如下:

<jsp:setProperty 
? ? ? ? name="beanInstanceName" 
? ? ? ? { 
? ? ? ? ? ? property= "*" ? | 
? ? ? ? ? ? property="propertyName" [ param="parameterName" ] ? | 
? ? ? ? ? ? property="propertyName" value="{string | <%= expression %>}" 
? ? ? ? } 

a.name="beanInstanceName"
表示已經在“<jsp:useBean>”中創建的Bean實例的名字。
b.property="*"
儲存用戶在jsp輸入的所有值,用于匹配Bean中的屬性。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

渭南市| 普陀区| 宝丰县| 荃湾区| 南汇区| 宜城市| 通江县| 新源县| 海城市| 卢氏县| 仙居县| 内丘县| 鹤壁市| 苍梧县| 灵武市| 海城市| 嘉鱼县| 富顺县| 葵青区| 柳林县| 图片| 库伦旗| 珲春市| 镶黄旗| 香港| 雷山县| 犍为县| 华宁县| 井冈山市| 南昌县| 辽源市| 隆德县| 自治县| 福安市| 穆棱市| 岗巴县| 龙井市| 恭城| 洛阳市| 淳化县| 西乌珠穆沁旗|