【发布时间】:2014-03-20 08:02:57
【问题描述】:
我有两个 Java servlet,即,
A.java and B.java
还有一个 JSP 页面,
my.jsp
my.jsp 发送会话,
session.setAttribute("path", loc);
在 A.java 中可以访问
HttpSession session = request.getSession();
String fpath = session.getAttribute("path").toString();
使用此会话并重新加载 my.jsp
RequestDispatcher rd = request.getRequestDispatcher("my.jsp");
rd.forward(request, response);
之后,当我尝试使用 B.java 中的 my.jsp 访问同一会话时
HttpSession session = request.getSession();
String b = session.getAttribute("path").toString();
b 返回空值。给出一个 NullPointerException。
怎么办?为什么它不起作用?
更多信息,
my.jsp 有多个按钮,当单击按钮 A 时,a.java 被执行并返回一些内容以显示在 my.jsp 中,因此 my.jsp 刷新并且按钮 A 从 my.jsp 中删除,当按钮 B 时被点击然后 b.java 进入图片,它显示下面的屏幕。
在第 36 行,我有
String b = session.getAttribute("path").toString();
【问题讨论】:
-
从逻辑上讲它应该可以工作......除非你使会话无效
-
我知道 :( 但是在 getattribute("path").toString() 行返回一个空指针异常
-
尝试在 a.java 中再次设置会话并检查 b.java
-
我假设两个 servlet 都部署在同一个 webapp/WAR 文件中?
-
确保您没有使会话无效,也没有通过调用 session.removeAttribute( 从会话中删除属性