透析tomcat各个配置文件的作用和修改方式

这篇文章笔者将通过Tomcat的配置文件来了解一下Tomcat,先从外部,tomcat暴露给我们的这方面来了解一下Tomcat!

首先是conf下的server.xml文件,这个文件也是我们接触最多的tomcat的配置文件,下图为去掉注释后的Tomcat的主要配置:server.xml

首先明确一点:这些标签都被Tomcat通过Digester库进行解析,并且其属性也标识了具体生成此接口的哪个具体的实现类

  • Server 在tomcat中对应的是Server接口的实例,这个实例表示的整个servlet引擎,囊括了所有的组建,它使用一种非常优雅的方式来启动和关闭整个系统(为什么说优雅呢,关注后续文章了解),其中更有一种大部分人都没用过的关闭tomcat的方式(具体是shutdown.bat里边shell脚本所用的方式),笔者有代码来演示 怎么通过这种关闭方式来搞坏跟你一个局域网同学们的心态
  • Service一个服务器组件,可以理解为要对外提供的服务是谁,后面的Connector, Engine,Host组件,都是作用于Service的内部,共同组成了可对外提供服务的对象;
  • Connector是连接器,主要用于接收外部请求(tomcat中的实现也是通过Serversocket),可以配置通道的编码类型,超时时间,IO类型等;具体功能也可以粗略的理解为: connector接受到socket后,通过HttpProcessor类进行些相应处理,比如封装request和response对象等,然后交给Engine处理;Connector包含我们常听说的HTTP,HTTPS和AJP,这个AJP就是Apache反向代理的时候用到的特定协议。
  • Engine和Host Engine的内部包含Host用于处理实际的请求。我们用Tomcat时经常会写http://localhost:8080 这个,就指向了默认提供的localhost这个Host。当然Host也可以写多个,可以写多个才对应不同的url,不过你需要拥有多个域名(一个公网ip可以绑定无数个域名),本机测试如果你想测试多个host的话,需要更改windows下的host映射;
  • Realm,主要用于进行一些安全配置

以上即是Server.xml中的主要配置和作用,具体的对应到tomcat的目录结构中则为:在这里插入图片描述
在这里插入图片描述

关闭局域网内指定ip的tomcat

public static void main(String[] args) {
   // 只能通过这种方式,浏览器方式不行  或者
   //stream.write(shutdown.getBytes(),0,shutdown.getBytes().length);
    int port = 8005;
    try {
      Socket socket = new Socket("127.0.0.1", port);
      OutputStream stream = socket.getOutputStream();
      String shutdown = "SHUTDOWN";
      for (int i = 0; i < shutdown.length(); i++)
        stream.write(shutdown.charAt(i));
      stream.flush();
      stream.close();
      socket.close();
      System.out.println("The server was successfully shut down.");
    }
    catch (IOException e) {
      System.out.println("Error. The server has not been started.");
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰夫·王盖茨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值