日期:2014-05-16  浏览次数:20397 次

JSP学习笔记之application对象

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操作: