Dav*_*ave 3 java jsp servlets jdbc resultset
我在SampleServlet.java中执行以下操作
//Fill resultset from db
....
try {
ArrayList Rows = new ArrayList();
while (resultSet.next()){
ArrayList row = new ArrayList();
for (int i = 1; i <= 7 ; i++){
row.add(resultSet.getString(i));
}
Rows.add(row);
}
request.setAttribute("propertyList", Rows);
RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/DisplayProperties.jsp");
requestDispatcher.forward(request,response);
Run Code Online (Sandbox Code Playgroud)
然后在我的jsp DisplayPropeties.jsp中
<%
ArrayList rows = new ArrayList();
if (request.getSession().getAttribute("propertyList") != null) {
rows = (ArrayList ) request.getSession().getAttribute("propertyList");
}
%>
Run Code Online (Sandbox Code Playgroud)
但rows总是空的.
我究竟做错了什么?
您也不应该在JSP中使用ResultSet.这是一个数据库游标,一种稀缺资源.你可以在一个简单的页面上"工作",但我敢打赌你没有明确的责任在代码中关闭ResultSet,Statement或Connection.你很快就会用完,并想知道为什么你的代码会因异常而崩溃.
java.sql接口实现都不应该从明确定义的持久层中逃脱.获取连接,获取ResultSet,将其映射到对象或数据结构中,然后按照获取的相反顺序关闭所有资源,然后将对象或数据结构返回到JSP,仅使用JSTL写入,不使用scriplet进行显示.这是正确的做法.
如果必须在JSP中使用SQL,请使用JSTL <sql>标记来执行此操作.
我不明白如何null在if那里给你的声明.
无论如何,不应该request.getAttribute("propertyList")在DisplayProperties.jsp?
| 归档时间: |
|
| 查看次数: |
19610 次 |
| 最近记录: |