下面是两段代码:
1: <%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>实现简单购物车1</title>
</head>
<body>
<center>
<%
 session.setAttribute("product","54寸液晶电视机");
 session.setAttribute("price","10000");
 session.setAttribute("chanpin",session.getAttribute("product")+",");
  session.setAttribute("jiaqian",session.getAttribute("price")+",");
  out.print(session.getAttribute("chanpin")+"<br>");
  out.print(session.getAttribute("jiaqian")+"<br>");
  %>
  <a href="test40.jsp">去买计算机</a>
  </center></body>
  </html>
上述红色的部分换成这样写:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>实现简单购物车1</title>
</head>
<body>
<center>
<%//初始化session对象
if(session.getAttribute("flag")==null){
session.setAttribute("flag","ok");
session.setAttribute("product","");
session.setAttribute("price","");
}
 
 session.setAttribute("chanpin",session.getAttribute("product")+"54寸液晶电视机,");
  session.setAttribute("jiaqian",session.getAttribute("price")+"10000,");
  out.print(session.getAttribute("chanpin")+"<br>");
  out.print(session.getAttribute("jiaqian")+"<br>");
  %>
  <a href="test40.jsp">去买计算机</a>
</center></body>
  </html>
这样写都可以通过编译且一样,我就想问一下是不是无论在什么样的编译要求下,这两种编译方式都可以相互使用,还是在一些情况下只能用第一种(第二种),其他情况用另一种。
还有这两句是什么意思呀:if(session.getAttribute("flag")==null)
session.setAttribute("flag","ok");
躬谢大家了!

解决方案 »

  1.   

    下面的方法要更好一些,if (session.getAttribute("flag") == null) {
        session.setAttribute("flag", "ok"); //设置一个标志 flag 用来判断用户是否是 Session 创建后的第一次访问
        session.setAttribute("product", "");
        session.setAttribute("price", "");
    }
      

  2.   

    1。当然取值之前进行判断是要进行判断,是否为空,然后才能去取这个值。
    2。判断session中在内存中有没有存储flag,如果为空,就往里面添加一个,如果不为空,就直接取值