应用程序是使用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"]}
但我不知道如何在EL中进行contains
检查。
这个应用程序在Struts 1.2 Framework上运行,如果框架提供了一些更好的方法来读取JSP中的头值,那么请让我知道它。 EL也没关系。
答案 0 :(得分:1)
您需要使用fn:contains
或fn:containsIgnoreCase
<c:set var="userAgent" value="${header['user-agent']}"/>
然后:
<c:if test="${fn:containsIgnoreCase(userAgent, 'Chrome')}">
<!-- TODO: -->
</c:if/>