TOMCAT配置文件 目录描述?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOMCAT配置文件 目录描述?相关的知识,希望对你有一定的参考价值。
1、TOMCAT配置文件:$CATALINA_HOME/conf/web.xml配置简介
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
说明:<servlet-name>:定义Servlet的名字。<servlet-class>:指定实现这个Servlet的类。<init-param>:定义Servlet的初始化参数(包括参数名和参数值),一个 <servlet>元素中可以有多个<init-param>元素。<load-on-startup>:指定当Web应用启动时,装载Servlet的次序。当这个值为正数或零,Servlet容器先加载数值小的Servlet,再一次加载其他数值大的Servlet。如果这个值为负数或没有设定,Servlet将在Web客户首次访问这个Servlet时加载它。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
a.如果某文件资源没有找到,服务器要报404错误,按下述配置则会调用\\webapps\\ROOT\\notFileFound.jsp
<error-page>
<error-code>404</error-code>
<location>/notFileFound.jsp</location>
</error-page>
b.如果执行的某个JSP文件产生NullPointException,则会调用\\webapps\\ROOT\\null.jsp
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/null.jsp</location>
</error-page>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
默认Web应用的首页文件的设置
报错文件的设置
session 会话过期时间的设置,单位是分钟
servlet的设置
filter过滤器的设置
<filter>
<filter-name>FilterSource</filter-name>
<filter-class>project4. FilterSource </filter-class>
</filter>
<filter-mapping>
<filter-name>FilterSource</filter-name>
<url-pattern>/WwwServlet</url-pattern>
(<url-pattern>/haha/*</url-pattern>)
</filter-mapping>
2、TOMCAT的目录结构
/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文档
/server:包含三个子目录:classes、lib和webapps
/server/lib:存放Tomcat服务器所需的各种JAR文件
/server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
/common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
/shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
/logs:存放Tomcat执行时的日志文件
/src:存放Tomcat的源代码
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
/work:存放JSP编译后产生的class文件 参考技术A TOMACT的默认端口号:8080 允许修改port=“8080”值,设置新的端口号 启动TOMCAT: 运行\TOMCAT安装路径\bin\startup.bat关闭TOMCAT: 运行\TOMCAT安装路径\bin\shutdown.batJSP文件的默认路径: \TOMCAT安装路径\webapps\ROOT\运行JSP文件: http://127.0.0.1:8080/***.jsp用户工作路径: 其中:path为虚拟目录; docBase为物理目录将测试例题存放在属性docBase定义的目录下,访问采用URL: http://127.0.0.1:8080/mytest/Example1_1.jsp目录 描述bin Tomcat服务器系统编译/运行文件,包括启动/关闭Tomcat的脚本文件conf 配置文件区。包括主配置文件server.xml和默认配置文件web.xmltemp 系统运行的临时或缓冲文件common/lib 存放Tomcat服务器所需的各类jar文件,重要的 jsp-api.jar和servlet-api.jarlogs 放置Tomcat服务器的日志文件work 存放jsp文件被servlet容器所创建的java源文件(.java)和类文件(.class)webapps 包含web项目的文件。允许用户自主建立子目录webapps/ROOT 系统应用文件的默认路径../WEB-INF Servlet类文件、附带库文件、部署配置文件
在 Tomcat 中为单个目录配置符号链接
【中文标题】在 Tomcat 中为单个目录配置符号链接【英文标题】:Configure Symlinks for single directory in Tomcat 【发布时间】:2010-09-23 19:49:42 【问题描述】:我有一个目录,进程将一些.pdf
文件上传到该目录。这个过程是我无法控制的。
我需要使用 Tomcat 通过网站提供这些文件。
我有一个可用于网络的目录/var/lib/tomcat5/webapps/test1
,我可以使用浏览器查看其中的文件。
所以,我创建了一个符号链接,指向包含.pdf
文件的目录:
/var/lib/tomcat5/webapps/test1/files/
,但我在那个目录中看不到任何东西。
如何仅在test1
目录中启用符号链接?我不想在任何地方启用符号链接,只是为了让带有.pdf
文件的目录对网络可用。
【问题讨论】:
【参考方案1】:创建包含<Context path="/myapp" allowLinking="true">
的META-INF/context.xml
的解决方案存在一些问题
最大的问题是,如果存在conf/context.xml
,那么<Context>
中的allowLinking
将优先于META-INF/context.xml
中的<Context>
。而如果conf/context.xml
中的 没有明确定义allowLinking
,那就和allowLinking="false"
一样。 (参见my answer 上下文优先问题)
要确保您的应用允许链接,您必须说<Context override="true" allowLinking="true" ...>
。
另一个问题是path="/myapp"
在META-INF/context.xml
中被忽略。为防止混淆,最好将其排除在外。 path
在<Context>
中唯一有任何影响的时间是在server.xml
中,而official Tomcat docs recommend against 将<Context>
s 放在server.xml
中。
最后,我推荐使用conf/Catalina/localhost/myapp.xml
文件,而不是myapp/META-INF/context.xml
文件。这种技术意味着您可以保持 META-INF
的内容干净,这是您的 web 应用程序的核心——我不喜欢冒险在我的 web 应用程序的核心中乱搞。 :-)
【讨论】:
大保存..谢谢伙计。我不得不将它放入 META-INF 并添加覆盖。 (我认为它在 WEB-INF 中不起作用?) @piotr-czapla:感谢您编辑我的答案以将 WEB-INF 修复为 META-INF! 如何从 Java 访问此路径中的文件?例如,如果我想为/var/lib/tomcat5/webapps/test1/files/example.pdf
创建一个 File 对象,那么给构造函数的路径字符串是什么?
@beldaz:您应该创建一个新问题 (***.com/questions/ask) 而不是使用 cmets。
@netjeff 没关系,我问是为了让你的答案更完整,因为许多类似的问题都忽略了这个让像我这样的菜鸟感到困惑的小问题。文件只需通过其完整的文件系统路径访问。【参考方案2】:
在您的 Web 应用程序的 META-INF
目录中创建一个 context.xml 文件,其中包含:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myapp" allowLinking="true">
</Context>
更多:http://www.isocra.com/2008/01/following-symbolic-links-in-tomcat/
【讨论】:
是的,我所要做的就是创建一个 context.xml 文件:/var/lib/tomcat5/webapps/test1/META-INF/context.xml 该链接非常有用。谢谢。 谢谢。知道如何将 tomcat (6) 配置为始终遵循符号链接吗?【参考方案3】:这在 Tomcat 8+ 中的工作方式不同
http://tomcat.apache.org/migration-8.html
<Resources allowLinking="true" />
【讨论】:
【参考方案4】:是的,我知道这是一个老问题,但我找到了一个新的解决方案,将 mount 与 --bind 选项一起使用而不是符号链接,并且 tomcat 不需要任何重新配置:
cd /var/lib/tomcat5/webapps/test1/
mkdir 文件
mount --bind /path/to/actual/upload/directory/files 文件
【讨论】:
【参考方案5】:Context可以存在的地方有4个。
-
tomcatdir/conf/server.xml
tomcatdir/conf/context.xml
tomcatdir/conf/Catalina/localhost/appname.xml
tomcatdir/webapps/appname/META-INF/context.xml
在 tomcat 8 的情况下,allowlinking 属性不应在 Context 中指定,而应在 Resources 标签中指定。我的 tomcatdir/conf/context.xml 看起来像这样
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>$catalina.base/conf/web.xml</WatchedResource>
<Resources allowLinking="true" cachingAllowed="true" cacheMaxSize="100000" />
</Context>
这个解决方案现在对我来说很好用。但我也想分享一下我在找到这个解决方案之前犯的错误。
我在 tomcatdir/conf/server.xml 和 tomcatdir/conf/context.xml 中都定义了资源。并且仅在 tomcatdir/conf/server.xml 中设置了 allowLinking="true"。
我发现如果你不指定allowLinking它等于将它设置为false。所以我从 server.xml 中删除了 Resources 标签,只留下了带有 allowLinking="true" 属性的 tomcatdir/conf/context.xml。
【讨论】:
【参考方案6】:我是用另一种方式做到的。 我编辑这个其他配置文件:apache-tomcat-7.0.33/conf/server.xml 在 Host 标签中我添加了:
<Context path="/data" docBase="C:\datos" debug="0" reloadable="true" crossContext="false"/>
因此,您可以通过以下方式访问:http://localhost/data
【讨论】:
【参考方案7】:在 conf/context.xml 中添加以下行为我在 apache tomcat 8.5+ 上启用软链接
资源 allowLinking="true" cachingAllowed="true" cacheMaxSize="100000">
【讨论】:
以上是关于TOMCAT配置文件 目录描述?的主要内容,如果未能解决你的问题,请参考以下文章