在生产环境中,为了实现部署新的Web应用程序或取消部署现有的程序而不必重启容器、动态更新程序代码、列出一些JVM或操作系统的属性值、列出应用程序或会话等等基础功能,Tomcat默认包括了一个Web应用程序,通常位于$CATALINA_BASE/webapps/manager目录下:
    2. Manager APP - 图1
    并且这个应用程序默认的context path也为/manager,访问应用的方式为/manager/html
    对于这个APP的详细介绍,可以在官方文档找到,以Tomcat 7.0为例,文档的位置为:https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
    我们查看manager应用下的web.xml,发现其中配置了如下servlet-mapping:
    2. Manager APP - 图2
    由此我们可以知道:

    • /manager/html/:提供HTML格式的管理页面
    • /manager/status/:提供服务器状态(Server Status)页面
    • /manager/jmxproxy/:提供JMX proxy 接口
    • /manager/text/:提供纯文本页面

    由于Tomcat Manager提供的这些功能是需要管理人员才能使用和查看的,因此如果默认开启的话将会存在很高的安全问题,所以Tomcat并没有直接提供这些功能。
    如果想要使用这些功能,则需要在$CATALINA_BASE/conf/tomcat-users.xml中配置相关的用户信息,包括用户名、密码、用户角色,来对使用这些功能的用户进行身份鉴别和权限验证。
    2. Manager APP - 图3
    在 manager 项目中的web.xml中我们可以看到能够使用的这些角色:
    2. Manager APP - 图4
    他们对应的权限分别为:

    • manager-gui:能够访问/manager/html/的管理界面。
    • manager-script:能够访问 /manager/text/ 以及/manager/status/界面。
    • manager-jmx:能够访问/manager/jmxproxy/ 以及/manager/status/界面。
    • manager-status:能够访问 /manager/status/的Server Status界面。

    在正确的配置了用户身份信息和角色后,就能够访问相应的页面了。以本篇作者的环境为例,演示如下:
    Server Status页面:
    2. Manager APP - 图5
    html管理后台:
    2. Manager APP - 图6
    纯文本页面-使用指令list:
    2. Manager APP - 图7
    JMX Proxy页面:
    2. Manager APP - 图8
    对于这几个Servlet功能的实现如果感兴趣,可以查看在org.apache.catalina.manager 目录下的代码,在此章节将不过多关注。
    2. Manager APP - 图9