Intellij下getServletContext().getRealPath()的路径问题

Intellij下getServletContext().getRealPath()的路径问题

在IDEA下面使用这个方法的话,得到的URI并不是我想要的,它会定位到编译后的out文件夹下的如下位置,请问应该如何解决呢?

http://img1.sycdn.imooc.com//climg/5ba1dbe80001baa916030187.jpg

我的upload文件实际放在web文件夹下,之前还发现自己的jar lib必须放在web-inf下否则无法加载相关类。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

1、如果同学用的是idea ,可以直接在web下创建一个upload 文件夹,并且里边随便放过文件(idea对空的文件夹不编译,所以要放个文件)idea在编译的时候,会把这个文件夹一起编译进去的。

2、可以在上传的时候,获取到真实路径后,做如下处理, 此代码的意思是,判断这个文件夹存不存在,如果不存在,则创建一个。

 System.out.println(realPath);
                    File file = new File(realPath);
                    System.out.println("realpath"+realPath);
                    // 判断指定路径的文件是否存在
                    boolean isExists = file.exists();
                    if (isExists == false) {// 如果不存在则创建
                        file.mkdirs();
                    }

 推荐使用第二种方法。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

提问者 慕粉0010189952 2018-09-19 13:27:29

我现在用的办法比较暴力,就是直接在web_war_exploded下新建一个upload文件夹,可行,但有没有智能一点的办法来处理文件夹从源文件到war的映射

  • 发布后的项目就是放在out文件夹下的呦。相当于eclipse中把项目发布到了tomcat中。关于jar放的位置 ,同学可以参考一在这个问答下,老师的回复: http://class.imooc.com/course/qadetail/62563 祝学习愉快。
    2018-09-19 14:24:59
  • 提问者 慕粉0010189952 回复 好帮手慕阿莹 #2
    谢谢老师,那关于upload文件夹的问题应该如何解决呢,通过getServletContext().getRealPath()得到的路径是编译后的war的路径,也就是说静态资源文件夹就是要等到编译完成之后手动在war包中建立吗?谢谢。
    2018-09-19 22:27:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师