Tomcat.03的部署方式&监听&请求的处理流程

一. tomcat的部署方式
        1.1 在部署目录部署war包
这种方式部署最简单,也是最常用的一种方式,如:在tomcat的server.xml文件中有如下配置:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
   ......
</Host>


此文件说明虚拟服务器localhost,使用webapps作为部署目录,只要将war包部署在该目录中即可完成部署,

unpackWARs参数表示,tomcat会对部署在webapps目录中的war文件自动解压,如果为false,则不执行自定解压,但会影响程序的运行效率,
autoDeploy表示自动部署,即热部署
注:这种方式也可以直接部署文件夹,但要求部署的文件夹要符合web目录的标准

        1.2 通过server.xml部署

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
 
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        
        <!-- 部署web项目 -->
        <Context path="/webdemo" docBase="D:\work\eclipsews\webdemo\WebContent"></Context>
 
      </Host>


这种方式需要修改server.xml,不建议使用

    1.3 独立部署文件

  首先来到 \conf\Catalina 目录,
然后在依据虚拟服务器名称一致的方式,创建一个目录(如:localhost)
创建一个xml文件,完成项目部署,文件名与部署项目的上下文名称对应,例如:webdemo.xml,内容如下:

<Context path="/webdemo" docBase="D:\work\eclipsews\webdemo\WebContent"></Context>


二. eclipse中的tomcat配置
1)eclipse 中 tomcat的基本配置

2)eclipse 中 tomcat的运行基本原理

3)常见问题及处理

三. 关于web监听器
web监听器的类型:

ServletContextListener 监听 Context对象的创建与销毁,Context即web应用
ServletContextAttributeListener 监听在 Context中发生增加,更新,删除对象的事件
HttpSessionListener 监听session对象的创建与销毁
HttpSessionAttributeListener 监听session中发生的增加,更新,删除对象的事件
ServletRequestListener 监听request对象的创建
ServletRequestAttributeListener 监听session中发生的增加,更新,删除对象的事件

以上6种监听器,需要在 web.xml 中进行配置,除以上6种监听器还有下面两种监听器: 

HttpSessionBindingListener 当对象被放入session里执行valueBound,被移除时执行valueUnbound
HttpSessionActivationListener 服务关闭时可以使用该监听器将session数据持久化到磁盘,服务重启 session数据会从磁盘重新加载,对应的使用示例可以参考tomcat01
 以上2个监听器主要用于对session内对象的监听,与上面的6种监听器不同的是,这两种监听器虽然需要实现对应的Listener接口,但不用web.xml中配置

四. 请求的处理流程图
大图请看下面:

 

详细讲解:
在server中的Connector中解析过程:网址中的端口号8080  通过Endpoint解析、网址协议http1.1通过protocalProcess解析,然后再由CoyoteAdaper生成request,response对象、再访问Connector之外server中的引擎Engine:

Mapper中(包含host,context,wrapper,存在于server中)的解析过程:主机Host中解析 域名/主机名、Context(上下文,表示发布的项目)中解析项目名称、 Wrapper中先执行过滤器链Filter Chain中的所有过滤操作然后再执行项目中相关的servlet:

Filter Chain过滤器链执行过一个项目中所有的filter过滤操作的顺序可以在项目中的web.xml文件中进行调整,比如,中文文字编码的过滤操作就要放在第一个执行,以免出现中文乱码情况。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值