Java 有没有办法创建一个;“一次性使用”;servlet会话中的属性?
在我的一个servlet中,如果出现错误,我希望将Java 有没有办法创建一个;“一次性使用”;servlet会话中的属性?,java,jsp,servlets,attributes,Java,Jsp,Servlets,Attributes,在我的一个servlet中,如果出现错误,我希望将消息传递给JSP 例如,如果页面已加载,并且一切正常,JSP将不会为该行打印任何内容 <p class="text-center red">${message}</p> 有没有办法设置一个只出现在一个JSP页面上,然后消失或自动停用的属性?如何实现这一点?“一次性使用”是请求属性的定义(一次性意味着服务一个请求) 如果需要“一次性使用”,请使用和将其存储在请求中 ServletRequest.setAttribute()
消息
传递给JSP
例如,如果页面已加载,并且一切正常,JSP将不会为该行打印任何内容
<p class="text-center red">${message}</p>
有没有办法设置一个只出现在一个JSP页面上,然后消失或自动停用的属性?如何实现这一点?“一次性使用”是请求属性的定义(一次性意味着服务一个请求)
如果需要“一次性使用”,请使用和将其存储在请求中
ServletRequest.setAttribute()的Javadoc
:
在此请求中存储属性。属性在请求之间重置。此方法通常与RequestDispatcher
结合使用
只需将该属性设置为
HttpServletRequest
,而不是会话
request.setAttribute(“结果”,“今天请不要收到纽约州的报告”)代码>
在JSP中,只需执行以下操作:
正如前面的答案所述,使用请求而不是会话
更改:
request.getSession().setAttribute("result", "No reports from New York State today please");
到
并且在JSP中使用JSTL而不是scriptlet:
<p class="text-center red">${result}</p>
${result}
是否不将其置于会话中?当您这样做时,您需要在当前请求完成后或在下一个请求开始之前使用筛选器将其删除。为什么不将该属性放入请求中?
request.setAttribute("result", No reports from New York State today please");
<p class="text-center red">${result}</p>