下面程序c8_2.jsp在运行时,为什么刷新时,页面显示值是5变为10,15,而不是5变为6,7。
访问计数器Bean的JSP程序c8_2.jsp:
<%@ page contentType="text/html; charset=GBK" %>
<html>
<body>
<h3> 使用 session Scope </h3><hr>
<!-- 以下三句是实例化ch8_2对象。-->
<jsp:useBean id="cn" scope="session" class="ch8Bean.c8_2"/>
<jsp:setProperty name="cn" property="count" value="4" /> <!--该语句只有创建新对象时才执行 -->
<% cn.increase(); %>
<!-- 在网页上显示计数器结果 -->
<br> <jsp:getProperty name="cn" property="count" />
</body>
</html>
访问计数器的Bean程序c8_2.java:
package ch8Bean;
public class c8_2
{ private int count=0; //定义一个私有变量
public int getCount()
{ return(this.count); }
public void setCount(int c)
{ this.count+=c; }
public void increase()
{ this.count++; }
}
------解决思路----------------------
你的set方法是this.count+=c; 第一次创建后为4调用increase 变5
然后第二次不创建,直接session取出,调用setCount 5+4=9;
然后在调用increase 变10
所以每次都是 +5 +5