application是javax.servlet.ServletContext接口的对象,在此对象中提供了大量的方法,但是这些方法中最主要的应用有两组:
|---属性操作:setAttribute()、getAttribute()、removeAttribute()
|---取得一个虚拟目录对应的真实路径:getRealPath(String path)
|----取得真实路径
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page contentType="text/html; charset=GBK" import="java.io.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>application取得真实路径</title>
</head>
<body>
<h2><%=this.getServletContext().getRealPath("/")%></h2>
</body>
</html>
输出结果为:C:\JavaApp\workspace\javaweb\WebRoot\ 即是我么web项目的部署路径,<Context path=" " docPath=" C:\JavaApp\workspace\javaweb\WebRoot\" reloadable="true" />
如果要取得web应用程序所使用的协议:可以使用 String scheme = request.getScheme() 结果为http
如果要取得web应用服务器的服务器名字:可使用 String servername = request.getServerName();
如果要取得web应用服务器的IP地址:可使用 String ipaddr = request.getRemoteAddr();
如果要取得web服务器所使用的端口名字:可使用 int port = request.getServerPort();
如果要取得path的路径(虚拟目录的名称),即<Context path="/javaweb">时,可以使用String path = request.getContextPath();
以上几个变量可以拼凑一个web服务器的路径: String basepath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()
拼凑的结果为: http://127.0.0.1:8080/javaweb/
上面的实例我们通过this.getServletContext().getRealPath()得到的是应用程序部署的真实路径,既然你能够得到真实路径我们就可以在web中进行IO操作: