最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它叫work目录而不是cache目录的原因。   jsp,tomcat的工作原理是当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转换成.java文件,比如将index.jsp转换为index_jsp.java文件,而后编译为index_jsp.class文件,最后tomcat容器通过ClassLoader类把这个index_jsp.class类装载入内存,进行响应客户端的工作。
  tomcat会定时稍描容器内的jsp文件,读取每个文件的属性,当发现某个jsp文件发生改变时(文件的最后修改时间与上次稍描时不相同时),tomcat会重新转换、编译这个jsp文件。但是tomcat的稍描是定时的不是实时的,这也正是为什么jsp文件修改后需要几分钟的时间来等修改过的jsp生效。当然为了即刻生效,很多老前辈都会建议在修改jsp页面后立即清除work目录里的文件。
  另外,tomcat容器中,对转换后的java文件(比如:index_jsp.java)的编译最大只支持64k,所以在其他容器中的jsp移植到tomcat容器中时会遇到大jsp文件会发生无法编译的情况,所以建议把jsp中的业务逻辑写入单独的类,在jsp中通过调用这个类的静态方法来执行,并将jsp页面中的js提取出来放到单独的js文件内。
觉得很不错的文章

tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...相关推荐

  1. JAD反编译class文件成java文件

    class文件是字节码文件,打开谁也看不懂,但是如果需要用里面代码的时候怎么办呢?其实通过JAD就可以进行反编译class文件成java文件 1.下载JAD JAD官网:https://varanec ...

  2. tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...

    今天部署项目到tomcat,发布完后,启动tomcat,报class not found: 临时找了个解决方案,由于项目是copy过来的,于是就将原来项目的classes下面编译好的class文件也一 ...

  3. vue打包放到Java项目里_【vue】webpack打包vue项目并且运行在Tomcat里面

    在package.json里面是script加入脚本"publish": " webpack --config webpack.publish.config.js -p& ...

  4. Android 反编译 -smali文件对比java文件

    smali文件对比java文件     .class        :类名     .super        :父类     .source        :源文件名     .implements ...

  5. Tomcat下work目录的作用

    1.work目录的作用 work目录是tomcat的工作目录.对于jsp来说,tomcat的工作原理是当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转换成.java文件, ...

  6. tomcat work目录作用

    今天在部署项目的时候,发现我已经将jsp部署完了,但是页面一直没有刷新,然后跑去问下同事,发现是tomcat缓存的问题. 在这里学习一下tomcat的缓存,摘自网上: work目录只是tomcat的工 ...

  7. Linux 下各个目录的作用及内容

    Linux 下各个目录的作用及内容 在 Linux 下,我们看到的是文件夹(目录): 在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱.Linux 面世不久后,对 ...

  8. JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?

    文章目录 前言 一.JSP 文件编译流程原理 二.创建并运行待测试 JSP 页面 三.查找 JSP 编译文件输出位置 3.1.打开动态项目运行配置 3.2.查看 JSP 编译文件输出位置 3.3.查看 ...

  9. Java的class文件批量反编译成Java文件

    Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...

最新文章

  1. js生成随机数函数,倒计时函数
  2. Unable to merge dex
  3. 使用Github Pages建独立博客
  4. 将CRgn rgn对象以图片形式输出便于查看
  5. SAP WebIDE编辑器的主题设置
  6. Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
  7. docker安装与学习
  8. 【VMCloud云平台】SCAP(一)规划
  9. Python 编码规范(Google) (一)
  10. HbuliderX 历史版本下载
  11. 二开精美UI站长论坛网站源码 可切换界面
  12. excel如何把顺序倒过来_春节酒局多,这些葡萄酒倒酒礼仪你一定要知道
  13. 在ubuntu里烧win10安装盘
  14. 【kuangbin专题】Manacher
  15. ADF4351应用电路
  16. 神州十三号即将发射!翟志刚担任指令长,女航员竟是她?
  17. 【转】Unity5 新AssetBundle打包方式 BuildPipeline.BuildAssetBundles
  18. 重磅:腾讯低代码平台正式开源!可拖拽生成手机、PC等项目!接私活福利啊!...
  19. 我和欧阳娜娜一起搞研发
  20. ContOS中常用软件的安装

热门文章

  1. ***PHP中empty()和isset()的区别
  2. c语言基础 验证ascii 码表
  3. JSP/Servlet 工作原理
  4. iptables总结
  5. 技术开发项目收获了什么_有幸入职字节跳动一年,附上百度、字节跳动等后台面经,谈谈我的收获!...
  6. Xamarin图表开发基础教程(4)OxyPlot框架
  7. Xamarin XAML语言教程隐藏文件使用Progress属性设置进度条
  8. Swift版iOS游戏框架Sprite Kit基础教程下册
  9. java策略管理_详解Java编程中的策略模式
  10. 地图点击省跳转到市_城市天际线导入真实世界地图教程