tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...
最近发现,很多网友喜欢把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页面则这个项目文件夹为空...相关推荐
- JAD反编译class文件成java文件
class文件是字节码文件,打开谁也看不懂,但是如果需要用里面代码的时候怎么办呢?其实通过JAD就可以进行反编译class文件成java文件 1.下载JAD JAD官网:https://varanec ...
- tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...
今天部署项目到tomcat,发布完后,启动tomcat,报class not found: 临时找了个解决方案,由于项目是copy过来的,于是就将原来项目的classes下面编译好的class文件也一 ...
- vue打包放到Java项目里_【vue】webpack打包vue项目并且运行在Tomcat里面
在package.json里面是script加入脚本"publish": " webpack --config webpack.publish.config.js -p& ...
- Android 反编译 -smali文件对比java文件
smali文件对比java文件 .class :类名 .super :父类 .source :源文件名 .implements ...
- Tomcat下work目录的作用
1.work目录的作用 work目录是tomcat的工作目录.对于jsp来说,tomcat的工作原理是当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转换成.java文件, ...
- tomcat work目录作用
今天在部署项目的时候,发现我已经将jsp部署完了,但是页面一直没有刷新,然后跑去问下同事,发现是tomcat缓存的问题. 在这里学习一下tomcat的缓存,摘自网上: work目录只是tomcat的工 ...
- Linux 下各个目录的作用及内容
Linux 下各个目录的作用及内容 在 Linux 下,我们看到的是文件夹(目录): 在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱.Linux 面世不久后,对 ...
- JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?
文章目录 前言 一.JSP 文件编译流程原理 二.创建并运行待测试 JSP 页面 三.查找 JSP 编译文件输出位置 3.1.打开动态项目运行配置 3.2.查看 JSP 编译文件输出位置 3.3.查看 ...
- Java的class文件批量反编译成Java文件
Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...
最新文章
- js生成随机数函数,倒计时函数
- Unable to merge dex
- 使用Github Pages建独立博客
- 将CRgn rgn对象以图片形式输出便于查看
- SAP WebIDE编辑器的主题设置
- Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
- docker安装与学习
- 【VMCloud云平台】SCAP(一)规划
- Python 编码规范(Google) (一)
- HbuliderX 历史版本下载
- 二开精美UI站长论坛网站源码 可切换界面
- excel如何把顺序倒过来_春节酒局多,这些葡萄酒倒酒礼仪你一定要知道
- 在ubuntu里烧win10安装盘
- 【kuangbin专题】Manacher
- ADF4351应用电路
- 神州十三号即将发射!翟志刚担任指令长,女航员竟是她?
- 【转】Unity5 新AssetBundle打包方式 BuildPipeline.BuildAssetBundles
- 重磅:腾讯低代码平台正式开源!可拖拽生成手机、PC等项目!接私活福利啊!...
- 我和欧阳娜娜一起搞研发
- ContOS中常用软件的安装
热门文章
- ***PHP中empty()和isset()的区别
- c语言基础 验证ascii 码表
- JSP/Servlet 工作原理
- iptables总结
- 技术开发项目收获了什么_有幸入职字节跳动一年,附上百度、字节跳动等后台面经,谈谈我的收获!...
- Xamarin图表开发基础教程(4)OxyPlot框架
- Xamarin XAML语言教程隐藏文件使用Progress属性设置进度条
- Swift版iOS游戏框架Sprite Kit基础教程下册
- java策略管理_详解Java编程中的策略模式
- 地图点击省跳转到市_城市天际线导入真实世界地图教程