tomcat的work目录不是缓存
2016-06-13 11:45
253 查看
最近发现,很多网友喜欢把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文件内。
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文件内。
相关文章推荐
- Jenkins+maven+tomcat8自动构建部署配置
- tomcat设置默认项目
- Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹
- Tomcat配置详解,配置文件server.xml详解
- Tomcat配置详解,配置文件server.xml详解
- 【转载】Tomcat 7.0.6X 启动慢并且遇到StackOverflowError的异常的解决办法
- eclipse-mysql-tomcat bug之旅
- 配置tomcat-users.xml文件
- Tomcat探秘(5):tomcat关闭过程详述
- Ubuntu-jdk+tomcat+eclipse软件包安装
- 远程linux服务器Tomcat中重新集成详解
- MyEclipse迁移过程中Tomcat版本不一致的解决办法
- Server Tomcat v*.* Server at localhost failed to start.
- Linux服务器jdk,tomcat配置
- 搭建java开发环境+配置tomcat+使用eclipse
- tomcat简介及原理解说
- Apache+Tomcat+AJP
- 轻松两步搞定 Intelli Idea Tomcat 项目热部署
- tomcat
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决