【问题标题】:Is it more safe to use getter instead of field name in EL?在 EL 中使用 getter 而不是字段名更安全吗?
【发布时间】:2019-11-20 10:02:36
【问题描述】:

我在我的 JSP 中使用 EL。例如

案例一:

<h5>${fgst.userFlag}</h5>

案例 2:

<h5>${fgst.getUserFlag()}</h5>

我想知道,案例 2 是否比案例 1 更安全、更安全?

【问题讨论】:

    标签: jsp el


    【解决方案1】:

    在安全方面绝对没有区别。

    请注意,${fgst.userFlag} 根本不访问该字段。在幕后,它将属性名称userFlag 转换为getter 方法getUserFlag(),最后在${fgst} 表示的实例上调用它。换句话说,它与${fgst.getUserFlag()} 完全一样。

    您可以通过重命名字段名称来自己确认,同时保持 getter 方法名称不变。您会注意到这两种方法都可以继续工作,并且它们实际上都调用了 getter 方法,这也可以通过在 getter 方法上放置一个调试断点来观察。

    另见:

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2011-09-06
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 2015-07-11
      相关资源
      最近更新 更多