JSP中application对象的使用.docx

上传人:b****8 文档编号:9418952 上传时间:2023-05-19 格式:DOCX 页数:12 大小:34.90KB
下载 相关 举报
JSP中application对象的使用.docx_第1页
第1页 / 共12页
JSP中application对象的使用.docx_第2页
第2页 / 共12页
JSP中application对象的使用.docx_第3页
第3页 / 共12页
JSP中application对象的使用.docx_第4页
第4页 / 共12页
JSP中application对象的使用.docx_第5页
第5页 / 共12页
JSP中application对象的使用.docx_第6页
第6页 / 共12页
JSP中application对象的使用.docx_第7页
第7页 / 共12页
JSP中application对象的使用.docx_第8页
第8页 / 共12页
JSP中application对象的使用.docx_第9页
第9页 / 共12页
JSP中application对象的使用.docx_第10页
第10页 / 共12页
JSP中application对象的使用.docx_第11页
第11页 / 共12页
JSP中application对象的使用.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JSP中application对象的使用.docx

《JSP中application对象的使用.docx》由会员分享,可在线阅读,更多相关《JSP中application对象的使用.docx(12页珍藏版)》请在冰点文库上搜索。

JSP中application对象的使用.docx

JSP中application对象的使用

application对象

1什么是application对象?

(1)当Web服务器启动时,Web服务器会自动创建一个application对象。

application对象一旦创建,它将一直存在,直到Web服务器关闭。

一个Web服务器通常有多个Web服务目录(网站),当Web服务器启动时,它自动为每个Web服务目录都创建一个application对象,这些application对象各自独立,而且和Web服务目录一一对应。

访问同一个网站的客户都共享一个application对象,因此,application对象可以实现多客户间的数据共享。

访问不同网站的客户,对应的application对象不同。

 

(2)application对象的生命周期:

从Web服务器启动,直到Web服务器关闭。

注意:

一个Web应用程序启动后,将会自动创建一个application对象,而且在整个应用程序的运行过程中只有一个application对象,也即所有访问该网站的客户都共享一个application对象。

 

(3)application对象的作用范围:

application对象是一个应用程序级的对象,它作用于当前Web应用程序,也即作用于当前网站,所有访问当前网站的客户都共享一个application对象。

具体来说:

不管哪个客户来访问网站A,也不管客户访问网站A下哪个页面文件,都可以对网站A的application对象进行操作,因为,所有访问网站A的客户都共用一个application对象。

因此,当在application对象中存储数据后,所有访问网站A的客户都能够对其进行访问,实现了多客户之间的数据共享。

 

(4)application对象的基类是:

javax.servlet.ServletContext类。

注意:

有些Web服务器不直接支持使用application对象,必须用ServletContext类来声明application对象,再调用getServletContext()方法来获取当前页面的application对象。

 

(5)ServletContext类:

用于表示应用程序的上下文。

一个ServletContext类的对象表示一个Web应用程序的上下文。

具体来说:

在Web服务器中,提供了一个Web应用程序的运行时环境,专门负责Web应用程序的部署、编译、运行以及生命周期的管理,通过ServletContext类,可以获取Web应用程序的运行时环境信息。

常识:

JSP引擎、Servlet引擎、JSP容器和Servlet容器,都是指Web服务器,Web服务器用于管理所有Web应用程序。

 

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

方法名

描述

StringgetAttribute(Stringname)

根据属性名称获取属性值。

EnumerationgetAttributeNames()

获取所有的属性名称。

voidsetAttribute(Stringname,Objectobject)

设置属性,指定属性名称和属性值。

voidremoveAttribute(Stringname)

根据属性名称删除对应的属性。

 ServletContextgetContext(Stringuripath)

获取指定URL的ServletContext对象。

StringgetContextPath()

获取当前Web应用程序的根目录。

StringgetInitParameter(Stringname)

根据初始化参数名称,获取初始化参数值。

intgetMajorVersion()

获取ServletAPI的主版本号。

intgetMinorVersion()

获取ServletAPI的次版本号。

StringgetMimeType(Stringfile)

获取指定文件的MIME类型。

StringgetServletInfo()

获取当前Web服务器的版本信息。

StringgetServletContextName()

获取当前Web应用程序的名称。

voidlog(Stringmessage)

将信息写入日志文件中。

2使用application对象存储数据

(1)设置application对象的属性和获取application对象的属性

测试代码

TestApplication.jsp

<%@pagelanguage="java"contentType="text/html;charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

用户名:


密码:


<%

application.setAttribute("username",request.getParameter("username"));

application.setAttribute("pwd",request.getParameter("pwd"));

%>

测试代码

TestCommon.jsp

在TestCommon.jsp页面中,通过application对象获取属性,注意TestApplication.jsp和TestCommon.jsp这两个页面之间没有任何关联,只要通过application对象设置了属性,那么就可以在任何页面,通过application对象获取属性或者删除属性。

<%@pagelanguage="java"contentType="text/html;charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

用户名:

<%=application.getAttribute("username")%>

密码:

<%=application.getAttribute("pwd")%>

 

(2)删除application对象的属性

测试代码

TestCommon.jsp

在TestCommon.jsp页面中,删除application对象的属性。

<%@pagelanguage="java"contentType="text/html;charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

<%--删除属性--%>

<%

application.removeAttribute("username");

application.removeAttribute("pwd");

%>

用户名:

<%=application.getAttribute("username")%>

密码:

<%=application.getAttribute("pwd")%>

 

3使用application对象实现网站计数器

测试代码:

TestApplication01.jsp

<%@pagelanguage="java"contentType="text/html;charset=GBK"%>

<%@pageimport="java.util.*"%>

<%request.setCharacterEncoding("GBK");%>

<%!

ServletContextapplication;

synchronizedvoidcountPeople(){

application=getServletContext();

Integernumber=(Integer)application.getAttribute("number");

if(number==null){

number=newInteger

(1);

application.setAttribute("number",number);

}else{

number=newInteger(number.intValue()+1);

application.setAttribute("number",number);

}

}

%>

<%

if(session.isNew()){

countPeople();

}

intpersonCount=((Integer)application.getAttribute("number")).intValue();

%>

欢迎访问本网站,您是第<%=personCount%>个访问用户!

 

4使用application对象获取初始化参数

(1)一 般来说,在web.xml文件中,设置初始化参数有如下两种方式:

⏹设置系统范围内的初始化参数

⏹针对单个Servlet文件或JSP文件设置初始化参数

对于系统范围内的初始化参数,可通过ServletContext 接口的getInitParameter(Stringname)方法,根据指定的参数名,获取对应的参数值。

对于针对单个Servlet文件或JSP文件设置初始化参数,可通过ServletConfig接口的 getInitParameter(Stringname)方法,根据指定的参数名,获取对应的参数值。

(2)如何设置系统范围内的初始化参数

在web.xml文件中,可利用context-param元素来设置系统范围内的初始化参数。

context-param元素应该包含param-name、param-value以及可选的description子元素,如下所示:

support-email

blackhole@

web.xml文件的示例:

xmlversion="1.0"encoding="UTF-8"?

>

xmlns="

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

appName

MyWebTest

appVersion

Version1.0

MyTest01.jsp

测试代码

TestApplication02.jsp

<%@pagelanguage="java"contentType="text/html;charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

<%--使用application对象获取系统范围内的初始化参数--%>

使用application对象获取初始化参数:


<%

StringappName=getServletContext().getInitParameter("appName");

StringappVersion=getServletContext().getInitParameter("appVersion");

%>

应用程序的名称:

<%=appName%>

应用程序的版本:

<%=appVersion%>

修改web.xml文件,添加蓝色字体部分:

xmlversion="1.0"encoding="UTF-8"?

>

xmlns="

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

appName

MyWebTest

appVersion

Version1.0

MyTest01.jsp

 

5使用application对象获取Web应用程序的环境信息

测试代码:

TestApplication03.jsp

<%@pagelanguage="java"contentType="text/html;charset=GBK"

pageEncoding="GBK"%>

<%request.setCharacterEncoding("GBK");%>

使用application对象获取Web应用程序的环境信息

获取当前Web服务器的版本信息:

<%=application.getServerInfo()%>

获取ServletAPI的主版本号:

<%=application.getMajorVersion()%>

获取ServletAPI的次版本号:

<%=application.getMinorVersion()%>

获得指定URL的ServletContext对象:

<%

ServletContextsc=application.getContext("/ch3/TestApplication01.jsp");

out.println(sc.getServerInfo());

%>

<%--需要在web.xml设置display-name元素--%>

获取当前Web应用程序的名称:

<%=application.getServletContextName()%>

获取当前Web应用程序的上下文路径:

<%=application.getContextPath()%>

测试结果:

6session对象和application对象的比较

(1)两者的作用范围不同:

session对象是用户级的对象,而application对象是应用程序级的对象。

一个用户一个session对象,每个用户的session对象不同,在用户所访问网站的多个页面之间共享同一个session对象。

一个Web应用程序一个application对象,每个Web应用程序的application对象不同,但一个Web应用程序的多个用户之间共享同一个application对象。

在同一个网站下:

⏹每个用户的session对象不同

⏹所用用户的application对象相同

在不同网站下:

⏹每个用户的session对象不同

⏹每个用户的application对象不同

 

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

session对象的生命周期:

用户首次访问网站创建,用户离开该网站(不一定要关闭浏览器)消亡。

application对象的生命周期:

启动Web服务器创建,关闭Web服务器销毁。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2