原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处。

本篇学习自:C语言中文网,部分内容转载仅供学习使用。


\[QAQ
\]

JSP application 对象用于保存应用程序的公用数据,服务器启动并自动创建 application 对象后,只要没有关闭服务器,application 对象就一直存在,所有用户共享 application 对象。

API - 查找 Servlet 有关的属性信息

JSP application 对象是 javax.servlet.ServletContext 类的实例,这有助于查找有关 Servlet 引擎和 Servlet 环境的信息。它的生命周期从服务器启动到关闭。在此期间,对象将一直存在。这样,在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作。在任何地方 对此对象属性的操作,都会影响到其他用户的访问。

表 1 列出了 application 对象的常用方法。

方法 说明
getAttribute( String arg) 获取 application 对象中含有关键字的对象
getAttributeNames() 获取 application 对象的所有参数名字
getMajorVersion() 获取服务器支持 Servlet 的主版本号
getMinorVersion() 获取服务器支持 Servlet 的从版本号
removeAttribute(java.lang.String name) 根据名字删除 application 对象的参数
setAttribute(String key,Object obj) 将参数 Object 指定的对象 obj 添加到 application 对象中,并 为添加的对象指定一个索引关键字

【例1】利用 application 对象查找 Servlet 有关的属性信息包括 Servlet 的引擎名、版本号、服务器支持的 Servlet API 的最大和最小版本号、指定资源的路径等。文件名为 index.jsp,代码如下:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
JSP (SERVLET) 引擎名及版本号:
<%=application.getServerInfo()%><br>
服务器支持的 Server API 的最大版本号:
<%=application.getMajorVersion()%><br>
服务器支持的 Server API 的最小版本号:
<%=application.getMinorVersion()%><br>
指定资源 (文件及目录) 的 URL 路径:
<%=application.getResource("sec.jsp")%><br>
返回 sec.jsp 虚拟路径的真实路径:
<%=application.getRealPath("sec.jsp")%>
</body>
</html>

运行结果如下图所示。

管理应用程序属性

application 对象与 session 对象相同,都可以设置属性。但是,两个属性的有效范围是不同的。

在 session 对象中,设置的属性只在当前客户的会话范围(session scope)有效,客户超过预期时间不发送请求时,session 对象将被回收。

在 application 对象中设置的属性在整个应用程序范围(application scope)都有效。即使所有的用户都不发送请求,只要不关闭应用服务器,在其中设置的属性也是有效的。

【例2】以 application 对象管理应用程序属性。用 application 对象的 setAttribute() 和 getAttribute() 方法实现网页计数器功能,代码如下:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%
int n = 0;
if(application.getAttribute("num") == null) // 获取 application 对象中含有关键字的对象
n = 1;
else{
String str = application.getAttribute("num").toString();
// getAttribute 返回值为 Object 类型
n = Integer.valueOf(str).intValue() + 1;
}
application.setAttribute("num",n);
out.print("Hello, 您是第 " + application.getAttribute("num") + " 位 guest!");
%>
</body>
</html>

JSP | application 对象详解 & 网站计数器实现的更多相关文章

  1. jsp request 对象详解

    转自:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 1.request对象 客户端的请求信息被封装在request对象中 ...

  2. Application对象详解

    定义// import javax.servlet.ServletContext;// ServletContext类:用于表示应用程序的上下文// 取得application对象ServletCon ...

  3. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. SpringBoot配置文件 application.properties详解

    SpringBoot配置文件 application.properties详解   本文转载:https://www.cnblogs.com/louby/p/8565027.html 阅读过程中若发现 ...

  5. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  6. Window 对象详解 转自 http://blog.csdn.net/jcx5083761/article/details/41243697

    详解HTML中的window对象和document对象 标签: HTMLwindowdocument 2014-11-18 11:03 5884人阅读 评论(0) 收藏 举报 分类: HTML& ...

  7. mvc-servlet---ServletConfig与ServletContext对象详解(转载)

    ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...

  8. dom对象详解--document对象(一)

     document对象 Document对象代表整个html文档,可用来访问页面中的所有元素,是最复杂的一个dom对象,可以说是学习好dom编程的关键所在. Document对象是window对象的一 ...

  9. jQuery的deferred对象详解(一)

    最近一段时间,都在研究jquery里面的$.Deffered对象,几天都搞不明白,其中源码的运行机制,网上查找了相关的资料,<jQuery的deferred对象详解>阮一峰老师的文章,里面 ...

  10. [转] jQuery的deferred对象详解

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...

随机推荐

  1. 如何修改Ubuntu的时间与时间同步

    1.安装ntpdate,同步标准时间 zce@ubuntu:~$ sudo apt install ntpdate 输入管理员密码确认安装 zce@ubuntu:~$ sudo apt install ...

  2. 快速认识,前端必学编程语言:JavaScript

    JavaScript是构建Web应用必学的一门编程语言,也是最受开发者欢迎的热门语言之一.所以,如果您还不知道JavaScript的用处.特点的话,赶紧补充一下这块基础知识. JavaScript 是 ...

  3. 记一次 .NET 某新能源材料检测系统 崩溃分析

    一:背景 1. 讲故事 上周有位朋友找到我,说他的程序经常会偶发性崩溃,一直没找到原因,自己也抓了dump 也没分析出个所以然,让我帮忙看下怎么回事,那既然有 dump,那就开始分析呗. 二:Wind ...

  4. pinia状态管理初识

    一款官方推荐的,代替vuex的,新的状态管理工具. 官方网: https://pinia.vuejs.org/zh/introduction.html 主要区别: 去除了modules的概念,每个st ...

  5. 华企盾DSC防泄密客户端安装卡住

    解决方法: 1.安装了杀毒或者同行软件,退出后安装不行的话卸载掉 2.注册表编辑被管理员禁用,导致客户端安装时一直卡住,启用注册表编辑(后续2021.6.21后发布的版本可直接安装) 由于安装了卡巴斯 ...

  6. 使用ztncui配置私有化zerotier服务器

    众所周知,Zerotier-One是一个非常好的组建虚拟局域网的工具,可以以p2p的方式穿透NAT网络进行连接.但是在使用中也仍然存在着一些瑕疵,主要就是以下两点: 因为Zerotier官方提供的中心 ...

  7. 学一点关于JVM类加载的知识

    要研究类加载过程,我们先要知道关于 Java 处理代码的流程是怎么样的. 第一步:编写源代码 这一步是我们最熟悉的,就是我们在 idea 上写的业务代码,生成 Example.java 文件. pub ...

  8. 为什么要重写equals()?

    为什么要重写equals()? Equals和 == 的区别: ==:是个运算符, 判断是否相等,基本数据类型进行判断 也可判断两个对象相等,比较两个对象的哈希码值 Equals:是个Object类的 ...

  9. 解决方案 | VS2022 + AutoCAD2024 + ObjectARX2024环境搭建过程

    一.准备工具 1.vs2022 自行网络搜索,各种版本均可(比如专业版.社区版),注意使用社区版必须使用最新版,目前是17.8版本,否则最终会无法使用样板. 2.cad2024 自行网络搜索 3.Ob ...

  10. X410的白嫖方案

    微软商店下的x410要收费试用也就几天,记录白嫖方案.配置和使用跳转到上一篇文章:Windows下使用图形化的Havoc C2 编译运行 GitHub上start最多的是这个仓库,但是已经很久没有维护 ...