tomcat开发中的一些使用技巧

tomcat的架构中有这样一个接口 org.apache.catalina.ContainerServlet 只要在配置的servlet上实现这个接口,tomcat的web容器在启动初始化servlet的时候就会调用 public void setWrapper(Wrapper wrapper) 接口将 org.apache.catalina.Wrapper 注入到Servlet类中。

tomcat中已经有org.apache.catalina.manager.ManagerServlet 这个类实现了这个接口

public class ManagerServlet
    extends HttpServlet implements ContainerServlet {
//。。。。

 通过Wrapper对象可以取得到web容器中其他几个非常重要的容器级别的对象,如下:

 public void setWrapper(Wrapper wrapper) {

        this.wrapper = wrapper;
        if (wrapper == null) {
            context = null;
            host = null;
            oname = null;
        } else {
            context = (Context) wrapper.getParent();
            host = (Host) context.getParent();
            Engine engine = (Engine) host.getParent();
            try {
                oname = new ObjectName(engine.getName() 
                        + ":type=Deployer,host=" + host.getName());
            } catch (Exception e) {
                // ?
            }
        }

        // Retrieve the MBean server
        mBeanServer = Registry.getRegistry(null, null).getMBeanServer();
        
    }
  1. org.apache.catalina.Context
  2. org.apache.catalina.Wrapper
  3. org.apache.catalina.Host
  4. org.apache.catalina.Engine

这几个对象都能得到,这几个层次关系是 engine包含host,host包含context,context包含wrapper,每一个wrapper对应了一个单独的servlet。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值