tomcat相关知识点

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统并发访问用户不是很多的场合下被普遍使用。

tomcat的文件结构:

 bin:用于存放启动和关闭tomcat的可执行文件。
 lib:里面存放需要的jar包。
 conf:tomcat的各种配置文件,tomcat启动时需要读取的配置文件主要有:server.xml,web.xml,tomcat-users.xml等等。服务器的修改都要从此目录中进行。
 logs:日志文件,如果服务器出现错误,会自动记录。
 server:服务器的管理程序。
 webapps:所有的可执行的web项目都会放到此目录中。
work:tomcat把各种由jsp生成的servlet都放在了这个文件夹下,里面包含.java文件和.class文件。

Tomcat 的配置文件由4个 xml 文件构成,context.xml、web.xml、server.xml、tomcat-users.xml 这4个文件。每个文件都有自己的功能与配置方法

Context.xml 是 Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。

server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载,而context.xml 文件则不然。

下面是context.xml文件的配置:(其他博客copy,本地打开没有这些,自己没弄过)

<Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">  

    <WatchedResource>WEB-INF/web.xml</WatchedResource>  

    <WatchedResource>WEB-INF/eml.xml</WatchedResource> #监控资源文件,如果web.xml || eml.xml改变了,则自动重新加载改应用。  

    <Resource name="jdbc/testSiteds"   #表示指定的jndi名称
    auth="Container"   #表示认证方式,一般为Container
    type="javax.sql.DataSource"
    maxActive="100"   #连接池支持的最大连接数
    maxIdle="40"     #连接池中最多可空闲maxIdle个连接
    maxWait="30000"   #连接池中连接用完时,新的请求等待时间,毫秒
    username="txl"    #表示数据库用户名
    password="123456"   #表示数据库用户的密码
    driverClassName="com.mysql.jdbc.Driver"   #表示JDBC DRIVER
    url="jdbc:mysql://localhost:3306/testSite" />   #表示数据库URL地址  

</Context>
context.xml的三个作用范围

 1. tomcat server 级别:

在$CATALINA_BASE/conf/context.xml 里配置,如果你在这个地方配置、那么这个配置文件将会被所有的webApp共享 。

2. Host 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 context.xml,继而进行配置,这个配置将会被这个主机上的所有webapp共享。

3. web app 级别:

在 $CATALINA_BASE/conf/Catalina/${hostName} 里添加 ${webAppName}.xml,继而进行配置。

此时,path="",

webAppName 即为 path属性的值,也就是访问的虚拟目录。

另:tomcat 服务器文件中的 $CATALINA_BASE/webapps 目录下的所有文件夹都是一个应用。这个时候不需要自己动手配置,服务器默认将文件夹名映射成虚拟目录名称。还可以通过 $CATALINA_BASE/webapps/{App}/META-INF/context.xml 来配置,这个是在web应用中自己添加的,配置和其它一样。

<context> 标签是使用,

二、web.xml文件

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

<web-app >
 <filter></filter>
 <filter-mapping></filter-mapping>
 <servlet></servlet>
 <servlet-mapping></servlet-mapping>
 <session-config></session-config>
 <mime-mapping></mime-mapping>
 <welcome-file-list></welcome-file-list>
 </web-app >
<!--
filter 配置Servlet过滤器
filter-name 定义过滤器的名字。当有多个过滤器时,不能同名
filter-class 指定实现这一过滤的类,这个类负责具体的过滤事务
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter> 

<!--
filter-mapping 设定过滤器负责过滤的URL
filter-name 过滤器名。这里的名字一定要和filter中的过滤器名匹配
url-pattern 指定过滤器负责过滤的URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping> 

<!--
servlet 配置Servlet.
servlet-name 定义Servlet的名字
servlet-class 指定实现这个servlet的类
init-param 定义Servlet的初始化参数和参数值,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
load-on-startup 指定当Web应用启动时,装载Servlet的次序。
当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet.
当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> 

<!--
配置servlet映射(下面代码为SampleServlet指定的相对URL为"/sample":
servlet-name 指定servlet的名字,这里的名字应该和<Servlet>元素中定义的名字匹配。
url-pattern 指定访问这个servlet的URL。只需给出相对路径。
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping> 

<!--配置session session用来设定HttpSession的生命周期。单位(秒)-->
<session-config>
<session-timeout>30</session-timeout>
</session-config> 

<!--配置Welcome文件清单-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>

三、server.xml文件

server.xml是对tomcat的设置,可以设置端口号,添加虚拟机这些的,是对服务器的设置

下面则是server.xml配置文件的详解:

<Server port="8005" shutdown="SHUTDOWN">
 2   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 3   <Listener className="org.apache.catalina.security.SecurityListener" />
 4   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 5   <Listener className="org.apache.catalina.core.JasperListener" />
 6   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 7   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 8   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 9   <GlobalNamingResources>
10   <!-- 全局命名资源,来定义一些外部访问资源,其作用是为所有引擎应用程序所引用的外部资源的定义 --!>
11     <Resource name="UserDatabase" auth="Container"
12               type="org.apache.catalina.UserDatabase"
13               description="User database that can be updated and saved"
14               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
15               pathname="conf/tomcat-users.xml" />
16   </GlobalNamingResources>
17   <!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 -->
18   <Service name="Catalina">
19   <!-- # 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine --!>
20     <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
21     <!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。还可以设置server与URIEncoding参数 -->
22     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
23     <Engine name="Catalina" defaultHost="test.com">
24     <!-- 修改当前Engine,默认主机是,www.test.com  -->
25     <Realm className="org.apache.catalina.realm.LockOutRealm">
26         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
27                resourceName="UserDatabase"/>
28     </Realm>
29     # Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证
30       <Host name="test.com"  appBase="/web" unpackWARs="true" autoDeploy="true">
31       <!--  定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压    -->
32         <Alias>www.test.com</Alias>
33         <!--    定义一个别名www.test.com,类似apache的ServerAlias -->
34         <Context path="" docBase="www/" reloadable="true" />
35         <!--    定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效  -->
36         <Context path="/bbs" docBase="/web/bbs" reloadable="true" />
37         <!--  定义另外一个独立的应用程序(虚拟主机),访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs   -->
38         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs"
39                prefix="www_access." suffix=".log"
40                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
41         <!--   定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档   -->
42       </Host>
43       <Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
44       <!--   定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署   -->
45         <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.100.*" />
46         <!--   定义远程地址访问策略,仅允许172.16.100.*网段访问该主机,其他的将被拒绝访问  -->
47         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs"
48                prefix="bbs_access." suffix=".log"
49                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
50         <!--   定义该主机的访问日志      -->
51       </Host>
52     </Engine>
53   </Service>
54 </Server>

原文地址:https://www.cnblogs.com/zouhong/p/11765547.html

时间: 2024-08-11 05:41:57

tomcat相关知识点的相关文章

Tomcat相关知识点总结(jsp)

JSP 的执行过程: 客户端发出Request请求 JSP Container 将JSP转译成Servlet的源代码 将产生的Servlet源代码经过编译后,并加载到内存执行 把结果Response(响应)至客户端 在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时期(Request Time) 转译时期:JSP网页转移成Servlet类. 请求时期:Servlet类执行后,响应结果至客户端. 转译期间做了两件事情: 转译时期:将JSP网页转移为Ser

servlet简介和相关知识点

关于Servlet! 1.servlet简介 sun提供的一种动态web资源开发技术.本质上就是一段java小程序,可以将Servlet加入到Servlet容器中运行. *Servlet容器 -- 能够运行Servlet的环境就叫做Servlet容器. --- tomcat *web容器 -- 能够运行web应用的环境就叫做web容器 --- tomcat 2.用记事本写一个servlet程序 写一个类实现sun公司定义的Servlet接口 将写好的类配置到tomcat中的web应用的web.x

垂直搜索的相关知识点总结

垂直搜索引擎大体上需要以下技术 1.Spider 2.网页结构化信息抽取技术或元数据采集技术 3.分词.索引 4.其他信息处理技术 垂直搜索引擎的技术评估应从以下几点来判断 1.全面性 2.更新性 3.准确性 4.功能性 垂直搜索的进入门槛很低,但是竞争的门槛很高.没有专注的精神和精湛的技术是不行的.行业门户网站具备行业优势但他们又是没有技术优势的,绝对不要想像着招几个人就可以搞定垂直搜索的全部技术,作为一个需要持续改进可运营的产品而不是一个项目来说对技术的把握控制程度又是垂直搜索成功的重要因素

博客6:磁盘以及创建文件系统的相关知识点

1.linux磁盘的相关知识点  (1)I/O ports:I/O设备地址,实质上是一个缓冲器  (2)块设备:Block,存取单位是"块",例如:磁盘  (3)字符设备:char,存取单位是"字符",例如:键盘  (4)设备文件:关联至一个设备驱动程序,进而能够与之对应硬件设备进行通信(仅有元数据,而无数据)  (5)设备号码:              主设备号:major number,表示设备类型              次设备号:minor number

Linux下tomcat相关操作

tomcat安装: 直接到官网下载tar包解压即可. tomcat相关操作: 首先,进入Tomcat下的bin目录,例如:cd /usr/tomcat/bin 启动Tomcat:./startup.sh 关闭Tomcat:./shutdown.sh 查看Tomcat是否关闭:ps -ef|grep java,若信息较多表示未关闭,反之已关闭. 如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程:例如可以根据上面查看tomcat是否关闭的命令获取到进程ID,然后直接ki

图像处理程序框架—MFC相关知识点

CDC:Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 . MFC基础类库定义了设备环境对象类----CDC类.CDC与CGdiObject的关系 说道CDC类就不能不提一下GdiObject---图形对象类. 在Windows应用程序中,设备环境与图形对象共同工作,协同完成绘图显示工作.就像画家绘画一样,设备环境好比是画家的画布,图形对象好比是画家的画笔.用画笔在画布上绘画,不同的画笔将画出不同的画来.选择合适的图形对象和绘图对象,才能按照要求完成

libgdx相关知识点

Gdx.graphics.setContinuousRendering(false); 设置图像为非连续自动渲染. libgdx相关知识点,布布扣,bubuko.com

Android开发涉及有点概念&amp;相关知识点(待写)

前言,承接之前的 IOS开发涉及有点概念&相关知识点,这次归纳的是Android开发相关,好废话不说了.. 先声明下,Android开发涉及概念比IOS杂很多,可能有很多都题不到的.. 首先由于Android是基于Linux,而Linux又是用c山寨Unix的,但是为什么Android不用开发App,其实我也不懂,我想可能是java比较简单. 同样的,IOS为啥没用java,这个我也想可能是因为IOS是封闭的吧..晕,又废话了..好,开始吧,不过这次很多要查资料了,很多名词.单词不会啊! 首先还

&lt;c:url&gt;标签相关知识点

一. <c:url>标签的作用主要用来产生字符串类型的url,而不是产生一个超链接,注意url(统一资源定位符)与超链接两个含义的区别. <c:url value="http://www.baidu.com" />在JSP页面中的输出形式如下: 可以看出来这在页面中就是个字符串,不是一个能点击的超链接. --------------------------------------------------------------------------------