关于session的问题请教 !

whlusha720 2008-07-19 01:53:42
想用循环保存数据到session里

index.jsp

String [] str = new String [30];
String [] dbData = new String [6];
String sql = "select a.username,a.password, b.username, age, sex, tel from spume0710 a, spume0711 b where a.userid=b.userid";

int count = 0;
while(rs.next()){
for(int i = 1; i <= rs.getMetaData().getColumnCount(); i++){
str[count] = rs.getString(i);
count++;
}
}

for(int j = 0; j < str.length; j++){
if(uname.equals(str[j]) && psw.equals(str[j+1])){
for(int m = 0; m < dbData.length; m++){
session.setAttribute("dbData[" + m + "]", str[m*j+m]); //估计错误在这里
}
b = true; break;
}else{
b = false;
}
}

if(b){
session.setAttribute("userName", uname);
response.sendRedirect("ok.jsp");
}else{
response.sendRedirect("error.jsp");
}


ok.jsp
<p>姓名: <%=session.getAttribute("dbData[2]")%> </p> // 值为null
<p>年龄: <%=session.getAttribute("dbData[3]")%> </p> // 值为null
<p>性别: <%=session.getAttribute("dbData[4]")%> </p> // 值为null
<p>电话: <%=session.getAttribute("dbData[5]")%> </p> // 值为null


请问为什么保存不了值 ??
该怎么修改呢 ?
...全文
198 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlusha720 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 fejay 的回复:]
引用 12 楼 wuxi15932077655 的回复:
你在哪里对dbData 赋的值???/我看着好像它始终为空阿???

[/Quote]

for(int m = 0; m < dbData.length; m++){
session.setAttribute("dbData[" + m + "]", str[m*j+m]); //估计错误在这里
}


这个就是用循环赋值啊
保存到session里 可能 "dbData[" + m + "]" 的用法不对
fejay 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wuxi15932077655 的回复:]
你在哪里对dbData 赋的值???/我看着好像它始终为空阿???
[/Quote]
JoJooo 2008-07-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 mike1980 的回复:]
你不会用bean吗?
用bean多方便,用数组麻烦又容易出错。
[/Quote]
嗯。。
whlusha720 2008-07-25
  • 打赏
  • 举报
回复
谢谢楼上的朋友 我试一下
wz436392521 2008-07-24
  • 打赏
  • 举报
回复

Bean就是这样的,当然我写的简单
public class qq {


private String username;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}

你把查询出来的值放到Bean中,把Bean放到session中,然后<p>姓名: <%=session.getAttribute(qq.getUsername() )%> </p> 取出来
hx6917186 2008-07-24
  • 打赏
  • 举报
回复
用一个list存放你的beans。首先建几个bean,然后把属性全部封装到里边。然后全部存到list里,然后把整个list存到session里。。。
hx6917186 2008-07-24
  • 打赏
  • 举报
回复
m 和 j是不是。。。分别表示行和列的序号。。。这个算法好奇怪哦。。。就是把每一条数据的每一个字段都取个名字存进去嘛?。。。不安全又麻烦阿。。。为什么不存一个map或者set或者list之类的封装好的对象。。。不用占用你session中的key。。。取出来也方便。不是嘛:)
whlusha720 2008-07-24
  • 打赏
  • 举报
回复
bean怎么做 ?
给个例子OK ?
mike1980 2008-07-24
  • 打赏
  • 举报
回复
你不会用bean吗?
用bean多方便,用数组麻烦又容易出错。
whlusha720 2008-07-23
  • 打赏
  • 举报
回复
if(uname.equals(str[j]) && psw.equals(str[j+1]))

密码在用户名后面啊 所以要j+1 这个应该没问题吧
whlusha720 2008-07-21
  • 打赏
  • 举报
回复
其实就是session的循环保存的问题 听说要用要list
请哪位朋友说一下
island_001 2008-07-21
  • 打赏
  • 举报
回复
你在哪里对dbData 赋的值???/我看着好像它始终为空阿???
yezimo 2008-07-21
  • 打赏
  • 举报
回复
if(uname.equals(str[j]) && psw.equals(str[j+1])){
这个地方我觉得好像就有问题,因为你上个for循环里的str[count] = rs.getString(i)取出的是一整条记录,
而你现在这个if里的两个且的条件实际上是从第j条记录里去对比uname和从第j+1条记录里去对比psw........所以这里的条件我觉的无论如何都没法为true,所以if里的代码也就永远不会执行了....
因此那个dbData[]数组里始终都没有被赋值!!
whlusha720 2008-07-21
  • 打赏
  • 举报
回复
晕死哦 这个应该会经常用到的啊
I520WUCHAN 2008-07-20
  • 打赏
  • 举报
回复
学习中````
老紫竹 2008-07-20
  • 打赏
  • 举报
回复
str[m*j+m]);

这个写错了吧!!
1 这个是什么算法?
2 那些数据你都赋值了吗?
chinaboy2005 2008-07-20
  • 打赏
  • 举报
回复
打印出来看看有没有取出值?
mazida2 2008-07-19
  • 打赏
  • 举报
回复
String a="aaa";
String b="bbb";
System.out.println(a+b);
zw61911169 2008-07-19
  • 打赏
  • 举报
回复
str[count] = rs.getString(i); ....
i 从1开始可以吗???
我也不知道...
只是感觉有点问题..
lh39269083 2008-07-19
  • 打赏
  • 举报
回复
我怀疑没有进到for里面去 你测试dbData.length的值先 ,看是否进入循环
加载更多回复(1)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧