JMX (Java Management Extensions) 提供管理本地/遠程應用、系統、裝置的標準工具。本系列示範使用 JSR 160 (JMX Remote API) 遠程控制 Web 應用,保護通訊層 (RMI + JNDI),並展示 MC4J、jManage 等客戶端連接方式。
ant war 產生 jmxapp.war。webapps。https://localhost:8080/jmxapp,出現登入頁即成功。應用使用 Struts 處理登入表單:
hello / 密碼 world 登入成功 → login_success.jsp。LoginAction.execute() 根據結果調用 incrementSuccessLogins() 或 incrementFailedLogins(),將計數器存入 ServletContext (應用層級)。
private void incrementFailedLogins(HttpServletRequest req) {
ServletContext ctx = req.getSession().getServletContext();
Integer num = (Integer) ctx.getAttribute(Constants.FAILED_LOGINS_KEY);
int newVal = (num == null) ? 1 : num.intValue() + 1;
ctx.setAttribute(Constants.FAILED_LOGINS_KEY, newVal);
}
成功計數器同理。這些數據將透過 JMX 公開供遠程監控。
本文來自編程入門網:原文連結