String filePath = request.getSession().getServletContext().getRealPath("/");
1、表示获得服务器的绝对路径的意思。
2、getRealPath问题:
String filename=request.getRealPath(filename)。
信息:warning: [deprecation] getRealPath(java.lang.String) in javax.servlet.ServletRequest has been deprecated。
解决:这个getRealPath方法已经不建议使用了,参看request.getRealPath的java doc,Deprecated. As of Version 2.1 of the Java Servlet API, use,ServletContext.getRealPath(java.lang.String) instead.而在servlet中使用getServletContext.getRealPath()这个方法受到war 和non-war的影响,以及不同app server实现的影响,运气好的话,你常常会得到null,比如你在weblogic上部署war文件,又调用这个方法。推荐ServletContext.getResourceAsStream
3、关于serveletContext.getRealPath返回NULL和不同的app server返回不同的结果:
有几个配置文本配置文件(是一些报表的模板),放在WEB-INF下面的config目录下,程序中是这样得到这个config的实际路径的:先用 serveletContext.getRealPath得到根路径,tomcat中比如是c:\tomcat\webapp\test,然后我加上 "/WEB-INF/config/aa.config",这样得到文件的path然后进行读入,应用在tomcat上跑是ok的,后来将war放到weblogic上,出错,原因是:在weblogic上用getRealPath得到的是myserver\stage\_appsdir_test_war\test.war!\WEB-INF\config....这样的路径,于是一直报FileNotFoundException。