idea用tomcat发布javaWeb项目中的存在的图片存储路径问题解决

在将项目从MyEclipse迁移到IDEA并使用Tomcat部署时,发现图片上传存储路径出现问题。原来在MyEclipse中,静态资源存储在tomcat的webapp目录下,但在IDEA中,项目发布到artifacts的Output directory。为了解决这个问题,可以将图片存储路径改为Tomcat的webapp目录,通过获取服务器根目录并替换项目名为绝对路径。此外,设置IDEA的Tomcat配置,添加外部源并配置虚拟路径以访问静态资源,这样在JS或JSP中可以使用绝对路径直接访问图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

公司最近跟潮流,在技术一块进行了大刀阔斧的改革,换了编辑器(idea),换了框架(Spring+SpringMVC+Hibernate),更新了底层,优化了代码,除了原有的后台框架基础(ZK),和我们这些五大三粗的程序员和程序媛们,所有的都换了,这样的好处也就是让我们这些目光短浅的井底之蛙也见到了外面的世界,见到了外面新奇的技术,总的来说还是很有好处的。这也让我们提起了干劲,摸索着前进。
今天在做微信图片上传的时候碰到了一个坑爹的骂娘的bug,这问题在原来的myeclipse中不是问题,因为在myeclipse中,项目通过tomcat发布都是发布到webapp目录下的,而在上传图片这种静态资源的时候,考虑到图片不能随着项目发布而消失,所以我们以前的解决方法就是在tomcat的webapp目录下建一个与项目同级的files文件夹,用于存储图片,excel,word等静态文件。这样的话就可以有效的避免在项目发布的过程中静态资源消失的问题。但是换到idea中之后,由于在idea中,项目通过tomcat发布时,项目并不是存在tomcat里的,而是存在artifacts中的Output directory所对应的文件目录下。
这里写图片描述
所以用了绝对路径也找不到,用相对路径更加不对,花了很多时间。后来想到,既然路径可以自己定义那为什么不和以前一样放在tomcat的webapp下面呢,不仅熟悉,而且安全,可以控制权限,这里建议大家不要把项目代码或者静态资源放在服务器的C、D、E这种硬盘上,如果被黑客入侵那么资源就没了,tomcat的webapp目录可以设置访问修改权限所以比较安全。修改了项目发布的路径就简单了。

  1. 在项目的入口请求中,也就是用户整个系统
### 如何在JavaWeb项目中通过IntelliJ IDEA插入图片 要在JavaWeb项目中成功插入并显示图片,可以按照以下方式操作: #### 1. 图片存储路径设置 通常情况下,在JavaWeb项目结构中,静态资源(如图片、CSS文件等)应放置于`webapp`目录下的特定子目录中。例如创建一个名为`images`的文件夹用于图片。 ```plaintext src/ main/ webapp/ WEB-INF/ index.jsp images/ <-- 图片的位置 ``` 此配置确保了这些资源能够被服务器正确加载[^1]。 #### 2. 配置ImageLoader (如果适用) 当遇到错误提示 `ImageLoader must be init with configuration before using` ,这表明需要初始化 ImageLoader 的配置才能正常使用它来处理图像加载逻辑。可以通过如下代码片段完成初始化工作: ```java import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; public class Main { public static void main(String[] args) { // 初始化 ImageLoader 配置 ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(Main.class.getClassLoader())); } } ``` 上述代码展示了如何利用 Universal Image Loader 库来进行图片管理前必要的准备工作。不过需要注意的是,对于简单的图片展示场景可能并不需要用到此类库;只有涉及复杂需求时才考虑引入第三方工具支持。 #### 3. HTML/JSP页面调用图片 一旦将所需图片放入指定位置之后,则可以在前端HTML或者JSP页面上通过标准标签引用它们。比如下面的例子就是在网页中嵌入了一张位于 `/images/example.jpg` 路径下的照片: ```html <img src="${pageContext.request.contextPath}/images/example.jpg" alt="Example"> ``` 这里 `${pageContext.request.contextPath}` 动态获取当前应用上下文根路径以构建完整的URL地址。 #### 4. 测试运行效果 最后一步就是启动Tomcat或其他Servlet容器服务端程序,并访问对应的测试链接查看实际渲染出来的结果是否符合预期。 --- ### 注意事项 - 确认所使用的框架版本兼容性以及依赖项已正确定义到项目的pom.xml(如果是Maven工程的话)当中。 - 如果采用Spring MVC之类的高级架构模式开发网站功能模块, 则还需要额外关注控制器(Controller)层关于静态资源配置的相关设定部分。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值