免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

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

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

開(kāi)通VIP
介紹一下JSP中application的用法。

application對(duì)象

1 什么是application對(duì)象 ?

(1) 當(dāng)Web服務(wù)器啟動(dòng)時(shí),Web服務(wù)器會(huì)自動(dòng)創(chuàng)建一個(gè)application對(duì)象。application對(duì)象一旦創(chuàng)建,它將一直存在,直到Web服務(wù)器關(guān)閉。一個(gè)Web服務(wù)器通常有多個(gè)Web服務(wù)目錄 (網(wǎng)站),當(dāng)Web服務(wù)器啟動(dòng)時(shí),它自動(dòng)為每個(gè)Web服務(wù)目錄都創(chuàng)建一個(gè)application對(duì)象,這些application對(duì)象各自獨(dú)立,而且和Web服務(wù)目錄一一對(duì)應(yīng)。訪問(wèn)同一個(gè)網(wǎng)站的客戶都共享一個(gè)application對(duì)象,因此,application對(duì)象可以實(shí)現(xiàn)多客戶間的數(shù)據(jù)共享。訪問(wèn)不同網(wǎng)站的客戶,對(duì)應(yīng)的application對(duì)象不同。

(2) application對(duì)象的生命周期:從Web服務(wù)器啟動(dòng),直到Web服務(wù)器關(guān)閉。

注意:一個(gè)Web應(yīng)用程序啟動(dòng)后,將會(huì)自動(dòng)創(chuàng)建一個(gè)application對(duì)象,而且在整個(gè)應(yīng)用程序的運(yùn)行過(guò)程中只有一個(gè)application對(duì)象,也即所有訪問(wèn)該網(wǎng)站的客戶都共享一個(gè)application對(duì)象。

(3) application對(duì)象的作用范圍:application對(duì)象是一個(gè)應(yīng)用程序級(jí)的對(duì)象,它作用于當(dāng)前Web應(yīng)用程序,也即作用于當(dāng)前網(wǎng)站,所有訪問(wèn)當(dāng)前網(wǎng)站的客戶都共享一個(gè)application對(duì)象。具體來(lái)說(shuō):不管哪個(gè)客戶來(lái)訪問(wèn)網(wǎng)站A,也不管客戶訪問(wèn)網(wǎng)站A下哪個(gè)頁(yè)面文件,都可以對(duì)網(wǎng)站A的application對(duì)象進(jìn)行操作,因?yàn)?,所有訪問(wèn)網(wǎng)站A的客戶都共用一個(gè)application對(duì)象。因此,當(dāng)在application對(duì)象中存儲(chǔ)數(shù)據(jù)后,所有訪問(wèn)網(wǎng)站A的客戶都能夠?qū)ζ溥M(jìn)行訪問(wèn),實(shí)現(xiàn)了多客戶之間的數(shù)據(jù)共享。

(4) application對(duì)象的基類是:javax.servlet.ServletContext類。

注意:有些Web服務(wù)器不直接支持使用application對(duì)象,必須用ServletContext類來(lái)聲明application對(duì)象,再調(diào)用getServletContext()方法來(lái)獲取當(dāng)前頁(yè)面的application對(duì)象。

(5) ServletContext類:用于表示應(yīng)用程序的上下文。一個(gè)ServletContext類的對(duì)象表示一個(gè)Web應(yīng)用程序的上下文。具體來(lái)說(shuō):在Web服務(wù)器中,提供了一個(gè)Web應(yīng)用程序的運(yùn)行時(shí)環(huán)境,專門(mén)負(fù)責(zé)Web應(yīng)用程序的部署、編譯、運(yùn)行以及生命周期的管理,通過(guò)ServletContext類,可以獲取Web應(yīng)用程序的運(yùn)行時(shí)環(huán)境信息。

常識(shí):JSP引擎、Servlet引擎、JSP容器和Servlet容器,都是指Web服務(wù)器,Web服務(wù)器用于管理所有Web應(yīng)用程序。

(6) application對(duì)象的常用方法,如下所示:

方法名描述
String getAttribute(String name)根據(jù)屬性名稱獲取屬性值。
Enumeration getAttributeNames()獲取所有的屬性名稱。
void setAttribute(String name, Object object)設(shè)置屬性,指定屬性名稱和屬性值。
void removeAttribute(String name)根據(jù)屬性名稱刪除對(duì)應(yīng)的屬性。
 ServletContext getContext(String uripath)獲取指定URL的ServletContext對(duì)象。
String getContextPath()獲取當(dāng)前Web應(yīng)用程序的根目錄。
String getInitParameter(String name)根據(jù)初始化參數(shù)名稱,獲取初始化參數(shù)值。
int getMajorVersion()獲取Servlet API的主版本號(hào)。
int getMinorVersion()獲取Servlet API的次版本號(hào)。
String getMimeType(String file)獲取指定文件的MIME 類型。
String getServletInfo()獲取當(dāng)前Web服務(wù)器的版本信息。
String getServletContextName()獲取當(dāng)前Web應(yīng)用程序的名稱。
void log(String message)將信息寫(xiě)入日志文件中。

2 使用application對(duì)象存儲(chǔ)數(shù)據(jù)

(1) 設(shè)置application對(duì)象的屬性和獲取application對(duì)象的屬性

 測(cè)試代碼

TestApplication.jsp

 <%@ page language=”java” contentType=”text/html; charset=GBK”%>

<% request.setCharacterEncoding(“GBK”);%>

<html>

<body>

<form name=”form1″ action=”" method=”post”>

用戶名:

<input type=”text” name=”username” value=”">

<br>

密 碼:

<input type=”password” name=”pwd” value=”">

<br>

<input type=”submit” name=”btSubmit” value=”提交”>

</form>

<%

application.setAttribute(“username”, request.getParameter(“username”));

application.setAttribute(“pwd”, request.getParameter(“pwd”));

%>

</body>

</html>

 測(cè)試代碼

TestCommon.jsp

 在TestCommon.jsp 頁(yè)面中,通過(guò)application對(duì)象獲取屬性,注意TestApplication.jsp和TestCommon.jsp這兩個(gè)頁(yè)面之間沒(méi)有任何關(guān)聯(lián),只要通過(guò)application對(duì)象設(shè)置了屬性,那么就可以在任何頁(yè)面,通過(guò)application對(duì)象獲取屬性或者刪除屬性。

 <%@ page language=”java” contentType=”text/html; charset=GBK”%>

<% request.setCharacterEncoding(“GBK”); %>

<html>

<body>

用戶名:<%=application.getAttribute(“username”) %><br>

密 碼:<%=application.getAttribute(“pwd”) %><br>

</body>

</html>

(2) 刪除application對(duì)象的屬性

 測(cè)試代碼

TestCommon.jsp

 在TestCommon.jsp 頁(yè)面中,刪除application對(duì)象的屬性。

 <%@ page language=”java” contentType=”text/html; charset=GBK”%>

<% request.setCharacterEncoding(“GBK”); %>

<html>

<body>

<%–刪除屬性–%>

<%

application.removeAttribute(“username”);

application.removeAttribute(“pwd”);

%>

 用戶名:<%=application.getAttribute(“username”)%><br>

密 碼:<%=application.getAttribute(“pwd”)%><br>

</body>

</html>

3 使用application對(duì)象實(shí)現(xiàn)網(wǎng)站計(jì)數(shù)器

測(cè)試代碼:

TestApplication01.jsp

 <%@ page language=”java” contentType=”text/html; charset=GBK”%>

<%@ page import=”java.util.*”%>

<% request.setCharacterEncoding(“GBK”);%>

<html>

<body>

<%!

ServletContext application;

synchronized void countPeople() {

application = getServletContext();

Integer number =(Integer)application.getAttribute(“number”);

if (number == null) {

number = new Integer(1);

application.setAttribute(“number”, number);

} else {

number = new Integer(number.intValue()   1);

application.setAttribute(“number”, number);

}

}

%>

 <%

if (session.isNew()) {

countPeople();

}

int personCount = ((Integer)application.getAttribute(“number”)).intValue();

%>

 <p>歡迎訪問(wèn)本網(wǎng)站,您是第 <%= personCount %> 個(gè)訪問(wèn)用戶!

 </body>

</html>

4 使用application對(duì)象獲取初始化參數(shù)

(1) 一 般來(lái)說(shuō),在web.xml文件中,設(shè)置初始化參數(shù)有如下兩種方式:

n 設(shè)置系統(tǒng)范圍內(nèi)的初始化參數(shù)

n 針對(duì)單個(gè)Servlet文件或JSP文件設(shè)置初始化參數(shù)

對(duì)于系統(tǒng)范圍內(nèi)的初始化參數(shù),可通過(guò)ServletContext 接口的getInitParameter(String name)方法,根據(jù)指定的參數(shù)名,獲取對(duì)應(yīng)的參數(shù)值。對(duì)于針對(duì)單個(gè)Servlet文件或JSP文件設(shè)置初始化參數(shù),可通過(guò)ServletConfig接口的 getInitParameter(String name)方法,根據(jù)指定的參數(shù)名,獲取對(duì)應(yīng)的參數(shù)值。
(2) 如何設(shè)置系統(tǒng)范圍內(nèi)的初始化參數(shù)

在web.xml文件中,可利用context-param元素來(lái)設(shè)置系統(tǒng)范圍內(nèi)的初始化參數(shù)。context-param元素應(yīng)該包含param-name、param-value以及可選的description子元素,如下所示:
<context-param>
<param-name>support-email</param-name>
<param-value>blackhole@mycompany.com</param-value>
</context-param>

web.xml文件的示例:

<?xml version=”1.0″ encoding=”UTF-8″?>

<web-app version=”2.4″

xmlns=”http://java.sun.com/xml/ns/j2ee”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”>

<context-param>

<param-name>appName</param-name>

<param-value>MyWebTest</param-value>

</context-param>

<context-param>

<param-name>appVersion</param-name>

<param-value>Version 1.0</param-value>

</context-param>

<welcome-file-list>

<welcome-file>MyTest01.jsp</welcome-file>

</welcome-file-list>

</web-app>

測(cè)試代碼

TestApplication02.jsp

 <%@ page language=”java” contentType=”text/html; charset=GBK” %>

<% request.setCharacterEncoding(“GBK”); %>

<html>

<body>

<%–使用application對(duì)象獲取系統(tǒng)范圍內(nèi)的初始化參數(shù)–%>

<font color=”Red”>使用application對(duì)象獲取初始化參數(shù):</font>

<br>

<%

String appName = getServletContext().getInitParameter(“appName”);

String appVersion = getServletContext().getInitParameter(“appVersion”);

%>

應(yīng)用程序的名稱:<%=appName%><br>

應(yīng)用程序的版本:<%=appVersion%>

</body>

</html>

修改web.xml文件,添加藍(lán)色字體部分:

<?xml version=”1.0″ encoding=”UTF-8″?>

<web-app version=”2.4″

xmlns=”http://java.sun.com/xml/ns/j2ee”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”>

<context-param>

<param-name>appName</param-name>

<param-value>MyWebTest</param-value>

</context-param>

<context-param>

<param-name>appVersion</param-name>

<param-value>Version 1.0</param-value>

</context-param>

<welcome-file-list>

<welcome-file>MyTest01.jsp</welcome-file>

</welcome-file-list>

</web-app>

5 使用application對(duì)象獲取Web應(yīng)用程序的環(huán)境信息

測(cè)試代碼:

TestApplication03.jsp

 <%@ page language=”java” contentType=”text/html; charset=GBK”

pageEncoding=”GBK”%>

<% request.setCharacterEncoding(“GBK”); %>

<html>

<body>

<h2>使用application對(duì)象獲取Web應(yīng)用程序的環(huán)境信息</h2>

 <p>

<font color=”Red”>獲取當(dāng)前Web服務(wù)器的版本信息:</font><%= application.getServerInfo() %><br>

<font color=”Red”>獲取Servlet API的主版本號(hào):</font><%= application.getMajorVersion() %><br>

<font color=”Red”>獲取Servlet API的次版本號(hào):</font><%= application.getMinorVersion() %>

 <p>

<font color=”Red”>獲得指定URL的ServletContext對(duì)象:</font>

<%

ServletContext sc = application.getContext(“/ch3/TestApplication01.jsp”);

out.println(sc.getServerInfo());

%>

 <p>

<%–需要在web.xml設(shè)置 display-name 元素–%>

<font color=”Red”>獲取當(dāng)前Web應(yīng)用程序的名稱:</font><%= application.getServletContextName() %>

 <p>

<font color=”Red”>獲取當(dāng)前Web應(yīng)用程序的上下文路徑:</font><%= application.getContextPath() %>

</body>

</html>

 6  session對(duì)象和application對(duì)象的比較

(1) 兩者的作用范圍不同:

session對(duì)象是用戶級(jí)的對(duì)象,而application對(duì)象是應(yīng)用程序級(jí)的對(duì)象。

 一個(gè)用戶一個(gè)session對(duì)象,每個(gè)用戶的session對(duì)象不同,在用戶所訪問(wèn)網(wǎng)站的多個(gè)頁(yè)面之間共享同一個(gè)session對(duì)象。

 一個(gè)Web應(yīng)用程序一個(gè)application對(duì)象,每個(gè)Web應(yīng)用程序的application對(duì)象不同,但一個(gè)Web應(yīng)用程序的多個(gè)用戶之間共享同一個(gè)application對(duì)象。

 在同一個(gè)網(wǎng)站下:

n 每個(gè)用戶的session對(duì)象不同

n 所用用戶的application對(duì)象相同

 在不同網(wǎng)站下:

n 每個(gè)用戶的session對(duì)象不同

n 每個(gè)用戶的application對(duì)象不同

 (2) 兩者的生命周期不同:

 session對(duì)象的生命周期:用戶首次訪問(wèn)網(wǎng)站創(chuàng)建,用戶離開(kāi)該網(wǎng)站 (不一定要關(guān)閉瀏覽器) 消亡。

 application對(duì)象的生命周期:?jiǎn)?dòng)Web服務(wù)器創(chuàng)建,關(guān)閉Web服務(wù)器銷毀。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
j2ee四大作用域pagecontext,request,session,ServletContext
JSP頁(yè)面結(jié)構(gòu)(2)
關(guān)于JSP.Servlet啟動(dòng)次序的說(shuō)明
Thymeleaf系列三 調(diào)用對(duì)象的成員變量值、Map值、List值、屬性的方法 、ctx對(duì)象、param、session和application
JSP的內(nèi)置對(duì)象及作用
JSP內(nèi)建對(duì)象
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服