<%@ page language="java" contentType="text/html; charset=gbk" %>
<%@ page import="com.jin.ch09.sportsreading.TestBean" %><jsp:useBean id="t" scope="session" class="com.jin.ch09.sportsreading.TestBean"/><html>
<head>
<title>测试多访问</title>
</head>
<body><%
request.setCharacterEncoding("gbk");
String action = request.getParameter("action");
if("kd".equals(action)) {
t.kd();
}
%><a href="test.jsp?action=kd">减减</a>
<%
out.println(t.getK());
%></body>
</html>
package com.jin.ch09.sportsreading;import java.io.Serializable;public class TestBean implements Serializable { private int k = 0;
public TestBean() {
k = 200;
} public int kd() {
return --k;
}
public int getK() {
return k;
}
}打开浏览器访问test.jsp,多次点击减减令数字变为190. 然后不关闭当前浏览器,重新去访问test.jsp后,发现
数字竟然变回了200, 接着再点一下减减数字变为189.
这说明session是起作用的,可是为什么每次访问test.jsp(没关闭过当前浏览器)时,都显示200呢?非要点一下减减才会有效果?
解决方案 »
- 有搭建过java web框架的朋友么,一起探讨下
- 这个 servlet 操作数据库多个表不成功,怎么办?在线等。
- 在jsp页面上如何用程序将几个小图片拼成一张大图片?
- 做个计数器,不知道怎样把多张图拼成一张
- 实现单据打印?
- 求计算器的程序!!!
- 我想请教一个问题:能否在javabean中使用动态数组?
- 在jsp中如何取得明天的日期?谢谢!
- "[Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index "错误!
- 在jsp中查询access表中的日期/时间类型字段时怎么控制显示出来日期格式!?
- 高分求tomact内存溢出问题!!必给分!!!
- 看购物车代码时的一个疑问
根据代码,<a href="test.jsp?action=kd">减减</a>
应该是本页面把<%
request.setCharacterEncoding("gbk");
String action = request.getParameter("action");
if("kd".equals(action)) {
t.kd();
}
%>
代码段的request.getParameter("action");request范围是本页面
、
从本页面跳到本页面,<jsp:useBean id="t" scope="session" class="com.jin.ch09.sportsreading.TestBean"/>
这句是创建一个TestBean对象,相当于new一个对象,并调用初始化方法:
public TestBean() {
k = 200;
}所以每一次执行都是200,然后往下减,
解决办法:
要使每次打开后显示的K是上次的K值,只有把K值保存在一个文件里或者存储在数据库中,每打开一个网页便读一次
文件或者读一次数据库,,
可是session中已经存在t了,就不会再new了,而是应该直接使用啊.怎么会再去调用初始化方法?
用其他的方法吧