Application:
主要的方法操作:
·属性的操作:setAttribute()、getAttribute()、removeAttribute();
·获取虚拟目录对应的真实路经:application.getRealPath(String path);
一般application表示的是上下文,但是实际的开发中,往往很少直接使用application,而是使用getServletContext()方法来代替application。
例如:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*"%>
<h1><%=application.getRealPath("/")%></h1>
写成了
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*"%>
<h1><%=getServletContext.getRealPath("/")%></h1>
网上计数器的实现:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*"%>
<%!
// 读取文件
public int load(String path){
int temp = 0 ;
try{
File f = new File(path) ;
BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream(f))) ;
String str = buf.readLine() ;
temp = Integer.parseInt(str) ;
buf.close() ;
}catch(Exception e){}
return temp ;
}
public synchronized void save(int c,String path){ // 需要同步
try{
File f = new File(path) ;
PrintStream ps = new PrintStream(new FileOutputStream(f)) ;
ps.print(c) ;
ps.close() ;
}catch(Exception e){}
}
%>
<%
String path = getServletContext().getRealPath("/") + "count.txt" ;
int count = load(path) ;
%>
<%
if(session.isNew()){ // 如果是第一次访问
save(++count,path) ;
}
%>
<h2>您是第位<%=count%>访问者!!</h2>