ServletContext.getRealPath() 的输入参数要以"/"开头
来源:互联网 发布:mac专柜价格口红 编辑:程序博客网 时间:2024/06/14 18:47
ServletContext.getRealPath() 的输入参数要以"/"开头
ServletContext.getRealPath() 是从当前servlet 在tomcat 中的存放文件夹开始计算起的
比如,有个servlet 叫 UploadServlet,它部署在tomcat 下面以后的绝对路径如下:
"C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet"
那么,
ServletContext.getRealPath("/") 返回 "C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet"
ServletContext.getRealPath("/attachment") 返回 "C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet\attachment"
ServletContext.getRealPath("attachment") 会导致NullPointerException
结论就是:
在使用ServletContext.getRealPath() 时,传入的参数是从 当前servlet 部署在tomcat中的文件夹算起的相对路径,要以"/" 开头,否则会找不到路径,导致NullPointerException
解决问题过程中,发现这位大哥做了类似的记录 ServletContext .getRealPath,但其观点,不敢苟同。自己观察到的结果是:
ServletContext.getRealPath("/") 返回 "C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet"
ServletContext.getRealPath("/") + "xxx" 返回 "C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServletxxx"
ServletContext.getRealPath("/") + "/xxx" 返回 "C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet\xxx"
即,getRealPath() 返回的字符串结尾不带"/"
注意,Windows下,在Eclipse debug过程中,看到的getRealPath() 返回的字符串其实是长这样子的:
"C:\\Program Files\\apache-tomcat-8.0.3\\webapps\\UploadServlet\\attachment"
"\\"中的第一个"\"是转义符,你懂的。
BTW,刘京华的《Java Web整合开发 之 王者归来》第71页代码中的 getRealPath("attachment") 以及附带光盘中的代码,着实坑爹……
- ServletContext.getRealPath() 的输入参数要以"/"开头
- ServletContext.getRealPath() 的输入参数要以"/"开头
- ServletContext .getRealPath
- servletcontext.getRealPath()
- 关于servletContext.getRealPath()空指针的问题
- excel表格怎么输入以0为开头的数字
- 快速在Excel2007中输入以0开头的数字
- OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)
- JavaEE程序有一大路径陷阱,那就是ServletContext的 getRealPath方法
- 以星号开头的好处
- 以Afx开头的函数
- 以&#开头的是什么编码?
- 判断以#开头的字符
- 删除以"-"开头的文件
- 以re开头的单词
- 解决Easyui的numberbox无法输入以0开头的数字编号
- Jquery选择器,选择ID以"某某"字符开头的一组文本框只能输入数字
- EditText中输入的内容不能小于一位数字切不能以0开头
- C#笔记
- 产品上线的那天晚上
- 贝塞尔曲线练习之弹性的圆
- C中fread()函数返回值特别说明
- 第92讲:Akka第一个案例动手实战开发环境的搭建
- ServletContext.getRealPath() 的输入参数要以"/"开头
- gradle--第十二章 使用Gradle图形用户界面接口
- Eclipse “cannot be resolved to a type” error
- Failed to read key from keystore解决方案
- mac Can't connect to MySQL server on '127.0.0.1' (61)
- Android自定义控件
- HDU 1541 Stars (树状数组)
- GPU 图像处理trick
- 可空数据类型 和 随机数