Jsp中的Application使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jsp中的Application使用相关的知识,希望对你有一定的参考价值。
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务 器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
<%@page contentType="text/html;charset=GB2312"%>
<html>
<head> </head>
<body>
<center>
<font size="5">application对象的使用</font>
<hr/>
<%
Object o = null;
String strNum = (String) application.getAttribute("Num"); //与session相同
int Num = 0;
if (strNum != null)
Num = Integer.parseInt(strNum) + 1;
application.setAttribute("Num", String.valueOf(Num));
%>
application对象中的
<font color="blue">Num</font>
变量值为:
<font color="red"><%=Num %> </font>
<br/>
</center>
</body>
</html> 参考技术A application是jsp9大内置对象中的一个.用于保存全局的参数变量,生命周期为容器的生命周期..有点类似java类的static声明的map类型的变量. 参考技术B 保存全局参数用的,建议查找相关文档!JAVAEYE上资料很全的,我也很多年没写JSP了 参考技术C
以使用Session的监听来检测用户在线离线情况:
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
public class UserListener implements HttpSessionListener
private static HashMap activeUsers = new HashMap();
/* Session创建事件 */
public void sessionCreated(HttpSessionEvent ev)
activeUsers.put(ev.getSession().getAttribute("userKey"),ev.getSession().getAttribute("userName"));
/* Session失效事件 */
public void sessionDestroyed(HttpSessionEvent ev)
activeUsers.remove(ev.getSession().getAttribute("userKey"));
public static HashMap getActiveUsers()
return activeUsers;
----------------------------------
web.xml中加入:
listener>
listener-class>
com.yourCompany.listener.UserListener
/listener-class>
/listener>
------------------------
listener可以有多个 ,不同的listener有不同的用途
10.有一种气叫运气,它能让你遇难呈祥;有一种气叫福气,它能让你一生无忧,现在我将它们送给你,就让它们永远伴随你!
Jsp中的pageContext对象
这个对象代表页面上下文。组要用于访问页面共享数据。使用pageContext可以直接访问request,session,application范围的属性,看看这些jsp的页面:
JSP 页面使用 pageContext 对象多次设置属性,在设置属性时,如果没有指定属性存在的范围,则属性默认在 page 范围内;如果指定了属性所在的范围,则属性可以被存放在application,session,request 等范围中。
pageContext对象:
pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。
通过pageContext获得其他对象:
getException方法返回exception隐式对象
getPage方法返回page隐式对象
getRequest方法返回request隐式对象
getResponse方法返回response隐式对象
getServletConfig方法返回config隐式对象
getServletContext方法返回application隐式对象
getSession方法返回session隐式对象
getOut方法返回out隐式对象
pageContext封装其它8大内置对象的意义,思考:如果在编程过程中,把pageContext对象传递给一个普通java对象,那么这个java对象将具有什么功能?
pageContext作为域对象 :
pageContext对象的方法
public void setAttribute(java.lang.String name,java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)
public void removeAttribute(java.lang.String name)
pageContext对象中还封装了访问其它域的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
代表各个域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法 (*重点,查找各个域中的属性)
以上是关于Jsp中的Application使用的主要内容,如果未能解决你的问题,请参考以下文章
[flask初学问题]RuntimeError: No application found. Either work inside a view function or push an applica
JSP中的application对象是singleton模式的吗?
如何传递 GOOGLE_APPLICATION_CREDENTIALS 中的内容而不是文件路径?