这个问题很简单,关键一招就是:
ServletContext sct = getServletContext();
System.out.println("[Log4j]: The Root Path: " + sct.getRealPath("/"));
关键就是上面黑体标出的语句.
具体怎么用呢,首先,可以做一个容器载入时就起动的Servlet,假设它叫:InitServlet
它在Web.xml中的配置为:
<servlet>
<servlet-name>InitServlet</servlet-name>
<servlet-class>junglesong.familymeno.servlet.InitServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
这样做了以后,InitServlet的init函数在容器载入应用程序时就会被调用,这是<load-on-startup>参数施的魔法.注意这里数值越小越先载入.
然后,把绝对路径设置到一个共通类的静态成员中即可,这里就不赘述了.多说一句,同样的功能在Struts框架的程序采用Plugin机制比较好.
