Session 我的session怎么传不到下一个页面我再上一个页面创建了session.setAttribution("AddToCart",book);转到下一个servlet时得到的是null,求助高手 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你有没断点调试?发这点看不出什么,要么是你页面的异常,要么是你本身传入的时候book是NULL。 试一试这样取值呗....如果你那个book的对象的话就 BooK b =(BooK)session.getAttribute("AddToCart");如果是String的话 String str =session.getAttribute("AddToCart"); 你名字别写错了哦,如果放到session中去了,在servlet页面应该是取得到值的,应该是取这个AddToCart的值哦 还要看看你放到session中的book是否为空 这个是我的第一个jsp页面:<%@ page language="java" pageEncoding="GBK"%><%@page import="y2javaee.sg.ch03.TitleBean"%><%@page import="y2javaee.sg.ch03.BookBean"%><%@page import="java.util.*"%><HTML><HEAD><TITLE>ebooks</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK href="/book/images/main.css" type=text/css rel=stylesheet></HEAD><BODY><CENTER>......... <!-- 显示内容开始 --> <TR> <TD height="360"> <% List list=(List)session.getAttribute("list"); int size=list.size(); BookBean book=null; int i=0; String iSBN=(String)request.getParameter("id"); while(i<size) { book=(BookBean)list.get(i); if(iSBN == book.getISBN()) { session.setAttribute("bookToAdd",book); break; } i++; } %> ......... <tr> <td width="30%" height="84" align="center"><form name="form1" method="post" action="/book/AddBookToCart"> <label> <input type="submit" name="button" id="button" value="放入购物车"> </label> </form> </td> <td width="29%" align="left"><form name="form2" method="post" action="ViewCart.jsp"> <label> <input type="submit" name="button2" id="button2" value="查看购物车"> </label> </form></td> </tr> </table></TD> </TR> <!-- 显示内容结束 --> </TBODY> </TABLE> <BR> </TD> </TR> </TBODY></TABLE>...</CENTER></BODY></HTML>我转到的是Servlet:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session=request.getSession(false); RequestDispatcher dispatcher; System.out.println(session == null); if(session == null) { dispatcher=request.getRequestDispatcher("/ch04/books.jsp"); dispatcher.forward(request, response); } else{ BookBean book=(BookBean)session.getAttribute("bookToAdd"); System.out.println(book); Map cart =(Map)session.getAttribute("cart"); System.out.println(cart); if(cart == null) { cart=new HashMap(); session.setAttribute("cart",cart); } CartItemBean cartItem=(CartItemBean)cart.get(book.getISBN()); if(cartItem != null) cartItem.setQuantity(cartItem.getQuantity()+1); else cart.put(book.getISBN(), new CartItemBean(book,1)); dispatcher=request.getRequestDispatcher("/ch04/ViewCart.jsp"); dispatcher.forward(request, response); } }在BookBean book=(BookBean)session.getAttribute("bookToAdd"); System.out.println(book);时输出的是null好急,对回答的表示感谢 LZ你最好是在Servlet中调用用javaBean 然后request.getSession().setAttribute("bookToAdd",bookToAdd);在到jsp页面接收 BookBean book=(BookBean)session.getAttribute("bookToAdd");这样会比较好 在JSP页面直接调用是不提倡的哦 ... while(i<size) { book=(BookBean)list.get(i); if(iSBN == book.getISBN()) { break; } i++; }楼主你确定你这段代码执行了吗? session.setAttribute("bookToAdd",book);我想你肯定没有存储进入对象. 怎么可能啊 你是不是在那清空session了?? 一般写JAVA的人都不会这样比较字符串的,楼主你设置session的代码肯定没有被执行到,另以后有疑问都可以看断点看看的if(iSBN == book.getISBN()) 你可以在servlet中加入打印语句,看看哪些地方程序执行了 哪些并没有执行到 +1,关键是你的类型,还有set后,就可以get了。 哦,是该把if(iSBN == book.getISBN())改为if(iSBN.equals(book.getISBN)) 在Servlet里我一般用Session,是request.getSession.setAttribute("","");在Servlet里是不可以直接使用Session来调用方法吧@!?? HttpSession session=request.getSession(false);是不是这个false的原因啊 弱弱说一句,servlet中获取session的值不是session.getAttribute(),而是request.getSession().getAttribute()哦。。 楼主你的代码不好看清楚,我建议你在转到的页面首先获取一下Session然后输出看看是否为空,如果这样为空的话,那就是 session.setAttribute("bookToAdd",book);这句话没有执行到了。试着去做吧 在action中不要使用重定向,否则session个中的值就会丢失 HttpSession session=request.getSession(false);改为HttpSession session=request.getSession();看看 elipse安装问题 关于getHibernateTemplate().execute的疑问 在线求助 ·号显示乱码的问题 struts2 URL 重写 详解 如果把想传送的值利用Header传送出去,JSP中有 样的方法以吗?我原来是传参数的。可对方说他只能接收Header中传来的值。 jsp下拉框联动 JSP如何实现类似ASP中FSO的功能? 急!!!!!如何更改TOMCAT的端口?? 怎么得到一个JSP页面中的RADIO哪个被选中的? 百度蜘蛛,谷歌机器人爬行网站的问题 怎么添加字段实现多对多 严重鄙视黑龙江省C调华丽杯软件大赛
如果你那个book的对象的话就
BooK b =(BooK)session.getAttribute("AddToCart");
如果是String的话
String str =session.getAttribute("AddToCart");
<%@ page language="java" pageEncoding="GBK"%>
<%@page import="y2javaee.sg.ch03.TitleBean"%>
<%@page import="y2javaee.sg.ch03.BookBean"%>
<%@page import="java.util.*"%>
<HTML>
<HEAD>
<TITLE>ebooks</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="/book/images/main.css" type=text/css rel=stylesheet>
</HEAD>
<BODY>
<CENTER>.........
<!-- 显示内容开始 -->
<TR>
<TD height="360">
<%
List list=(List)session.getAttribute("list");
int size=list.size();
BookBean book=null;
int i=0;
String iSBN=(String)request.getParameter("id");
while(i<size)
{
book=(BookBean)list.get(i);
if(iSBN == book.getISBN())
{
session.setAttribute("bookToAdd",book);
break;
}
i++;
}
%>
.........
<tr>
<td width="30%" height="84" align="center"><form name="form1" method="post" action="/book/AddBookToCart">
<label>
<input type="submit" name="button" id="button" value="放入购物车">
</label>
</form> </td>
<td width="29%" align="left"><form name="form2" method="post" action="ViewCart.jsp">
<label>
<input type="submit" name="button2" id="button2" value="查看购物车">
</label>
</form></td>
</tr>
</table></TD>
</TR>
<!-- 显示内容结束 -->
</TBODY>
</TABLE>
<BR>
</TD>
</TR>
</TBODY>
</TABLE>
...
</CENTER>
</BODY>
</HTML>
我转到的是Servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HttpSession session=request.getSession(false);
RequestDispatcher dispatcher;
System.out.println(session == null);
if(session == null)
{
dispatcher=request.getRequestDispatcher("/ch04/books.jsp");
dispatcher.forward(request, response);
}
else{
BookBean book=(BookBean)session.getAttribute("bookToAdd");
System.out.println(book);
Map cart =(Map)session.getAttribute("cart");
System.out.println(cart);
if(cart == null)
{
cart=new HashMap();
session.setAttribute("cart",cart);
}
CartItemBean cartItem=(CartItemBean)cart.get(book.getISBN());
if(cartItem != null)
cartItem.setQuantity(cartItem.getQuantity()+1);
else
cart.put(book.getISBN(), new CartItemBean(book,1));
dispatcher=request.getRequestDispatcher("/ch04/ViewCart.jsp");
dispatcher.forward(request, response);
}
}
在BookBean book=(BookBean)session.getAttribute("bookToAdd");
System.out.println(book);时输出的是null好急,对回答的表示感谢
然后request.getSession().setAttribute("bookToAdd",bookToAdd);
在到jsp页面接收 BookBean book=(BookBean)session.getAttribute("bookToAdd");
这样会比较好 在JSP页面直接调用是不提倡的哦 ...
{
book=(BookBean)list.get(i);
if(iSBN == book.getISBN())
{
break;
}
i++;
}楼主你确定你这段代码执行了吗? session.setAttribute("bookToAdd",book);我想你肯定没有存储进入对象.
if(iSBN == book.getISBN())
这句话没有执行到了。试着去做吧
HttpSession session=request.getSession();
看看