JSP基礎(chǔ)知識(shí)-創(chuàng)新互聯(lián)

JSP
一、概述
Java Server Pages,中文名叫java服務(wù)器頁面,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì)。
二、執(zhí)行過程
JSP基礎(chǔ)知識(shí)
三、JSP文件結(jié)構(gòu)及主要標(biāo)簽

創(chuàng)新互聯(lián)建站技術(shù)團(tuán)隊(duì)10余年來致力于為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)成都品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*“ %>
...
<HTML>
  <BODY>
其他 HTML 語言
<%
  符合JAVA 語法的 JAVA 語句
%>

  其他 HTML 語言

  </BODY>
</HTML>

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

五、JSP語法概述

JSP原始代碼中包含了JSP元素和Template(模板) data兩類 ,
Template data指的是JSP引擎不處理的部分,即標(biāo)記<%……%>以外的部分,例如代碼中的HTML的內(nèi)容等 ,這些數(shù)據(jù)會(huì)直接傳送到客戶端的瀏覽器
JSP元素則是指將由JSP引擎直接處理的部分,這一部分必須符合JSP語法,否則會(huì)導(dǎo)致編譯錯(cuò)誤。
JSP語法分為三種不同的類型
1、編譯器指令(DIRECTIVE) 例如: <%@ page import=“java.io.*” %>
編譯器指令包括“包含指令”, “頁指令”和“taglib指令”
它們包含在“<%@ %>”卷標(biāo)里。
兩個(gè)主要的指令是page與include。
(1)包含指令
include指令:向當(dāng)前頁中插入一個(gè)靜態(tài)文件的內(nèi)容。
JSP 語法格式如下:<%@ include file="relativeURL" %> 或<%@ include file="相對(duì)位置" %>
(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.},..."
需要導(dǎo)入的Java包的列表,這些包作用于程序段,表達(dá)式,以及聲明。下面的包在JSP編譯時(shí)已經(jīng)導(dǎo)入了,所以就不需要再指明了:
java.lang.
javax.servlet.javax.servlet.jsp.javax.servlet.http.*
c.errorPage="relativeURL"
設(shè)置處理異常事件的JSP文件。
d.isErrorPage="true | false"
設(shè)置此頁是否為出錯(cuò)頁,如果被設(shè)置為true,你就能使用exception對(duì)象
“<%@ page %>”指令作用于整個(gè)JSP頁面,同樣包括靜態(tài)的包含文件。但是“<%@ page %>”指令不能作用于動(dòng)態(tài)的包含文件,比如 “<jsp:include>”。
可以在一個(gè)頁面中用上多個(gè)“<%@ page %>”指令,但是其中的屬性只能用一次,不過也有例外,那就是import屬性。因?yàn)閕mport屬性和Java中的import語句類似(參照J(rèn)ava Language,import語句引入得是Java語言中的類),所以此屬性就能多用幾次。
(4)taglib指令
JSP語法
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
用于引入定制標(biāo)簽庫
屬性
a.uri="URIToTagLibrary"
Uniform Resource Identifier (URI)根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:
Uniform Resource Locator (URL), 由 RFC 2396 定義, 可以從以下位置查看 (http://www.hut.fi/u /jkorpela/rfc/2396/full.html)。
Uniform Resource Name (URN), 由 RFC 2396定義 一個(gè)相對(duì)或絕對(duì)的路徑 可以是標(biāo)簽庫描述文件。
b.prefix="tagPrefix"
表示標(biāo)簽在JSP中的名稱。
在自定義標(biāo)簽之前的前綴,比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。請(qǐng)不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的前綴,這些已被Sun公司聲明保留。
2、腳本語法(SCRIPTING)
(1)“HTML注釋”:<!— comments -->
JSP 語法格式如下:
<!-- comment [ <%= expression %> ] --> 或
<!-- 注釋 [<%= 表達(dá)式 %> ] -->
這種注釋發(fā)送到客戶端,但不直接顯示,在源代碼中可以查看到。
(2)“隱藏注釋”:<%-- comments --%>
JSP 語法格式: <%-- 注釋 --%>
不發(fā)送到客戶端。
(3)“聲明”<%!聲明%>
JSP 語法格式如下:<%! declaration; [ declaration; ] ... %> 或<%! 聲明; [聲明; ] ... %>
(4)“表達(dá)式”<%=表達(dá)式%>
用于在頁面上輸出信息,語法格式如下:<%= expression %> 或<%= 表達(dá)式 %>
(5)“腳本段”<% 代碼 %>
JSP 語法格式如下:<% code fragment %> 或<% 代碼 %>
3、動(dòng)作語法(ACTION) 例如: <jsp:forward>,<jsp:getProperty>,<jsp:include>
動(dòng)作語法包括<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 … />]”指可以有多個(gè)“<jsp:param/>”標(biāo)記。)
屬性:
a、page="{relativeURL | <%= expression %>}"
這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說明你將要定向的文件或URL。這個(gè)文件可以是JSP,程序段,或者其它能夠處理request對(duì)象的文件(如asp,cgi,php)。
b.<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
向一個(gè)動(dòng)態(tài)文件發(fā)送一個(gè)或多個(gè)參數(shù),這個(gè)文件必須是動(dòng)態(tài)文件。如果想傳遞多個(gè)參數(shù),可以在一個(gè)JSP文件中使用多個(gè)“<jsp:param>”;“name”指定參數(shù)名,“value”指定參數(shù)值。
注意:
“<jsp:forward>”標(biāo)簽從一個(gè)JSP文件向另一個(gè)文件傳遞一個(gè)包含用戶請(qǐng)求的request對(duì)象?!?lt;jsp:forward>”標(biāo)簽以后的代碼,將不能執(zhí)行。
(2)<jsp:include>
包含一個(gè)靜態(tài)或動(dòng)態(tài)文件.
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 … />]”指可以有多個(gè)“<jsp:param/>”標(biāo)記。)
屬性:
a.page="{relativeURL | <%=expression %>}"
參數(shù)為一相對(duì)路徑,或者是代表相對(duì)路徑的表達(dá)式。
b.flush="true"
這里必須使用flush="true",不能使用false值。而缺省值為false 。?
(3)<jsp:useBean>
創(chuàng)建一個(gè)Bean實(shí)例并指定它的名字和作用范圍。
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"
在所定義的范圍中確認(rèn)Bean的變量,使之能在后面的程序中使用此變量名來分辨不同的Bean ,這個(gè)變量名對(duì)大小寫敏感,必須符合所使用的腳本語言的規(guī)定,這個(gè)規(guī)定在Java Language 規(guī)范已經(jīng)寫明。如果Bean已經(jīng)在別的“<jsp:useBean>”標(biāo)記中創(chuàng)建,則當(dāng)使用這個(gè)已經(jīng)創(chuàng)建過Bean時(shí),id的值必須與原來的那個(gè)id值一致;否則則意味著創(chuàng)建了同一個(gè)類的兩個(gè)不同的對(duì)象。?
b.scope="page | request | session | application"
Bean存在的范圍以及id變量名的有效范圍。缺省值是page,以下是詳細(xì)說明:
page - 能在包含“<jsp:useBean>”元素的JSP文件以及此文件中的所有靜態(tài)包含文件中使用這個(gè)Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。
request - 在任何執(zhí)行相同請(qǐng)求的Jsp文件中使用這個(gè)Bean,直到頁面執(zhí)行完畢向客戶端發(fā)回響應(yīng)或轉(zhuǎn)到另一個(gè)文件為止。能夠使用Request對(duì)象訪問這個(gè)Bean,比如request.getAttribute(beanInstanceName)。
session - 從創(chuàng)建Bean開始,就能在任何使用相同session的jsp文件中使用這個(gè)Bean。這個(gè)Bean存在于整個(gè)Session生存周期內(nèi),任何在分享此Session的Jsp文件都能使用同一Bean。注意在創(chuàng)建這個(gè)Bean的Jsp文件中“<% @ page %>”指令中必須指定“session="true"”。
application - 從創(chuàng)建Bean開始,就能在任何使用相同application的Jsp文件中使用Bean。這個(gè)Bean存在于整個(gè)application生存周期內(nèi),任何在分享此application的Jsp文件都能使用同一Bean.
c.beanName="{package.class | <%= expression %>}" type="package.class"
使用java.beans.Beans.instantiate方法來從一個(gè)class或串行化的模板中實(shí)例化一個(gè)Bean,同時(shí)指定Bean的類型。 Beans.instantiate方法將檢查此名稱是否表示一個(gè)類或一個(gè)串行化模板。如果這個(gè)Bean是被串行化的,那么Beans.instantiate方法將通過使用一個(gè)類裝載器讀取串行化格式(類似package.class.ser)。
beanName可以是package和class,也可以是表達(dá)式,它的值會(huì)傳給Beans.instantiate方法。type的值可以和Bean相同,也可以是它的基類,或者是它所實(shí)現(xiàn)的接口。 ?package和 class 名字區(qū)分大小寫。
(4)<jsp:getProperty>
JSP 語法格式如下:
<jsp:getProperty name="beanInstanceName" property="propertyName" />
屬性:
a.name="beanInstanceName" bean的名字,由<jsp:useBean>指定。
b.property="propertyName" 所指定的Bean的屬性名。
(5)<jsp:setProperty>
設(shè)置Bean的屬性值.
JSP 語法格式如下:

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

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

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

本文名稱:JSP基礎(chǔ)知識(shí)-創(chuàng)新互聯(lián)
分享路徑:http://bm7419.com/article8/gddip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)做網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、標(biāo)簽優(yōu)化網(wǎng)站設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)