Tomcat简介及其配置⽂件解析
简介
Apache软件基⾦会(也就是Apache Software Foundation,简称为ASF),是专门为⽀持开源软件项⽬⽽办的⼀个⾮盈利性组织。Tomcat是Apache 软件基⾦会的Jakarta 项⽬(开放源代码开发项⽬)中的⼀个核⼼项⽬,由Apache、Sun 和其他⼀些公司及个⼈共同开发⽽成。由于有了Sun 的参与和⽀持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。
Tomcat并不⽀持全部的j2ee规范,只⽀持jsp和servlet规范。Tomcat属于轻量级应⽤服务器,兼具web服务器的功能,但在处理静态资源的能⼒上没⽤web服务器那么优秀。Tomcat适⽤于并发量不是很⼤的中⼩型系统。
tomcat⽬录层次结构
bin: 存放启动和关闭tomcat的脚本⽂件
conf: 存放tomcat服务器的各种配置⽂件
lib: 存放tomcat服务器的⽀撑jar包
logs: 存放tomcat的⽇志⽂件
temp: 存放tomcat运⾏时产⽣的临时⽂件
webapps: web应⽤所在⽬录,即供外界访问的web资源的存放⽬录
work:tomcat的⼯作⽬录
Tomcat配置⽂件
Tomcat 的配置⽂件由l、l、l 、l这4个xml⽂件组成。每个⽂件都有⾃⼰的功能与配置⽅法。l是对部署在tomcat上的web应⽤的配置,其他三个均是对tomcat服务器本⾝的配置。
⼀:l⽂件
该配置⽂件⽤于配置tomcat的服务,设置服务器的端⼝号,添加虚拟机等。
⼀般情况下我们并不需要配置多个l默认配置了⼀个“Catalina”的Service,默认使⽤8080端⼝。
<Service name="Catalina">
<!-- 使⽤8080端⼝接收http请求,设置超时时间为20s,8443端⼝接收https请求 -->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
<!-- 8009端⼝接收其他服务器转发过来的请求 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tcl_srm_jvm1">
<Realm className="org.alm.LockOutRealm">
<Realm className="org.alm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<!-- 定义⼀个主机,域名为:locaohost,应⽤程序的⽬录是/webapps,设置⾃动部署,⾃动解压-->
<Host name="locaohost" appBase="/webapps" unpackWARs="true" autoDeploy="true">
<!--虚拟⽬录的映射,设置当前web应⽤的l或者类等有相关变化时,⾃动重载当前配置,不⽤重启tomcat-->
<!--访问路径为:localhost:8080/huiye-->
<Context path="huiye" docBase="D:/huiye" reloadable="true"/>
<!-- 定义Valve组件记录tomcat的访问⽇志,⽇志存放⽬录为:/huiye/logs-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/huiye/logs" prefix="www_access." suffix=".log" pattern="%h %l %u %t &qu ot;%r" %s %b"/>
</Host>
</Engine>
</Service>
⼆:l ⽂件
1. tomcat server 级别:
在/l ⾥配置,如果在该⽂件中配置,那么这个配置⽂件将会被所有的webapp共享
2. Host 级别:
在 conf/{ServiceName}/{hostName} ⾥添加 l进⾏配置,这个配置将会被l配置中name为{ServiceName}的Service节点下的name为{hostName}的host节点下的webapp共享。
即会被如下路径下的webapp共享
<Service name="{ServiceName}/">
<Engine name="Catalina" defaultHost="{hostName}" jvmRoute="tcl_srm_jvm1">
<Host name="{hostName} " appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" reloadable="false" docBase="D:/aaa"/>
<Context path="/" reloadable="false" docBase="D:/bbb"/>
</Host>
</Engine>
</Service>
3. web app 级别:
在 /conf/{ServiceName}/{hostName} ⾥添加 {webAppName}.xml进⾏配置。这个配置只会对名称为webAppName的webapp⽣效(针对单个webapp的context需要指定path,docBase等元素的值)
<Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true">
<!--监控资源⽂件的默认设置,若配置的⽂件改变了,则⾃动重新加载改应⽤-->
<WatchedResource>l</WatchedResource>
<WatchedResource>l</WatchedResource>
<!--配置全局JNDI数据源-->
<Resource name="jdbc/testSiteds" #表⽰指定的jndi名称
auth="Container" #表⽰认证⽅式,⼀般为Container
type="javax.sql.DataSource"
maxActive="100" #连接池⽀持的最⼤连接数
maxIdle="40" #连接池中最多可空闲maxIdle个连接
maxWait="30000" #连接池中连接⽤完时,新的请求等待时间,毫秒
username="txl" #表⽰数据库⽤户名
password="123456" #表⽰数据库⽤户的密码
driverClassName="sql.jdbc.Driver" #表⽰JDBC DRIVER
url="jdbc:mysql://localhost:3306/testSite" /> #表⽰数据库URL地址
</Context>
三:l
当使⽤Tomcat的Webapps⽬录对Web应⽤进⾏管理时,⽆法控制单个Web应⽤的启动与停⽌, 为此,Tomcat提供了⼀个管理平台,该平台列出了所有的Web应⽤及其状态,并且,提供了控制每个Web应⽤的启动、停⽌与卸载的功能。使⽤该平台还可以实现远程向webapps⽬录下上传war包。
配置
在conf⽬录的l⽂件中,可以对服务器管理帐户进⾏设置,在管理帐户中⾝份必须加⼊管理员manager⾝份才能登录进⼊平台
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat,manager"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
四:l⽂件
将某个web资源配置为⽹站⾸页
将servlet程序映射到某个url地址上
为web应⽤配置
为web应⽤配置过滤器
…………
⽬录结构
<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-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论