如何把SERVLET中ResultSet传递给JSP页面显示?

cxy_ll 自由顾问 架构师  2002-01-23 07:25:15
本来完全可以在JSP中实现,但出于保密性考虑,要把SELECT操作也放到SERVLET的类里,只把结果返回给页面显示,本来想把ResultSet作为SESSION传递,但ResultSet不是可序列化的不能这样做。不知谁有高招?
...全文
201 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
offsider 2002-01-24
我问一个比较弱的问题,
怎么看我的servlet是多少版本呢?
回复
skyyoung 2002-01-24
可以用CachedRowset,可以序列化,java.sun.com/products/jdbc
回复
redstarstar 2002-01-24
做一个对象将ResultSet保存起来,然后在servlet中就可以关掉连接了。
然后使用如下语句在Servlet中:
HttpSession session=request.getSession();
UserHistory uh=new UserHistory(); //保存ResultSet的对象
uh.setId(rset.getInt(1));//存入ResultSet
session.setAttribute("userhistory",uh);
在jsp中:
<jsp:useBean id="userhistory" scope="session" class="main.UserHistory"/>
然后就可以使用了。

这种方法其实类似于Model2,可以看一看Struts。
再提供两个将bean保存进Request,Application的例子(来自Struts文档)
Request Scope :
Customer customer = ... create or acquire a customer reference ...;
request.setAttribute("cust", customer);
Application Scope :
Foo foo = ... create a Foo ...;
servlet.getServletContext().setAttribute("foo", foo);


回复
redstarstar 2002-01-24
做一个对象将ResultSet保存起来,然后在servlet中就可以关掉连接了。
然后使用如下语句在Servlet中:
HttpSession session=request.getSession();
UserHistory uh=new UserHistory(); //保存ResultSet的对象
uh.setId(rset.getInt(1));//存入ResultSet
session.setAttribute("userhistory",uh);
在jsp中:
<jsp:useBean id="userhistory" scope="session" class="main.UserHistory"/>
然后就可以使用了。

这种方法其实类似于Model2,可以看一看Struts。
再提供两个将bean保存进Request,Application的例子(来自Struts文档)
Request Scope :
Customer customer = ... create or acquire a customer reference ...;
request.setAttribute("cust", customer);
Application Scope :
Foo foo = ... create a Foo ...;
servlet.getServletContext().setAttribute("foo", foo);


回复
redstarstar 2002-01-24
我一般采用如下的代码,只要每个字段建立相应的一个get,set方法就行了。

import java.util.Vector;

public class SearchResults
{
public SearchResults()
{
acc_numList=new Vector(1,1);
}

public void setAcc_numList(String acc_num)
{
acc_numList.add(acc_num);
}

public Vector getAcc_numList()
{
return acc_numList;
}

private Vector acc_numList;
}
回复
redstarstar 2002-01-24
我一般采用如下的代码,只要每个字段建立相应的一个get,set方法就行了。

import java.util.Vector;

public class SearchResults
{
public SearchResults()
{
acc_numList=new Vector(1,1);
}

public void setAcc_numList(String acc_num)
{
acc_numList.add(acc_num);
}

public Vector getAcc_numList()
{
return acc_numList;
}

private Vector acc_numList;
}
回复
cxy_ll 2002-01-24
To:redstarstar
你说的是个好办法,我也这样试过,这样就需要Vector来存放这个对象集合。
还有我做了一个通用查询类,这样的话用类存放结果集怎么定义类哪?
回复
ligyi 2002-01-23
如servlet2.1版本,你可以用
<jsp:include page = "path/servlet名字" flush = "true"/〉
把servlet的输出包含到jsp的输出中。

要在多个页面里面保持,是个问题?
关注!
回复
zhjx_10 2002-01-23
如果要在多个页面里面保持怎么办?
不用session可以解决吗?
回复
yanchang 2002-01-23
放Session是不是回造成服务器的负载太大
可以把数据库的操作封状到bean 里,用jsp调bean不好吗?》
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告