druid监控页面 关闭_阿里Druid监控页面分析

本文主要介绍Druid监控页面的生成流程及代码手法

监控效果图

以下是Druid自带的监控页面图,主要用于展示在DruidDataSource数据源当中存储的监控信息,这部分监控信息存储在内存中,通过json格式的数据展示到页面上。

Druid监控页面

页面分析

问题1: 页面是如何展示出来的?

步骤一: 先找到资源文件

查看源码jar包可以知道,页面被存放在support文件目录下的http.resources和monitor文件夹中

源码资源目录

我们知道展示html页面最原生的方式就是PrintWriter.print(String)相应的html文本内容到浏览器上,但习惯了使用SpringMVC框架后可能会思维定式的想怎么配置jsp路径,由框架来完成资源展示

步骤二: 找到相关类

通过追溯监控页面的开启的使用方法可以知道,由StatViewServlet WebStatFilter两个类实现了页面展示的特性。

步骤三: 分析类代码逻辑

StatViewServlet与SpringMVC的DispatcherServlet类似,直接继承了HttpServlet进行了方法重写

1. init方法重写

public void init() throws ServletException {

// 初始化权限属性

initAuthEnv();

}

从servletConfig中获取username

String paramUserName = getInitParameter(PARAM_NAME_USERNAME);

if (!StringUtils.isEmpty(paramUserName)) {

this.username = paramUserName;

}

从servletConfig中获取password

String paramPassword = getInitParameter(PARAM_NAME_PASSWORD);

if (!StringUtils.isEmpty(paramPassword)) {

this.password = paramPassword;

}

从servletConfig中获取远程ip地址

String paramRemoteAddressHeader = getInitParameter(PARAM_REMOTE_ADDR);

if (!StringUtils.isEmpty(paramRemoteAddressHeader)) {

this.remoteAddressHeader = paramRemoteAddressHeader;

}

从servletConfig获取ip白名单,以,隔开的IP地址

try {

String param = getInitParameter(PARAM_NAME_ALLOW);

if (param != null && param.trim().length() != 0) {

param = param.trim();

String[] items = param.spli

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值