的
PageContext#findAttribute()分别在页,请求,会话和应用范围,直到第一非扫描
null属性值被发现,对于给定的属性键。另请参阅javadoc:
在页面,请求,会话(如果有效)和应用程序范围内 按顺序 搜索命名属性,并返回关联的值或null。
这就解释了为什么它在转发servlet中找到范围为1的请求,而不是在JSP中声明范围为1的会话。我们的EL
Wiki页面也对此进行了说明。
无论如何,如果您使用的是servlet,则不应
<jsp:useBean>在应该由servlet管理的模型对象上使用。将
<jsp:useBean>分别遵循不同的MVC水平实际使用servlet作为控制器时,这只会导致混乱和维护的麻烦。在Servlets Wiki页面的“编码样式和建议”部分中也明确提到了这一点。
因此,除了所有这些
<jsp:xxx>事情,您可以执行以下操作:
<br>Name: ${person.name}<br>Surname: ${person.surname}您只需要添加JSTL
<c:out>来防止潜在的XSS攻击漏洞,同时重新显示用户控制的数据(请注意,
<jsp:getProperty>这样做不会!)
<br>Name: <c:out value="${person.name}" /><br>Surname: <c:out value="${person.surname}" />


