欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
第五課 JSP技術(shù)

第五課 JSP技術(shù)

   

5.1 JSP簡(jiǎn)介
5.2 JSP示例
5.3 JSP 語(yǔ)法
5.4 JSP API

  5.1JSP簡(jiǎn)介JSP(JavaServer Pages)是一種基于Java的腳本技術(shù)。在JSP 的眾多優(yōu)點(diǎn)之中,其中之一是它能將HTML 編碼從 Web 頁(yè)面的業(yè)務(wù)邏輯中有效地分離出來(lái)。用 JSP 訪(fǎng)問(wèn)可重用的組件,如 Servlet、JavaBean和基于 Java 的 Web 應用程序。JSP 還支持在 Web 頁(yè)面中直接嵌入 Java 代碼??捎脙煞N方法訪(fǎng)問(wèn)JSP 文件:瀏覽器發(fā)送 JSP 文件請求、發(fā)送至 Servlet 的請求。
1. JSP 文件訪(fǎng)問(wèn) Bean 或其它能將生成的動(dòng)態(tài)內容發(fā)送到瀏覽器的組件。圖5-1說(shuō)明了該JSP 訪(fǎng)問(wèn)模型。當 Web 服務(wù)器接收到一個(gè) JSP 文件請求時(shí),服務(wù)器將請求發(fā)送至 WebSphere應用服務(wù)器。WebSphere應用服務(wù)器對 JSP 文件進(jìn)行語(yǔ)法分析并生成 Java 源文件(被編譯和執行為 Servlet)。Java 源文件的生成和編譯僅在初次調用Servlet 時(shí)發(fā)生,除非已經(jīng)更新了原始的 JSP 文件。在這種情況下,WebSphere應用服務(wù)器 將檢測所做的更新,并在執行它之前重新生成和編譯Servlet。



圖5-1:瀏覽器發(fā)送 JSP 文件請求

  2. 發(fā)送至 Servlet的請求生成動(dòng)態(tài)內容,并調用 JSP 文件將內容發(fā)送到瀏覽器。圖5-2說(shuō)明了該訪(fǎng)問(wèn)模型。該訪(fǎng)問(wèn)模型使得將內容生成從內容顯示中分離出來(lái)更為方便。WebSphere應用服務(wù)器支持 HttpServiceRequest 對象和 HttpServiceResponse 對象的一套新方法。這些方法允許調用的Servlet 將一個(gè)對象放入(通常是一個(gè) Bean)請求對象中,并將該請求傳遞到另一個(gè)頁(yè)面(通常是一個(gè) JSP 文件)以供顯示。調用的頁(yè)面從請求對象中檢索Bean, 并用 JSP 來(lái)生成客戶(hù)機端的 HTML。



圖5-2:發(fā)送至 Servlet 的請求

  5.2JSP示例
瀏覽器通過(guò)一個(gè)Web 頁(yè)面中的HTML表單請求一個(gè)servlet(PopulateBeanServlet),該servlet創(chuàng )建一個(gè)名為dataBean 的DataBean 實(shí)例,并調用 JSP 文件將內容發(fā)送到瀏覽器。Servlet 示例和 JSP文件示例說(shuō)明了啟用內容分離的 JSP 訪(fǎng)問(wèn)模型。
A. Servlet 是由下列Web 頁(yè)面中的 HTML 表單來(lái)調用的。
<HTML>
<BODY>
<H1>運行 PopulateBeanServlet</H1>
<P>您是否希望運行 PopulateBeanServlet?
<FORM action="/servlet/PopulateBeanServlet"method="GET">
<INPUT type="SUBMIT"value="Yes">
<INPUT type="SUBMIT"value="No">
</FORM>
</BODY>
</HTML>
B. 被請求的servlet為PopulateBeanServlet,其源代碼如下:
/******************************************************************
*Servlet 示例:PopulateBeanServlet.java
*這個(gè)servlet創(chuàng )建一個(gè)名為 dataBean 的DataBean實(shí)例,設置dataBean的若干個(gè)屬性,
*將dataBean放置在當前“請求”對象中,
*調用 JSP 文件(DisplayData.jsp)來(lái)格式化并顯示dataBean的數據
********************************************************************/
import java.io.*;
import java.beans.Beans;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.ejb.CreateException;

  publicclass PopulateBeanServlet extends HttpServlet {
public void Service(HttpServletRequestreq, HttpServletResponse res)
throws ServletException, IOException{
try {
dataBean = (DataBean) Beans.instantiate(this.getClass().getClassLoader(),"DataBean");
}
catch (Exception ex) {
throw new ServletException("Can'tcreate BEAN of class DataBean: "
metaData.setSQL(getSQLString());
}
// Set some Bean properties (contentgeneration)
dataBean.setProp1("Value1");
dataBean.setProp2("Value2");
dataBean.setProp3("Value3");
// To send the Bean to a JSP filefor content formatting and display
// 1) 將dataBean放置在當前“請求”對象中,
((com.sun.server.http.HttpServiceRequest)req).setAttribute("dataBean", dataBean);
// 2) 使用callPage 方法調用JSP文件,文件名為DisplayData.jsp,并把請求對象傳遞給JSP。
((com.sun.server.http.HttpServiceResponse)res).callPage("/DisplayData.jsp", req);
} //end of service mehtod
} /* end of class PopulateBeanServlet*/

  C.被調用的JSP文件為DisplayData.jsp,其內容如下:
<!-- 該 JSP 文件獲得在請求對象中傳遞的 dataBean,并顯示該Bean 的屬性。 -->
<html>
<head>
<title>Bean Data Display</title>
</head>

<!-- Get the Bean using theBEAN tag -->
<bean name="dataBean"type="DataBean" introspect="no" create="no"scope="request">
</bean>
<body>
<!-- There are three ways toaccess Bean properties -->
<!-- Using a JSP scriptlet-->
<% out.println("The valueof Bean property 1 is " + dataBeans.getProp1());
%>

<!-- Using a JSP expression-->
<p>The value of Bean property2 is
<%= dataBean.getProp2() %></p>

<!--Using the INSERT tag -->
<p>The value of Bean property3 is
<insert bean=dataBean property=prop3default="No property value" >
</insert></p>

</body>
</html>

  5.3JSP 語(yǔ)法
JSP 文件(擴展名為 .jsp)可以包含指令(或稱(chēng)為指示語(yǔ)句)、Class-wide變量和方法、直接插入的 Java 代碼(scriptlet)、訪(fǎng)問(wèn) JavaBean、變量數據的 HTML 模型、變量數據的Java 表達式的組合。
1.JSP 指令
使用 JSP 指令(在<%@ 和 %>內的)來(lái)指定所使用的腳本語(yǔ)言、Servlet實(shí)現的接口、Servlet 擴展的類(lèi)、Servlet 導入的軟件包。JSP 指令的一般語(yǔ)法形式為:<%@ 指令名="值" %>。其中有效的指令名為:
(1) language:文件中所使用的腳本語(yǔ)言。此時(shí)對于Java 程序設計語(yǔ)言來(lái)說(shuō),僅 java 為有效值和缺省值。該指令作用于整個(gè)文件。當多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@language ="java" %>。
(2) Method:由嵌入的 Java 代碼(scriptlet)生成的方法的名稱(chēng)。生成的代碼會(huì )成為指定方法名的主體。缺省的方法是service。當多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@method ="doPost" %>。
(3) Import:Servlet 導入的 Java 語(yǔ)言軟件包名或類(lèi)名列表,該列表是用逗號分隔的。在JSP 文件中,可以多次指定該指令來(lái)導入不同的軟件包。示例如下:<%@ import ="java.io.*,java.util.Hashtable"%>。
(4) content_type :生成的響應的 MIME類(lèi)型。缺省值為 text/html。當多次使用該指令時(shí),只有第一次使用是有效的。 該指令可用以指定在其中對頁(yè)面進(jìn)行編碼的字符集。示例如下:<%@content_type ="text/html; charset=gb2312" %>。
(5) mplements:用于生成 Servlet 實(shí)現的Java 語(yǔ)言接口列表,該列表是用逗號分隔的??梢栽谝粋€(gè) JSP 文件中多次使用該命令,以實(shí)現不同的接口。示例如下:<%@implements = "javax.servlet.http.HttpSessionContext"%>。
(6) extends:Servlet 擴展的 Java 語(yǔ)言類(lèi)的名稱(chēng)。該類(lèi)必須是有效的,且不能是一個(gè)Servlet 類(lèi)。該指令作用于整個(gè) JSP 文件。當多次使用該指令時(shí),只有第一次使用是有效的。示例如下:<%@extends ="javax.servlet.http.HttpServlet" %>。
2.class-wide 變量和方法
使用 <SCRIPT> 和 </SCRIPT>標記來(lái)說(shuō)明 Servlet 類(lèi)的 class-wide 變量和 class-wide 方法。一般語(yǔ)法如下:
<script runat=server>。
// class-wide 變量和方法的代碼
</script>
屬性 runat=server 是必需的,它表明該標記是用于服務(wù)器端處理的。指定class-wide 變量和方法的示例如下:
<script runat=server>
// class-wide 變量
init i = 0;
String foo = "Hello";
// class-wide 方法
private void foo() {
// 該方法的代碼
}
</script>

   3.訪(fǎng)問(wèn)JavaBean
JSP 對 JavaBean 的支持使您能通過(guò) Web 站點(diǎn)重復使用組件。JavaBean可以是類(lèi)文件或串行化 Bean,也可由 Servlet 動(dòng)態(tài)生成。請使用 <BEAN> 標記來(lái)創(chuàng )建一個(gè)Bean 實(shí)例,以使從 JSP 文件的任何地方都可對該實(shí)例進(jìn)行訪(fǎng)問(wèn)。標記 <BEAN> 的語(yǔ)法為:
<bean name="Bean_name"varname="local_Bean_name"
type ="class_or_interface_name"introspect="yes|no"
beanName="ser_filename"create="yes|no"
scope="request|session|userprofile">
<param property_name="value">
</bean>
其中的屬性及其含義如下:
(1) name:用于在相應的范圍(由 scope 屬性指定)內查找Bean 的名稱(chēng)。例如,這可能是用于存儲 Bean 的會(huì )話(huà)(session)關(guān)鍵值。該值是分大小寫(xiě)的。
(2) varname:用于在 JSP 文件中的任何地方引用Bean 的名稱(chēng)。該屬性是可選的。缺省值為 name 屬性值。該值是分大小寫(xiě)的。
(3) type:Bean 的類(lèi)文件名。該名稱(chēng)用于以代碼說(shuō)明Bean 實(shí)例。缺省值為 Object 類(lèi)型。該值是分大小寫(xiě)的。
(4) Introspect:當該值為真時(shí),JSP 處理器檢查將所有的請求屬性,并調用與請求屬性匹配的set 屬性方法集(該屬性是在 BeanInfo 中傳遞的)。該屬性的缺省值為是。
(5) BeanName:Bean 的 .class 文件名、Bean軟件包名或包含 Bean 的串行化文件(.ser 文件)的文件名。(該名稱(chēng)是給 Bean 實(shí)例程序的)。僅當 Bean不在指定的范圍中,且創(chuàng )建屬性被設置成是時(shí),才使用該屬性。該值是分大小寫(xiě)的。文件路徑必須在應用服務(wù)器的Java 類(lèi)路徑中指定,除非文件在applicationserver_root\servlets 目錄下。
(6) Create:當該值為真時(shí),如果處理器在指定的范圍內沒(méi)有找到Bean,則 JSP 將創(chuàng )建一個(gè) Bean 實(shí)例。缺省值為真。
(7)Scope:Bean 的生命期。該屬性是可選的,其缺省值為request 。有效值為:

 request- 由 Servlet 將 Bean 設置成請求的上下文,該 Servlet 使用 JSP API 中描述的 API調
用 JSP 文件。如果 Bean 不是請求上下文的一部分,則將創(chuàng )建該 Bean,并將其存儲在請求上下文中,除非創(chuàng )建屬性已設置為否。
 session- 如果當前對話(huà)中存在 Bean,則 Bean 已被重用。如果不存在 Bean,且創(chuàng )建屬性設置
為是,則它已被創(chuàng )建并作為會(huì )話(huà)的一部分存儲起來(lái)。
 userprofile- 由 Servlet 請求對象檢索、造型成指定的類(lèi)型,并進(jìn)行內省的用戶(hù)簡(jiǎn)要表文件。(在
IBM WebShere應用服務(wù)器中,缺省類(lèi)型為 com.ibm.servlet.personalization.userprofile.UserProfile)。
(8) param:屬性和值配對的列表。屬性是在 Bean中用內省自動(dòng)設置的。只在實(shí)例化 Bean 時(shí),才對屬性進(jìn)行設置。
除了使用 <param> 屬性來(lái)設置Bean屬性外,還可以使用其它三種方法:第一,在請求包含 Bean 的 Web 頁(yè)面(JSP 文件)的 URL時(shí),指定查詢(xún)參數。必須將內省屬性設置成“是”。其示例如下:http://www.myserver.com/signon.jsp?name=jones&password=d13x,其中Bean 屬性名將設置為 jones。第二種方法,將屬性指定成由 HTML <FROM>標記提交的參數。必須將mothod 屬性設置成 post。將 action 屬性設置成調用 Bean 的 JSP 文件的URL。必須將introspect 屬性設置成“是”。其示例如下:
<form action="http://www.myserver.com/SearchSite"method="post">
<input type="text"name="Search for: ">
<input type="submit">
</form>
第三中方法是使用 JSP 語(yǔ)法設置 Bean 屬性。
在指定了 <BEAN> 標記后,就可以從 JSP文件中的任何地方訪(fǎng)問(wèn) Bean。這里有三種訪(fǎng)問(wèn) Bean 屬性的方法:使用 JSP scriptlet、使用 JSP表達式、使用 <INSERT> 標記(如同 變量數據的 HTML 模板語(yǔ)法中所說(shuō)明的)。請參閱JSP示例(DisplayData.jsp文件)以獲取三個(gè)訪(fǎng)問(wèn) Bean 方法的每個(gè)方法示例。
4.直接插入的 Java 代碼(scriptlet)
可以在 JSP 文件的 <% 和 %> 標記間直接嵌入任何有效的Java 語(yǔ)言代碼。這樣嵌入的代碼稱(chēng)為 scriptlet。如果沒(méi)有指定 method 指令,則生成的代碼將成為 service方法的主體。用于 Servlet 的 scriptlet 可以使用一個(gè)預定義的變量集,該變量集符合基本的 Servlet、輸出和輸入類(lèi):
(1) request:由 javax.servlet.http.HttpServletRequest定義的 Servlet 請求類(lèi)
(2) responses:由 javax.servlet.http.HttpServletRequest定義的 Servlet 響應類(lèi)
(3) out:由 java.io.PrintWriter定義的輸出轉錄程序類(lèi)
(4) in:由 java.io.BufferedReader定義的輸入閱讀程序類(lèi)
其示例如下:
<%
foo = request.getParameter("Name");
out.println(foo);
%>
5.變量數據的 HTML 模板語(yǔ)法
當頁(yè)面被返回給瀏覽器時(shí),應用服務(wù)器HTML 模板語(yǔ)法使您能將變量字段放在HTML 頁(yè)面上,并使 Servlet 和 JavaBean 可利用數據庫的值動(dòng)態(tài)地替換變量。該功能是 JSP 的一個(gè)IBM 擴展,它使引用變量數據變得十分容易。該語(yǔ)法只能用于 JSP 文件中。HTML 模板語(yǔ)法包括:
 基本HTML 模板語(yǔ)法;
 替代HTML 模板語(yǔ)法;
 <REPEAT>標記。
這些標記通過(guò) HTML 編寫(xiě)工具被設計成傳遞交互操作的標記。每一個(gè)標記有一個(gè)相應的結束標記。每一個(gè)標記是分大小寫(xiě)的,它們的一些屬性也是分大小寫(xiě)的。IBMWebSphere Studio 使開(kāi)發(fā) JSP 文件以包含 HTML 模板語(yǔ)法變得更為容易。
(1) 基本 HTML 模板語(yǔ)法
<INSERT> 標記是用于指定變量字段的基本標記。一般的語(yǔ)法為:
<insert requestparm=pvaluerequestattr=avalue bean=name
property=property_name(optional_index).subproperty_name(optional_index)
default=value_when_null>
</insert>
其中的屬性及其含義如下:
 requestparm:要在請求對象內進(jìn)行訪(fǎng)問(wèn)的參數。該屬性是分大小寫(xiě)的,并且不能與Bean和property屬性一起使用。
 Requestattr:要在請求對象內進(jìn)行訪(fǎng)問(wèn)的屬性。屬性應使用setAttribute 方法設置。該屬性是分大小寫(xiě)的,并且不能與 Bean 和property屬性一起使用。
 Bean:由<BEAN> 標記在 JSP 文件中說(shuō)明的 JavaBean 名。請參閱訪(fǎng)問(wèn) JavaBean 以獲得<BEAN> 標記的解釋。該屬性的值是分大小寫(xiě)的。當指定了 Bean 屬性,但未指定property屬性時(shí),在替換中將使用完整的Bean 。例如,如果 Bean 是類(lèi)型 String 且未指定屬性,則將替代 string 的值。
 Property:訪(fǎng)問(wèn)替換的Bean 的屬性。該屬性的值是分大小寫(xiě)的,并且是屬性的獨立場(chǎng)所名。該屬性不能與 requestparm 屬性一起使用。
 Default:當Bean 屬性值為空時(shí),顯示可選的字符串。如果字符串包含多個(gè)字,則該字符串必須包含在一對雙引號中(例如 "HelpDesknumber")。該屬性的值是分大小寫(xiě)的。如果未指定值,則當屬性值為空時(shí),用空字符串替代。
基本語(yǔ)法的示例如下:
<insert bean=userProfile property=username></insert>
<insert requestparm=companydefault="IBM Corporation"></insert>
<insert requestattr=ceo default="CompanyCEO"></insert>
<insert bean=userProfile property=lastconnectiondate.month></insert>
在大多數情況下,property屬性的值就是屬性名。但是,可以通過(guò)指定property屬性的全格式來(lái)訪(fǎng)問(wèn)屬性的某一屬性(子屬性)。這個(gè)全格式也提供選擇項給您來(lái)指定索引屬性的一個(gè)索引。該可選的索引可以是一個(gè)常數(例如2)或如重復設置 HTML 標記中描述的索引。使用屬性標記的全格式示例如下:
<insert bean=staffQuery property=address(currentAddressIndex)></insert>
<insert bean=shoppingCart property=items(4).price></insert>
<insert bean=fooBean property=foo(2).bat(3).boo.far></insert>
(2) 替代 HTML 模板語(yǔ)法
HTML 標準不允許在 HTML 標記中嵌入 HTML 標記。因而,就無(wú)法在另一個(gè)HTML 標記中嵌入<INSERT>標記。作為代替,請使用 HTML 模板替代語(yǔ)法。要使用替代語(yǔ)法:
 請使用<INSERT>和</INSERT>來(lái)包含HTML 標記,在該標記中指出替代內容。
 指定Bean 和property屬性:
 要指定Bean 和屬性特性,請使用下列格式:$(bean=b property=p default=d),其中 b、p 和d
作為描述基本語(yǔ)法的值。
 要指定requestparm 屬性,請使用下列格式:$(requestparm=r default=d),其中 r 和 d作為
描述基本語(yǔ)法的值。
 要指定requestattr 屬性,請使用下列格式:$(requestattr=r default=d),其中 r 和 d作為描述
基本語(yǔ)法的值。
替代 HTML 模板語(yǔ)法的示例如下:
<insert>
<img src=$(bean=productAdsproperty=sale default=default.gif)>
</insert>
<insert>
<a href="http://www.myserver.com/map/showmap.cgi?country=$(requestparm=countrydefault=
usa )
&city$(requestparm=city default="ResearchTriangle Park")&email=
$(bean=userInfo property=email)>Showmap of city</a>
</insert>

  (3)<REPEAT>標記
<REPEAT>標記的語(yǔ)法為:
<repeat index=name start=starting_indexend=ending_index>
</repeat>
其中:

 index:是用于標識該重復數據塊的一個(gè)可選的名稱(chēng)。該值是分大小寫(xiě)的。
 Start:是用于該重復數據塊的一個(gè)可選的開(kāi)始索引值。缺省值為0 。
 End:是用于該重復數據塊的一個(gè)可選的結束索引值。最大值是2,147,483,647。如果結束屬性的值小于開(kāi)始屬性的值,則忽略結束屬性。
下面的示例 1、2 和 3 顯示了如何使用<REPEAT>標記。如果所有的索引屬性擁有300 個(gè)或更少的元素,則這些示例將產(chǎn)生相同的輸出。如果擁有的元素多于 300 個(gè),示例 1 和示例 2 將顯示所有的元素,而示例3 將只顯示前 300 個(gè)元素。示例 1 用缺省開(kāi)始和結束索引顯示了隱式索引:使用最小索引屬性數的 bean 限制了循環(huán)重復的次數。
<table>
<repeat>
<tr><td><insertbean=serviceLocationsQuery property=city></insert></tr></td>
<tr><td><insertbean=serviceLocationsQuery property=address></insert></tr></td>
<tr><td><insertbean=serviceLocationsQuery property=telephone></insert></tr></td>
</repeat>
</table>
示例 2 顯示了索引、開(kāi)始索引和結束索引:
<table>
<repeat index=myIndex start=0end=2147483647>
<tr><td><insertbean=serviceLocationsQuery property=city(myIndex)></insert></tr></td>
<tr><td><insertbean=serviceLocationsQuery property=address(myIndex)></insert></tr>
</td>
<tr><td><insertbean=serviceLocationsQuery property=telephone(myIndex)></insert></tr>
</td>
</repeat>
</table>
示例 3 用隱式開(kāi)始索引顯示了顯式索引和結束索引。雖然指定了索引屬性,仍可對索引過(guò)的屬性城市進(jìn)行隱式索引,因為不需要(i)。
<table>
<repeat index=myIndex end=299>
<tr><td><insertbean=serviceLocationsQuery property=city></insert></tr></td>
<tr><td><insertbean=serviceLocationsQuery property=address(myIndex)></insert></tr>
</td>
<tr><td><insertbean=serviceLocationsQuery property=telephone(myIndex)></insert></tr>
</td>
</repeat>
</table>
可以嵌套<REPEAT>數據塊。獨立索引每個(gè)數據塊。該能力對交叉兩個(gè)bean 上的交錯屬性或含有子屬性的屬性非常有用。在示例中,將兩個(gè)<REPEAT>數據塊嵌套,用以顯示用戶(hù)購物手推車(chē)上每一張壓縮光盤(pán)上的歌曲列表。
<repeat index=cdindex>
<h1><insert bean=shoppingCartproperty=cds.title></insert></h1>
<table>
<repeat>
<tr><td><insertbean=shoppingCart property=cds(cdindex).playlist></insert>
</td></tr>
</table>
</repeat>
</repeat>
6.變量數據的 Java 表達式
當處理 JSP 文件時(shí),要指定分解一個(gè) Java 語(yǔ)言表達式,請使用JSP 表達式標記 <%= 和 %>。該表達式被評估和轉換成一個(gè)字符串,并加以顯示。原語(yǔ)類(lèi)型,如 int和 float 都自動(dòng)轉換成字符串表示法。在該示例中,foo 是在 <SCRIPT> 中加以說(shuō)明的 class-wide變量,示例請見(jiàn) Class-wide 變量和方法:
<p>翻譯歡迎辭<%= foo %>.</p>
當獲得 JSP 文件時(shí),文本為:翻譯歡迎辭 Hello。
5.4JSP API
有兩種接口支持 JSP 技術(shù)。這些 API 提供了一種將內容生成(業(yè)務(wù)邏輯)從內容演示(HTML格式)中分離出來(lái)的方法。這種分離使 Servlet 能生成內容并將它(如在 Bean 中)存儲在請求的上下文中。生成上下文的Servlet 通過(guò)將請求的上下文傳遞至 JSP 文件來(lái)生成一個(gè)響應,該 JSP 文件包含 HTML 格式。<BEAN>標記便提供了對業(yè)務(wù)邏輯的訪(fǎng)問(wèn)。支持 JSP 的接口有:
 com.sun.server.http.HttpServiceRequest:該類(lèi)實(shí)現了javax.servlet.http.HttpServletRequest 接口和用于設置根據名稱(chēng)定義的屬性的方法setAttribute() 。
 com.sun.server.http.HttpServiceResponse:該類(lèi)實(shí)現了javax.servlet.http.HttpServletResponse 接口,并添加了一個(gè)使 Servlet能調用 JSP 文件和可選地傳遞上下文的 callPage() 方法。
1.callPage() 方法
用 callPage() 方法在 Servlet中對 JSP進(jìn)行服務(wù)。所服務(wù)的頁(yè)面(一個(gè) JSP 文件)作為響應返回到瀏覽器中。調用 Servlet還可以通過(guò)請求對象傳遞某些上下文。應該對所服務(wù)的頁(yè)面標題進(jìn)行編碼,以將用于告訴瀏覽器不要對文件執行高速緩存的指令包含在內。callPage()方法的語(yǔ)法如下:
public void callPage(String fileName,HttpServletRequest req) throws ServletException, IOException
其中:
 fileName:用于標識文件(該文件用于生成輸出并表示內容)的URL 名。如果文件名以斜杠(/)開(kāi)頭,則可以假設文件位置與文檔根目錄有關(guān)。如果文件名不是以斜杠開(kāi)頭,則可假設文件位置與當前調用的請求有關(guān)。callPage()方法不支持調用文件擴展名為 .aspl 的頁(yè)面。如果需要使用 callPage() 方法來(lái)調用 HTML 頁(yè)面,則必須首先將HTML 文件重命名成擴展名為 .jsp 的文件。
 Req:調用該方法的是Servlet 的 HttpServletRequest 對象。最通常的是,將上下文作為 Bean,在請求對象的上下文中進(jìn)行傳遞。
要使用 callPage() 方法,必須將響應對象造型成com.sun.server.http.HttpServiceResponse類(lèi)型。
2.使用 setAttribute() 方法
用 setAttribute() 方法來(lái)將一個(gè)特性存儲在請求的上下文中。語(yǔ)法是:publicvoid setAttribute (String key, Object o),其中,key代表存儲的特性名,而o表示用key 來(lái)存儲的上下文對象。要使用 setAttribute() 方法,必須將請求對象造型成com.sun.server.http.HttpServiceRequest類(lèi)型。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Struts教程
JavaBean組件程序設計(4)
jsp內置對象詳解
jsp指令
最全的Java筆試題庫之選擇題篇-總共234道【121~180】
mayong--淺析struts 體系結構與工作原理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久