tomcat work目录

1    用tomcat作web服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序(发布到tomcat的项目里含的类,会被编译成.class后才发布过来,源文件没有发布过来,但这里的jsp没有经编译的)。tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来 访问时,就直接运行servlet类就可以向客户端反应响应页面了,所以有的博客说第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先 编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户,所以快),编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。     
    有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

2   在tomcat的conf配置文件夹下的server.xml文件里配置了Host name后,就会在conf下的Catalina文件夹和work下的Catalina文件下建立站点名称的文件夹,项目每次发布都会放入来,也会记录到 conf下的Catalina文件夹的配置文件里去。

最近发现,很多网友喜欢把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自动更新class的问题。 
解决方案: 
一、 
在安装的tomcat路径下创建独立配置文件。 
例如: 
创建一文件:D:\Tomcat5.5\conf\Catalina\localhost\testapp.xml

内容为: 
<Context docBase="D:\Tomcat5.5\webapps\testapp" reloadable="true" path="/testapp" workDir="work\Catalina\localhost\testapp"> 
</Context>

重启Tomcat

二、 
直接在tomcat 的配置文件conf/server.xml中添加内容如下: 
<Context docBase="D:\Tomcat5.5\webapps\testapp" reloadable="true" path="/testapp" workDir="work\Catalina\localhost\testapp"> 
</Context> 
注意是在<Engine name="Catalina" defaultHost="localhost">标签下添加; 
重启Tomcat

时间: 2025-01-14 17:22:30

tomcat work目录的相关文章

2个问题,解决tomcat启动一闪而过和运行tomcat/bin目录下的startup.bat时报错(the CATALINA_HOME environment variable is not defined correctly)

1.除手动使用开始菜单自启动或者程序启动TOMCAT时TOMCAT一闪而过,这时候是发生了错误,这时候我们打开BIN目录下的“startup.bat”文件,编辑,在结尾添加pause命名,这样在CMD下执行startup.bat时就会出错停止,这时候我们就知道是什么错误了. 2.运行tomcat/bin目录下的startup.bat时报错:the CATALINA_HOME environment variable is not defined correctly 碰到这个问题时的第一反应是添加

深入理解Tomcat虚拟目录

我们知道,Web网站中的内容(包括网页,图片,音频文件等)一般都存放在App的目录下.但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站的子目录.我们通常的做法是在网站主目录下新建子目录,并把相关的内容放置到对应的目录.此外,还有另外一种方法,就是创建虚拟目录.虚拟目录可以是磁盘上有权限操作的任意路径(将虚拟路径设置为readOnly是绝对不行的),也可以是网络中其他计算机的目录. 相对而言,创建子目录的方式更安全高效.但为什么还要有虚拟目录呢?这是因为虚拟目录解决了Web文件必须放在

Tomcat禁止显示目录和文件列表

Tomcat禁止显示目录和文件列表 打开   tomcat的安装目录/conf/web.xml 文件 <servlet> <servlet-name>default</servlet-name>        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>        <init-param>            <para

解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 评论(1) 收藏 举报 tomcatlinux工具任务web 由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文

eclipse发布项目到tomcat部署目录

1.在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一个tomcat,通过启动该tomcat来发布Dynamic Web Project的时候,其实并未将工程发布到tomcat 安装目录所在的 webapps下.这点可以去上述的tomcat 安装目录 的 webapps目录下查看.从启动时候的控制台输出来看项目是被发布到了如下的目录:信息: Set web app root system property: 'webapp.root' = [

tomcat跟目录下work文件夹的作用

work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录. jsp,tomcat的工作原理:当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转成.java文件,比如将index.jsp转换成index_jsp.java文件,而后编译为index_jsp.class文件,最后tomcat容器通过ClassLoader类把这个index_jsp.class类装载入内存,进行响应客户端的工作. tomcat会定时扫描容器内的jsp文件

JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomcat的目录结构* bin目录:存放tomcat的启动和终止脚本 * startup.bat 启动脚本 * bootstrap.jar,启动脚本最终执行的java程序 * org.apache.catalina.startup.Bootstrap * shutdown.bat 终止脚本 * conf目录

Tomcat虚拟目录的设置

在学习JSP/Servlet的过程中,配置Tomcat的虚拟目录可能是我们遇到的第一个比较麻烦的问题,说是麻烦是针对我们初学者而言,对于高手那都不是问题.反正我是弄了一天才配置好,发现网上给出的很多配置方法都行不通,最后还是在一本参考书上寻找到答案.所以说大家以后在网上寻找资料需要仔细鉴别. 总的来说Tomcat的虚拟目录的配置有两种方式: 1.修改server.xml 2.Tomcat\conf\Catalina\localhost文件路径下添加一个xml配置文件 以下来详细讲解(我的Tomc

eclipse新建web项目,运行后在tomcat安装目录下webapps中没有该项目

一.发现问题在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并没有出现所建立的工程名字.二.验证很明显项目并没有自动部署到Tomcat的Webapps中而是部署在了别的容器中.在内置浏览器中输入http://localhost:8080/webDemo/login.jsp可正常打开.但在外部浏览器上打开http://localhost:8080时确没有出现所期望

Tomcat的目录结构详解

Tomcat目录结构: 首先我们看看tomcat的目录下面都有什么文件 bin: 可以通过文件看出来这是一些关于tomcat的可执行的相关文件,比如启动和关闭 conf: 这个目录下存放的是tomcat相关的配置文件,常用的配置文件就是web.xml,server.xml这个配置文件是存放管理网站用户的信息 lib: 打开这个文件夹一看.全部都是jar文件,接触过java的朋友应该一目了然,这很明显就是java的jar包,这里存放的是网站后台调用的jar包 logs: 这个文件夹里面全部都是日志