3

该应用程序是使用 Struts 1.2 框架制作的。我想在 jsp 文件中获取请求标头主机名并识别user-agent从标头读取值的浏览器。

下面是我使用 scriptlet 编写的代码:

String userAgent = request.getHeader("user-Agent");
if(userAgent.contains("Chrome")){
    userAgent = "Chrome";
}else if(userAgent.contains("Android")){
    userAgent = "Android";
}

并且代码运行良好。但我想避免使用 scriptlet,因为它有一些易受攻击的跨站点脚本问题。因此,为了在 EL 中做同样的事情,我可以使用以下方法获取标题:

Host is: ${header["user-agent"]}

但我不确定如何contains在 EL 中进行检查。

这个应用程序在 Struts 1.2 框架上运行,如果框架提供了更好的方法来读取 JSP 中的标头值,那么也请告诉我。否则EL也可以。

4

1 回答 1

1

您需要使用fn:containsfn:containsIgnoreCase

<c:set var="userAgent" value="${header['user-agent']}"/>

进而:

 <c:if test="${fn:containsIgnoreCase(userAgent, 'Chrome')}">
  <!-- TODO: -->
 </c:if/>
于 2013-01-26T04:50:46.727 回答