request.getContextPath()是在开发Web项目时,经常用到的方法,其作用是获取当前的系统路径。
当使用Tomcat作为Web服务器,项目一般部署在Tomcat下的webapps的目录下。具体来说主要用两种部署的路径:
![](https://i-blog.csdnimg.cn/blog_migrate/48411b30cc09bf1845aafaede5ac5835.gif)
一是将web项目中的webRoot下的文件直接拷贝到webapps/ROOT下(删除ROOT下的原有文件);
另一中方法在Tomcat下的webapps中创建以项目名称命名(当然也可以用其他的名称)的文件夹,并将webRoot下的文件直接拷贝到该文件夹下。
对于第一部署方法,request.getContextPath()的返回值为空(即:"",中间无空格,注意区分null)。
对于第二部署方法,其返回值为:/创建的文件夹的名称。
![](https://i-blog.csdnimg.cn/blog_migrate/139e7125bfff1255b4304ed2c7d943f1.gif)
另外,我是自行设定工作目录的C:/J2EE,访问虚拟路径是jsp,则返回值是/jsp的,刚才实验得出。
另外,对于SmartUpload.downloadfile()方法,其文件名参数中的路径部分是一个相对路径,并不包含由request.getContextPath()函数读取的部分,而仅仅包含该路径下的路径。