application认识(一)

事先说明几个常见的内置对象:web

out:用于向客户输出数据数据库

request:主要用于客户端请求的数据信息浏览器

response:用于响应客户端请求并向客户端输出信息服务器

session:用于记录会话状态的相关信息cookie

application:相似于系统的全局变量,用于实现web应用中的资源共享session

使用session能够保存当前用户的会话状态信息,一我的用户对应一个session,可是若是要访问人数,须要web应用系统中的全部用户共享,这时候就要用到application。app

application对象相似于系统的“全局变量”用于同一个应用内的全部用户之间数据共享。jsp

例子网站

<%spa

Integer count=(Integer)application.getAttribute("count");

if(count!=null){

count=count+1;

}else{

count=1;

}

%>

展现页面 

<%

Integer i=(Integer)application.getAttribute("count");

out.print("统计访问量:目前有"+i+"我的访问过本网站");

%>

application做用域是针对整个web应用,被该应用下全部用户所共享,在web应用运行期间,全部页面均可以访问application做用域内的变量,其做用域作大,application做用域经过application对象的setAttribute()和getAttribute()方法访问。

例子:

testOne.jsp页面

<%

String app="abc";

String ses="session";

session.setAttribute("sesName",ses);

applicatin.setAttribute("appNmae",app); 

response.sendRedirect("xxxxx.jsp");

%>

testTwo.jsp页面:

app:<%=session.getAttribute("sesName")%>

ses:<%=application.getAttribute("appNmae")%>

若是运行testOne页面则输出:

app:abc

ses:session

若是直接运行testTwo.jsp页面

app:abc

ses:null

说明缘由:

因为session做用域是针对当前会话,多个会话之间不能共享,因此没法读取ses变量。而application做用域是正对整个应用,因此appName变量能够被再次读取(注:若重启web应用,现有的application做用域会失效)

对比:

1 session在服务器,cookie在客户端  2 session默认被存在在服务器的一个文件里(不是内存)  3 session的运行依赖sessionid,而sessionid是存在cookie中的,也就是说,若是浏览器禁用了cookie ,同时session也会失效,能够经过其它方式实现  4 session能够放在文件、数据库、或内存中均可以。  5 登陆验证或保持一段时间登陆状态,通常会用session来验证

相关文章
相关标签/搜索