社区
Java SE
帖子详情
ResultSet能做为Session传输吗?
surf182
2009-07-22 04:56:01
我在一个JSP页面里用ResultSet从数据库里提取出数据,现在想把这些数据传到下一个JSP页面里,可是把ResultSet放到Session里后,在另一个JSP页面里无法提取,是不是不能这样传输?应该怎么把这些数据传到下一个页面呢?请详细说说,谢谢
...全文
213
26
打赏
收藏
ResultSet能做为Session传输吗?
我在一个JSP页面里用ResultSet从数据库里提取出数据,现在想把这些数据传到下一个JSP页面里,可是把ResultSet放到Session里后,在另一个JSP页面里无法提取,是不是不能这样传输?应该怎么把这些数据传到下一个页面呢?请详细说说,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wst0350
2009-07-23
打赏
举报
回复
有想法是不错滴
fisherhe
2009-07-23
打赏
举报
回复
建议楼主还是先将数据库的数据resultSet封装成一个javabean的对象然后在session.setAttribute(),这是涉及到持久层的操作就尽量不要放在业务层上面去处理,而且一旦数据量大了,就会很消耗资源的哈,恩我赞成楼上说的 能用作用范围小的如request就不要用session...
lovecj6185
2009-07-23
打赏
举报
回复
[Quote=引用楼主 surf182 的回复:]
我在一个JSP页面里用ResultSet从数据库里提取出数据,现在想把这些数据传到下一个JSP页面里,可是把ResultSet放到Session里后,在另一个JSP页面里无法提取,是不是不能这样传输?应该怎么把这些数据传到下一个页面呢?请详细说说,谢谢
[/Quote]
楼上的达人们说得很有理阿
但是,偶觉得lz不会是想要保存ResultSet对象,人家说了吗,是保存数据。
那就把数据取出来放到容器里就好了嘛
zuoguodang
2009-07-23
打赏
举报
回复
不要存ResultSet对象,因为ResultSet需要和数据库有很大关系,不用的时候需要关闭。
你把没条记录封装成javabean对象,然后把这些对象放到List里面,最后把List实例保存到session中就可以了。
Jamin_Ma
2009-07-23
打赏
举报
回复
可以保存在session中,要设置一下maxAge。不设置的情况下默认页面关闭就删除session。
session.setMaxAge(int i);i是正数:过i秒后删除;i是0,马上删除;i是负数:关闭浏览器删除
xinleicn
2009-07-23
打赏
举报
回复
还真没有试过. 试试去. 看看行不.
mianfeidog
2009-07-23
打赏
举报
回复
学习。
ArayChou
2009-07-23
打赏
举报
回复
[Quote=引用楼主 surf182 的回复:]
我在一个JSP页面里用ResultSet从数据库里提取出数据,现在想把这些数据传到下一个JSP页面里,可是把ResultSet放到Session里后,在另一个JSP页面里无法提取,是不是不能这样传输?
[/Quote]
楼上的同学已经说了不能将resultSet放到session中,我就不重复这点了。我来解释一下,为什么到下一个页面无法提取的。
一般,数据库资源是需要关闭的。你看看,是不是有这样一个ResultSet.close();我估计你在第一个jsp页面里至少调用了Connection.close()关闭数据库连接。当你关闭Statemnt或者Connection的时候,从他们身上建立其他对象(例如ResultSet)也不可用了。
如果你的第一个jsp不关闭数据库连接,也不关闭Statment,什么都不关。那么你在第二哥页面里还可以将ResultSet重session里取除来正常访问。
当然,这个不是明智的做法。
closewbq
2009-07-23
打赏
举报
回复
[Quote=引用 18 楼 shadow55 的回复:]
引用 2 楼 closewbq 的回复:
当然可以了,session.Attribute("ResultSet",ResultSet);
在JSP页面
HTML code <%
ResultSet rs=(ResultSet)session.getAttribute("ResultSet");
下面就是循环遍历!%>
你会这样写程序吗?不要将楼主引入歧途啊!
[/Quote]
不好意思,我只是想说这样完全可以。我并没有建议这样做。
通常的做法肯定是在后台遍历结果集,将结果集的数据添加到list中,将list存放到范围对象中,在jsp中使用JSTL(<c:forEach>)语言,或者代码块进行遍历。
CamilleTao
2009-07-23
打赏
举报
回复
1.自定义异常类
2.数据库连接类
3.VO类存取数据;
4.DAO数据操作接口(增删改查等功能)
3.数据操作类实现DAO接口.
5.servlet控制器
6.前台功能页面.
7.前台数据显示页面.
三层机构
大概思路如下:
前台功能页面,发出请求,servlet控制器接受请求,(比如说查询某个数据(库存啊,单价什么的))
servlet控制器接受请求执行前台发出的功能,调用数据操作类的方法得到前台功能想要的数据;
servlet控制器将得到数据或值返回给前台显示页面;
shadow55
2009-07-23
打赏
举报
回复
[Quote=引用 2 楼 closewbq 的回复:]
当然可以了,session.Attribute("ResultSet",ResultSet);
在JSP页面
HTML code<%
ResultSet rs=(ResultSet)session.getAttribute("ResultSet");
下面就是循环遍历!%>
[/Quote]你会这样写程序吗?不要将楼主引入歧途啊!
dragon45
2009-07-23
打赏
举报
回复
前几天培训的时候,也有同事写出了这样的代码。
多作试验从错误中学习是不错的方式,但是真正作项目的时候不要这样写就可以了。
cwjieNo1
2009-07-22
打赏
举报
回复
学习了·
冰思雨
2009-07-22
打赏
举报
回复
可以是可以,就是不应该把ResultSet放到session对象中进行页面跳转的传递。
因为,ResultSet对象,持有数据库资源,长时间的不使用该资源,可能会产生非常多的问题。
比如,连接池资源耗尽,Socket超时,Connection已经被关闭了,等等。
通常建议的做法是:
遍历ResultSet后,我们会及时close掉相关的资源,可以让系统及时的回收这些资源,供其他用户使用。
将ResultSet遍历的结果,封装成对象,放入Session中,进行页面跳转,跳转的目标页面做数据显示用。
意思和楼上几位差不多。
15年老程创业中
2009-07-22
打赏
举报
回复
[Quote=引用 11 楼 ouyangyh 的回复:]
绝对不建议
ResultSet要使用,一定须数据库连接开着
这个会造成资源浪费
如果实在要用,可以转成Result类的对象
Result result=ResultSupport.toResult(resultSet);
这样,就可以把数据库连接对象关闭了
[/Quote]
使用CachedRowset,可以断开连接,放心存到session
ouyangyh
2009-07-22
打赏
举报
回复
绝对不建议
ResultSet要使用,一定须数据库连接开着
这个会造成资源浪费
如果实在要用,可以转成Result类的对象
Result result=ResultSupport.toResult(resultSet);
这样,就可以把数据库连接对象关闭了
BurnedVanilla
2009-07-22
打赏
举报
回复
理论和实际上都是可以实现的,但是这样做的思想是错误的,楼上有人已经指出了.
应该将查询的结果存到javabean中,然后再调用javabean中的内容,
不要图写代码省劲犯大错误哈.
学习中...
clihean
2009-07-22
打赏
举报
回复
应该用容器类在页面中传数据。
lovetysx
2009-07-22
打赏
举报
回复
学习了,我也一直不知道原因
zl3450341
2009-07-22
打赏
举报
回复
。。。学习了
加载更多回复(6)
JAVA中JDBC极简实操入门
queryByid、Statement接口的应用-delete测试、Statement接口的应用-新增测试、
ResultSet
的应用-1-项目环境搭建、
ResultSet
的应用-2-查询数据、
ResultSet
的应用-3-优化代码、
ResultSet
的应用-4-定义实体类、
ResultSet
...
[疯狂Java]JDBC:
ResultSet
的升级RowSet、离线的CachedRowSet、离线分页查询
1) RowSet的出现最初是为了解决离线缓存的问题,因为在使用
ResultSet
的时候必须保证在线(即保持与数据库的连接),连接后必须立即处理,否则连接断开则
ResultSet
也将关闭,这就非常麻烦,再有些设计模式中,要求...
会话技术——
Session
和Cookie
Session
会话技术 浏览器和服务器之间为了实现某一个功能,产生了多次的请求和响应,从第一次请求开始到最后一个...
Session
技术在服务端为每个客户端创建各自的
session
对象,用来存储与该客户端会话产生的数据。 每
内置对象(request,response,
session
)
request对象、response对象、
session
对象、 request,response,
session
的区别; request: response:
session
: ...
DTO--数据
传输
对象
在非分布式系统中由于有类似Open
session
in view这样的“怪胎解决方案”的存在,所以层间数据
传输
的问题并没有充分暴露出来,但是在分布式系统中我们就能清楚地意识到层间数据
传输
的问题,从而能够更合理的进行设计...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章