You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP无法获取Session属性值求助:Servlet转发后取值异常

问题原因与解决方案

核心问题

你在Servlet中将itemCount存入了request请求域,但JSP的脚本代码里错误地从session会话域获取该属性,两者不属于同一个作用域,所以获取到null:

  • Servlet代码:request.setAttribute("itemCount", 1000); —— 数据存储在当前请求的request作用域,仅在当前请求转发链中有效
  • JSP脚本代码:session.getAttribute("itemCount"); —— 尝试从会话级的session作用域读取数据,该作用域中并没有存入过itemCount

修正方法

将JSP脚本中的session.getAttribute替换为request.getAttribute,同时注意类型匹配(你存入的是Integer类型,直接强转或输出即可):

<% 
Integer count = (Integer) request.getAttribute("itemCount"); 
out.print("Total items are: " + count); 
%>

或者简化写法,无需显式强转:

<% 
out.print("Total items are: " + request.getAttribute("itemCount")); 
%>

EL表达式能正常显示的原因

EL表达式${itemCount}会按照pageContext → request → session → application的优先级顺序依次查找对应属性,因此它能找到request域中存储的itemCount值,所以第二行显示正常。

内容的提问来源于stack exchange,提问作者kk luo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:24:37