当前位置: 首页 > news >正文

对于FileUpload控件的一些bug

我写的程序,问题出现的也很神奇,就是我在上传已经存在在我指定目录下的就可以成功,如果不存在,上传仍是可以成功的,但是就会不显示,但是你重启服务器的时候又会再次显示。这种问题出现的原因我们就需要了解javaweb项目运行的本质了

  1. 编译Java源代码:

    • 当你修改Java源代码时,比如在IDE中保存文件时,IDE会自动重新编译修改的Java文件。
    • 编译后的.class文件通常会被输出到项目的输出目录,例如默认情况下是out目录。
  2. 部署到服务器:

    • 一旦项目被编译完成,你可以将项目部署到Web服务器上,比如Tomcat。
    • 部署通常涉及将编译后的文件以及其他资源文件(例如JSP、HTML、CSS、JavaScript等)复制到Web服务器的指定目录中。
  3. 服务器运行:

    • 一旦部署完成,你可以启动Web服务器,让项目在服务器上运行。
    • Tomcat等Web服务器会将项目中的文件加载到内存中,并提供对外服务。

当你在本地修改项目文件时,确实会改变项目文件的内容,包括源代码文件、配置文件等。但是,对于Java Web项目而言,服务器实际上是运行的编译后的文件,而不是源代码文件。因此,你在本地修改源代码文件后,必须重新编译项目并重新部署到服务器上,服务器才能加载最新的编译后的文件,从而生效你的修改。

通常情况下,IDE会自动将编译后的文件输出到指定的目录(例如out目录),而Web服务器则会加载这些编译后的文件。因此,如果你修改了源代码文件,但没有重新编译项目并重新部署到服务器上,服务器上运行的仍然是之前的编译后的文件,所以你看到的效果不会发生变化。

因此,要使你的修改生效,你需要重新编译项目并重新部署到服务器上,或者使用一些支持热部署的工具来自动重新加载修改后的类文件。

上面是问题出现的原因:下面是我的问题与更正方案

C:/Users/86177/Desktop/ch3/jsp/img   这是我设置的错误目录

C:/Users/86177/Desktop/ch3/out/artifacts/ch3_Web_exploded/jsp/img  这是更正后的目录

我的问题出现的原因也就是上述所说的,项目实际运行的是我编译后的文件,我的程序在编译的时候img目录下有的图片都会被编译,但没有的不会,而我上传新的到这个目录就无法被编译,而找不到路径,但我将上传路径设置为out目录下就可以了,编译后的.class文件会被复制到WEB-INF/classes目录下。实际我们在项目中使用的页面还有静态资源(图片)都是在这个out目录下寻找的,修改源代码并不会影响这个out目录,只有重新编译才会,因此,即使IDE的out目录中的文件在IDE会话结束时被清除,编译后的文件依然存在于部署目录中,直到你重新部署或重新构建项目。我重新部署项目又会显示也是存在的这个问题的原因。

http://www.lryc.cn/news/347521.html

相关文章:

  • 哲学家就餐问题
  • Web安全:SQL注入之布尔盲注原理+步骤+实战操作
  • 电商秒杀系统-案例04-redis下的session控制
  • 贪吃蛇(c实现)
  • 【论文阅读笔记】MapReduce: Simplified Data Processing on Large Clusters
  • LeetCode题练习与总结:二叉树的中序遍历--94
  • 云计算十三课
  • [数据集][目标检测]电力场景安全帽检测数据集VOC+YOLO格式295张2类别
  • AtCoder Beginner Contest 308 A题 New Scheme
  • C++编程与朱元墇的关系
  • 0060__设计模式
  • 【Linux 网络】网络编程套接字 -- 详解
  • 编译OpenResty遇到找不到OpenSSL的解决办法
  • Amazon Bedrock 托管 Llama 3 8B70B
  • 海豚调度器早期版本如何新增worker分组
  • Debian Linux 下给Nginx 1.26.0 编译增加Brotli算法支持
  • 中国银行从业在线教育系统,如何搭建网课平台?
  • 解决java.lang.IllegalArgumentException异常的正确方法
  • 齿轮滚刀刃口钝化技术简介
  • 【ESP32接入ATK-MO1218 GPS模块】
  • EDA设计学习笔记2:STM32F103C8T6最小系统板的仿绘
  • 实现树莓派DS18B20读取温度(OneWire)
  • Android 蓝牙实战——蓝牙音乐播放/暂停状态(二十二)
  • linux学习:视频输入+V4L2
  • [AutoSar]BSW_Diagnostic_004 ReadDataByIdentifier(0x22)的配置和实现
  • C语言笔记13
  • JavaScript进阶——04-创建对象和继承
  • 队列(详解)
  • 【原创】nnUnet V1在win11下的安装与配置
  • C语言之指针初阶